Compare commits
5242 Commits
JS_150_RC3
...
Style_2001
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97b3584524 | ||
|
|
eef60ca80d | ||
|
|
5433e8cb38 | ||
|
|
3f53da6800 | ||
|
|
1d3fa61b0c | ||
|
|
59afca8767 | ||
|
|
639785293e | ||
|
|
9eee880150 | ||
|
|
dfd5ce3d52 | ||
|
|
f168a0a31d | ||
|
|
1b218ccfff | ||
|
|
b102d25fcb | ||
|
|
7f69117d42 | ||
|
|
c18aa8f931 | ||
|
|
a59c7214d1 | ||
|
|
ce3bfe4651 | ||
|
|
7fb5739cdb | ||
|
|
fb8622adf3 | ||
|
|
cc593639ce | ||
|
|
c09ddbb296 | ||
|
|
ce577888bd | ||
|
|
e6ccd4d50e | ||
|
|
7179091daf | ||
|
|
4916a285e0 | ||
|
|
6b1d4a0f99 | ||
|
|
fb3496f247 | ||
|
|
42e8ddcb34 | ||
|
|
f74c7ea12a | ||
|
|
58b9b2c478 | ||
|
|
829b4aebf1 | ||
|
|
99554655d2 | ||
|
|
0931b1e944 | ||
|
|
47ee9b6a62 | ||
|
|
36d10c4395 | ||
|
|
38196f7a23 | ||
|
|
4fb267d0fa | ||
|
|
ea76daac83 | ||
|
|
fe33fea633 | ||
|
|
c0d9b31b40 | ||
|
|
dc278f10de | ||
|
|
2b697c8366 | ||
|
|
c1be239582 | ||
|
|
1da03054fb | ||
|
|
693b189700 | ||
|
|
436561689c | ||
|
|
968d9a5c13 | ||
|
|
e0667c82cb | ||
|
|
07fff8090e | ||
|
|
f13d88e6d5 | ||
|
|
29f60c6e3a | ||
|
|
f2da07182d | ||
|
|
a8b60368de | ||
|
|
3342796366 | ||
|
|
840888ef95 | ||
|
|
f834b22155 | ||
|
|
aded07a161 | ||
|
|
4d86296f76 | ||
|
|
be668eed9a | ||
|
|
226a8a9ed9 | ||
|
|
4b4f626afa | ||
|
|
e2a560c0d0 | ||
|
|
12fc40131e | ||
|
|
93ed83d8f5 | ||
|
|
c70bc4bbd4 | ||
|
|
dba2f210f3 | ||
|
|
210c5376bb | ||
|
|
9100f7bf4d | ||
|
|
dd0e8f1737 | ||
|
|
97fea23e7d | ||
|
|
1f1776d21d | ||
|
|
f620372b65 | ||
|
|
26b831e840 | ||
|
|
b045bc8a40 | ||
|
|
364ae938ba | ||
|
|
4a40ba75a4 | ||
|
|
7e35584730 | ||
|
|
0f2762b474 | ||
|
|
de57e45805 | ||
|
|
dd027867b4 | ||
|
|
832adec29f | ||
|
|
31c6698359 | ||
|
|
2b1301407c | ||
|
|
708d88c504 | ||
|
|
8499a1e338 | ||
|
|
187c5dcd74 | ||
|
|
e512546b8f | ||
|
|
2f3ed4e976 | ||
|
|
04773b4360 | ||
|
|
a4e9607f11 | ||
|
|
12a19a0e63 | ||
|
|
a44890e54f | ||
|
|
d3c562011e | ||
|
|
e495599366 | ||
|
|
26646cfeba | ||
|
|
1852f71aa5 | ||
|
|
effac6d6d3 | ||
|
|
e0848658f0 | ||
|
|
56a290f148 | ||
|
|
d0cd7cabc1 | ||
|
|
e3cc20bd37 | ||
|
|
6a90abb6a3 | ||
|
|
b7809a4575 | ||
|
|
ed0dc8ec2a | ||
|
|
bf71e1c7eb | ||
|
|
bdc99b7f76 | ||
|
|
1544507602 | ||
|
|
eee75300fd | ||
|
|
f27611293a | ||
|
|
12f6802567 | ||
|
|
76aae2bc9a | ||
|
|
da23f94e6a | ||
|
|
1e754b61c2 | ||
|
|
29470e6bfa | ||
|
|
6b7a2c1c09 | ||
|
|
3f20996815 | ||
|
|
ab9dc742c5 | ||
|
|
3b3dc9e5c2 | ||
|
|
7cb7d57775 | ||
|
|
ab5fd89105 | ||
|
|
ad0685af07 | ||
|
|
2cacf33420 | ||
|
|
b684f8fcbc | ||
|
|
0777815a96 | ||
|
|
d2cd4fe8b6 | ||
|
|
f4744b43c0 | ||
|
|
feb3e924b3 | ||
|
|
aed86d5dd5 | ||
|
|
24930d2ea4 | ||
|
|
64b9ba3dd5 | ||
|
|
e3706c4c82 | ||
|
|
9f956e0118 | ||
|
|
0f4bc733b6 | ||
|
|
4a5080b84c | ||
|
|
fe7cdf710f | ||
|
|
fdfdb16492 | ||
|
|
8dafe66f4a | ||
|
|
f7ba9f0ee1 | ||
|
|
e87a3e17ce | ||
|
|
55577f536b | ||
|
|
a73f7efd19 | ||
|
|
c0eda73966 | ||
|
|
e28f426582 | ||
|
|
ceb7b87ac0 | ||
|
|
47ab50bea8 | ||
|
|
8de992069a | ||
|
|
f115a29a15 | ||
|
|
26b1cdfed1 | ||
|
|
8c887d4d41 | ||
|
|
b6510004e8 | ||
|
|
384e9d09c8 | ||
|
|
c40a5a96fe | ||
|
|
201b62d65e | ||
|
|
0eaf2249e7 | ||
|
|
bce53b0748 | ||
|
|
fc0ecb4f08 | ||
|
|
9e7ac92366 | ||
|
|
0e30e88300 | ||
|
|
3dd7b00649 | ||
|
|
a4d0ce6ac8 | ||
|
|
45744cd59b | ||
|
|
4eed9700b9 | ||
|
|
87aa9667c4 | ||
|
|
982e96c5e6 | ||
|
|
28bc43c916 | ||
|
|
4c49c2dc0e | ||
|
|
d960a9650b | ||
|
|
ff5bff4ed0 | ||
|
|
ab18349f23 | ||
|
|
a99c63ea44 | ||
|
|
c9dbe4cfd0 | ||
|
|
ed8612765b | ||
|
|
8687dab297 | ||
|
|
ecad0f39ae | ||
|
|
ff99f649d9 | ||
|
|
b469c2b9f4 | ||
|
|
dedf4b2d63 | ||
|
|
6ff0689bfe | ||
|
|
116d5c5170 | ||
|
|
6995bfc18d | ||
|
|
0c142c48cd | ||
|
|
f8615a0e3b | ||
|
|
63b3bed614 | ||
|
|
8396238b82 | ||
|
|
4f00911346 | ||
|
|
98d77bbf9a | ||
|
|
921b9956a1 | ||
|
|
8396785be2 | ||
|
|
dc9b6019fd | ||
|
|
22e5f8c632 | ||
|
|
b501869640 | ||
|
|
f4fc3facf5 | ||
|
|
b808d845f6 | ||
|
|
1fc136b8c6 | ||
|
|
9ce7c34f05 | ||
|
|
d600adcac0 | ||
|
|
baccedf98b | ||
|
|
6eb470974f | ||
|
|
53d3f9af21 | ||
|
|
2a692c3428 | ||
|
|
f44da53b17 | ||
|
|
3469b8b7a8 | ||
|
|
651c989fce | ||
|
|
2034b40742 | ||
|
|
48b3c34b86 | ||
|
|
5340783e6e | ||
|
|
877af015d0 | ||
|
|
b2e5a31d1e | ||
|
|
3a9576aeab | ||
|
|
bcd639e281 | ||
|
|
87b3b107a6 | ||
|
|
fcec1f2488 | ||
|
|
7797560e84 | ||
|
|
f46a9476a3 | ||
|
|
d15de79cb6 | ||
|
|
50bcb65c7f | ||
|
|
4e18d1c819 | ||
|
|
a97371741b | ||
|
|
cdba818904 | ||
|
|
fe7554737a | ||
|
|
9ea28b7963 | ||
|
|
c056de97ad | ||
|
|
a0804115dd | ||
|
|
cb8d49d560 | ||
|
|
493d5f5227 | ||
|
|
9285847d02 | ||
|
|
a123f793fd | ||
|
|
b938c3af0e | ||
|
|
09b9061834 | ||
|
|
efe27740e0 | ||
|
|
406f745ee7 | ||
|
|
f8e2dc2ac1 | ||
|
|
d9e13e2de2 | ||
|
|
766cb35390 | ||
|
|
dd658827ae | ||
|
|
6d2869c8c9 | ||
|
|
d94c44446b | ||
|
|
e7523f66c7 | ||
|
|
caf8fac923 | ||
|
|
9b09236d52 | ||
|
|
12fdce82dd | ||
|
|
dfd3f37190 | ||
|
|
8531689901 | ||
|
|
b7e52c6e47 | ||
|
|
498c2681ae | ||
|
|
45a4728639 | ||
|
|
1a2b7e0d5c | ||
|
|
aaf27ae86b | ||
|
|
cb1e016238 | ||
|
|
0148de0630 | ||
|
|
2da18c6d3b | ||
|
|
0f7cb4d033 | ||
|
|
32538589c9 | ||
|
|
0d46c0b522 | ||
|
|
fd51041be7 | ||
|
|
6ae1a1e894 | ||
|
|
5af4a3c360 | ||
|
|
51d5bb6a4a | ||
|
|
0d991aa43f | ||
|
|
ae967ed36e | ||
|
|
33f6e00f51 | ||
|
|
c214d9131c | ||
|
|
4c1ef37449 | ||
|
|
b1ad8cb6f7 | ||
|
|
9754b9f9c3 | ||
|
|
08dfb22c54 | ||
|
|
bba1ac019c | ||
|
|
599932e87e | ||
|
|
1868037106 | ||
|
|
69c1538585 | ||
|
|
f14966dc67 | ||
|
|
b7fe451e66 | ||
|
|
cf77fa60bf | ||
|
|
bd1e6bdac2 | ||
|
|
83a9234af8 | ||
|
|
46bb7a6e6f | ||
|
|
bc93d81547 | ||
|
|
54b03a00ff | ||
|
|
31a3c3dde2 | ||
|
|
5cef4b782d | ||
|
|
0f03cd2daa | ||
|
|
d4474df47f | ||
|
|
45064c050c | ||
|
|
4d99fe467f | ||
|
|
3c7b1c84aa | ||
|
|
a2130d787e | ||
|
|
4c09e2db37 | ||
|
|
b338cc7178 | ||
|
|
5f7036a06b | ||
|
|
11ec396a35 | ||
|
|
65d0350b8c | ||
|
|
eadc6cdf5d | ||
|
|
6e84acc7aa | ||
|
|
df7afeb856 | ||
|
|
f44f185f77 | ||
|
|
ac366d2d7e | ||
|
|
969198363c | ||
|
|
de97459870 | ||
|
|
1da74510e4 | ||
|
|
1f69227718 | ||
|
|
0c0e5d9a7b | ||
|
|
152f495269 | ||
|
|
c51a12a3d3 | ||
|
|
0d79af9de2 | ||
|
|
30dd307eda | ||
|
|
395e4f939f | ||
|
|
9f8187b218 | ||
|
|
becd734ed3 | ||
|
|
b3fd5a4b0b | ||
|
|
34db3e87a1 | ||
|
|
8eb013ba6e | ||
|
|
22bea58378 | ||
|
|
87880c2bcf | ||
|
|
4e90ab9a1c | ||
|
|
abd7dd8d9f | ||
|
|
b855f16dc7 | ||
|
|
1c83fd9a89 | ||
|
|
ad147f68b2 | ||
|
|
c4d20f462f | ||
|
|
ed290e94cd | ||
|
|
dc873a0731 | ||
|
|
1f831ea881 | ||
|
|
55fb803687 | ||
|
|
c2bd15ff03 | ||
|
|
cde6222c28 | ||
|
|
0260567b89 | ||
|
|
30027b5a56 | ||
|
|
da9442b106 | ||
|
|
2db6088fb2 | ||
|
|
ec59ad1546 | ||
|
|
e1c0680de4 | ||
|
|
8425d31606 | ||
|
|
227adf22c6 | ||
|
|
6e54053027 | ||
|
|
bd16fd8f3b | ||
|
|
634e044a86 | ||
|
|
b4acef35ab | ||
|
|
5cf84f645b | ||
|
|
bd49af42b2 | ||
|
|
f001dc8bd9 | ||
|
|
2673e3cf7e | ||
|
|
1f9a8a21c7 | ||
|
|
faa367a725 | ||
|
|
4cc3945877 | ||
|
|
9d3bb4995d | ||
|
|
917e8e7fb0 | ||
|
|
4217ad6b80 | ||
|
|
37a4c874db | ||
|
|
8e72896cd9 | ||
|
|
3fefa47415 | ||
|
|
9b6852e523 | ||
|
|
e42403ea50 | ||
|
|
aad56f1bc5 | ||
|
|
ed58399ffb | ||
|
|
e74db8fb5d | ||
|
|
1d07aed984 | ||
|
|
9c1d8c62c6 | ||
|
|
c79dcc311e | ||
|
|
6dea5b241d | ||
|
|
b659295a34 | ||
|
|
fd90b3335f | ||
|
|
73f506738e | ||
|
|
7d8ef6f0d0 | ||
|
|
1600252698 | ||
|
|
ce6222443e | ||
|
|
b4be013eed | ||
|
|
ec1b27c490 | ||
|
|
5cd9ea9a27 | ||
|
|
7369553c7c | ||
|
|
b6fd55ab11 | ||
|
|
42257db13f | ||
|
|
1256e0e034 | ||
|
|
d73e20d787 | ||
|
|
fe2b00e64f | ||
|
|
49c8ad09d7 | ||
|
|
6070a2bca3 | ||
|
|
da539f0b2c | ||
|
|
829a60bdeb | ||
|
|
260a41ecbf | ||
|
|
a0cabe4f1a | ||
|
|
71658277df | ||
|
|
5f83020d4c | ||
|
|
3cba4fc24b | ||
|
|
954ce04eff | ||
|
|
d86a0210a7 | ||
|
|
e2bbdd9cd7 | ||
|
|
bf80b60e2a | ||
|
|
57a0b332de | ||
|
|
5378528442 | ||
|
|
b9759f5c86 | ||
|
|
9b1e6fb562 | ||
|
|
90a84b11c4 | ||
|
|
b40db47eb0 | ||
|
|
f82f497bbb | ||
|
|
fd2e2770cb | ||
|
|
42a72c9b25 | ||
|
|
4b9311c9ea | ||
|
|
3e9cefebe5 | ||
|
|
4842da0cfb | ||
|
|
8573d14612 | ||
|
|
cd544c5a0d | ||
|
|
5d5b0add75 | ||
|
|
379106b0b2 | ||
|
|
6e8975b97d | ||
|
|
4c54c932cd | ||
|
|
408d97e904 | ||
|
|
9f68abd727 | ||
|
|
a617f63914 | ||
|
|
8e7bf84767 | ||
|
|
4693dd0f7c | ||
|
|
52d37371b0 | ||
|
|
299c7dc33b | ||
|
|
711e485b81 | ||
|
|
fcf4512d64 | ||
|
|
58a33974f6 | ||
|
|
c5838c840b | ||
|
|
580ec950bc | ||
|
|
dbc8de8609 | ||
|
|
6d02ee625d | ||
|
|
82a53959b8 | ||
|
|
d5037366b0 | ||
|
|
f07bf0f8e8 | ||
|
|
5d86392d08 | ||
|
|
596769bb65 | ||
|
|
10e9d9c1a7 | ||
|
|
68e18960dd | ||
|
|
bc7a89e6f8 | ||
|
|
8da7730ff5 | ||
|
|
c1fbab5f73 | ||
|
|
f900d67111 | ||
|
|
f9bbe497a5 | ||
|
|
fecc1d5ec0 | ||
|
|
d2dab0be97 | ||
|
|
8a3e79369f | ||
|
|
a0a53888a2 | ||
|
|
96d9080417 | ||
|
|
40a0a0c631 | ||
|
|
635fe7c46a | ||
|
|
d11e18cfc5 | ||
|
|
1bf6d6e2ab | ||
|
|
f871c42313 | ||
|
|
71abdd7a03 | ||
|
|
a1405ec48d | ||
|
|
807c132ce3 | ||
|
|
48ef30f41f | ||
|
|
cf76a5080a | ||
|
|
0abf3306e0 | ||
|
|
40d09c3774 | ||
|
|
e8ee3b88c6 | ||
|
|
f977c76e9c | ||
|
|
75ef795ff3 | ||
|
|
d754c56885 | ||
|
|
0abd022da3 | ||
|
|
0fd50997ca | ||
|
|
5659d45a5a | ||
|
|
57ea6c20ad | ||
|
|
5679378923 | ||
|
|
09c43c710b | ||
|
|
b69b4da020 | ||
|
|
3882d4886d | ||
|
|
dbcda641a3 | ||
|
|
2a1010b48b | ||
|
|
c2d7b15bcb | ||
|
|
a6e7fe83bf | ||
|
|
b3bc95d647 | ||
|
|
ea31a498b4 | ||
|
|
680c6a50ea | ||
|
|
563c6f9a49 | ||
|
|
4493305491 | ||
|
|
f765e10432 | ||
|
|
1f067ae579 | ||
|
|
8c39a9f49b | ||
|
|
2c71976f41 | ||
|
|
e025d62447 | ||
|
|
614bf804d7 | ||
|
|
6f24c51dd9 | ||
|
|
1d2184a9d7 | ||
|
|
21b4009940 | ||
|
|
694de6067d | ||
|
|
e9eecdf06d | ||
|
|
27c9aff84f | ||
|
|
174a23b528 | ||
|
|
c993644839 | ||
|
|
7fd978c74e | ||
|
|
459a9773c6 | ||
|
|
a3cac5f1ad | ||
|
|
21bea5eb05 | ||
|
|
90c84a4f20 | ||
|
|
9aca6405e5 | ||
|
|
540865139f | ||
|
|
a2b25d78bc | ||
|
|
2dc86c6411 | ||
|
|
e75d1e41cb | ||
|
|
f3be9f08c8 | ||
|
|
fe602274b6 | ||
|
|
35cc679664 | ||
|
|
10ae8cb7e3 | ||
|
|
fd89d7f4c1 | ||
|
|
c0acc79ceb | ||
|
|
24e28c7407 | ||
|
|
d0db178e2a | ||
|
|
c6fcf04c25 | ||
|
|
624a206a26 | ||
|
|
c37cd5aa27 | ||
|
|
faecd9f0c2 | ||
|
|
ad752d8cc7 | ||
|
|
65e58dfb8b | ||
|
|
253a6746bf | ||
|
|
4682cd1e39 | ||
|
|
6c5cddc1c1 | ||
|
|
61fbc0b831 | ||
|
|
c76df0b6e2 | ||
|
|
64473032d4 | ||
|
|
feb852745d | ||
|
|
9f9bd271d9 | ||
|
|
d29bc03ec5 | ||
|
|
79c9fb3f3e | ||
|
|
b9f5b4b52d | ||
|
|
653553e7dc | ||
|
|
0db5d04af3 | ||
|
|
fa3fe66a03 | ||
|
|
9b408160b4 | ||
|
|
0001bd6d61 | ||
|
|
af53c6b623 | ||
|
|
93c3647c16 | ||
|
|
6a48393614 | ||
|
|
8b2a3f46e6 | ||
|
|
d356cb5c43 | ||
|
|
0ddd6a9db0 | ||
|
|
99978c3513 | ||
|
|
3ad3cc97c6 | ||
|
|
0c2c54c21f | ||
|
|
e9d0ee343f | ||
|
|
e28a63d3d0 | ||
|
|
4c4c552ae0 | ||
|
|
feacdf586c | ||
|
|
b4cdb2e889 | ||
|
|
4670fa2a8f | ||
|
|
f36e2887f3 | ||
|
|
637046b07f | ||
|
|
3217e9e2f5 | ||
|
|
e565ab7f62 | ||
|
|
59f8ad5c35 | ||
|
|
a630ef95fb | ||
|
|
91b29bc178 | ||
|
|
6f002facef | ||
|
|
73fecf71db | ||
|
|
27435a6fc7 | ||
|
|
f3726cacfa | ||
|
|
846c2481ce | ||
|
|
9824c9944b | ||
|
|
ccfde38a8e | ||
|
|
78a081c6e2 | ||
|
|
0b0d9fbef4 | ||
|
|
55e9cbf26f | ||
|
|
05952b76d0 | ||
|
|
c707b2eea6 | ||
|
|
672f92400d | ||
|
|
7178fe0937 | ||
|
|
96e2d4d67c | ||
|
|
dd119559bd | ||
|
|
a4e830173d | ||
|
|
e57cfaf59d | ||
|
|
c4cf632983 | ||
|
|
2d70eb1896 | ||
|
|
45a55be926 | ||
|
|
8c6f66adac | ||
|
|
6b82fe01dc | ||
|
|
58efd0fb66 | ||
|
|
189fb5766d | ||
|
|
e3d372d68c | ||
|
|
116dd1c6fb | ||
|
|
cc136063bd | ||
|
|
f520e65b0d | ||
|
|
200370d738 | ||
|
|
82f62933e9 | ||
|
|
e8a9d2d00d | ||
|
|
ed03483055 | ||
|
|
c214e06b6e | ||
|
|
7ac10728eb | ||
|
|
bc1e01f0c1 | ||
|
|
9c23731c4c | ||
|
|
f4f5e76787 | ||
|
|
420bc20001 | ||
|
|
73e33d1e94 | ||
|
|
9277ca530d | ||
|
|
565024198d | ||
|
|
4f022036c9 | ||
|
|
148dae3838 | ||
|
|
3bf84efccc | ||
|
|
88be0a129f | ||
|
|
9e416bac9b | ||
|
|
78dbbd6d63 | ||
|
|
f944a836c0 | ||
|
|
b85603561b | ||
|
|
4a13674ecc | ||
|
|
a4d579c1f7 | ||
|
|
b790f3b930 | ||
|
|
9105efe6d4 | ||
|
|
f1086f9f1d | ||
|
|
d2ebe05a62 | ||
|
|
d23acf53de | ||
|
|
e51ff93b63 | ||
|
|
ff2dea088c | ||
|
|
838b0eff6c | ||
|
|
9b467c99c0 | ||
|
|
d787fc2b82 | ||
|
|
5fca6f68c5 | ||
|
|
f3f6d0b374 | ||
|
|
25bd1c4060 | ||
|
|
3cecb1fcd5 | ||
|
|
c115fad344 | ||
|
|
fde88e6700 | ||
|
|
64872351e2 | ||
|
|
960a242c38 | ||
|
|
9c40a95650 | ||
|
|
3a374455ca | ||
|
|
08667ef7c1 | ||
|
|
0b88922ec5 | ||
|
|
8d0d053863 | ||
|
|
850e70494b | ||
|
|
7b6b01ea01 | ||
|
|
b53221e582 | ||
|
|
9a45aa6391 | ||
|
|
4da29d6081 | ||
|
|
d217930921 | ||
|
|
71f29213b5 | ||
|
|
ad62192476 | ||
|
|
67a386a2d3 | ||
|
|
37cfa2f953 | ||
|
|
44cbc74c98 | ||
|
|
c7aaf7f9be | ||
|
|
6b63a69416 | ||
|
|
45bb742eeb | ||
|
|
bc8594c1fc | ||
|
|
7fbb46dcd5 | ||
|
|
3e2f8b13fb | ||
|
|
333e1dc53d | ||
|
|
21e06d49a5 | ||
|
|
175e51509e | ||
|
|
ad0223ffa7 | ||
|
|
ff709370e6 | ||
|
|
c91013e6ab | ||
|
|
6e855cc9f4 | ||
|
|
a97ddde7ec | ||
|
|
c72b6e47e7 | ||
|
|
9dd77648bd | ||
|
|
0e35ee1039 | ||
|
|
87e48ce3f8 | ||
|
|
511cefd56a | ||
|
|
e7225c2d22 | ||
|
|
7b3eb174d6 | ||
|
|
5f8f895b28 | ||
|
|
a5485398f0 | ||
|
|
3e4fe38001 | ||
|
|
b9b58df874 | ||
|
|
d5d69c4e06 | ||
|
|
5bceb08149 | ||
|
|
89e16d6e78 | ||
|
|
77ebb57353 | ||
|
|
90ccdb84be | ||
|
|
e2f32469f2 | ||
|
|
6090d5f882 | ||
|
|
d8d55bc8ff | ||
|
|
97e0c62ebc | ||
|
|
695be64dc7 | ||
|
|
cba4466736 | ||
|
|
9a77478146 | ||
|
|
e09e735232 | ||
|
|
e03558fc3d | ||
|
|
7486d3b653 | ||
|
|
2c14561027 | ||
|
|
c85e827ac2 | ||
|
|
4e3705a380 | ||
|
|
aca4e84ce5 | ||
|
|
2b3f91299b | ||
|
|
619e76a2cd | ||
|
|
14926f398b | ||
|
|
9a799b27ad | ||
|
|
63cee71c03 | ||
|
|
c325ed3bd6 | ||
|
|
65f63a2374 | ||
|
|
87d2d06408 | ||
|
|
f48d8811c1 | ||
|
|
e01a214087 | ||
|
|
2a7979ae4d | ||
|
|
94b7bf8d7d | ||
|
|
eeb70ed5a9 | ||
|
|
dba8d90666 | ||
|
|
2b4e310db0 | ||
|
|
92fc424630 | ||
|
|
7646d6d91a | ||
|
|
b4f96baa89 | ||
|
|
d965b72184 | ||
|
|
75f8addccf | ||
|
|
7dbc0a28b5 | ||
|
|
c8c2396a45 | ||
|
|
e007f5fd74 | ||
|
|
ca2652ef7e | ||
|
|
cce470d128 | ||
|
|
8c88f01277 | ||
|
|
95bd53b6ee | ||
|
|
31703335d7 | ||
|
|
c72dc63f3d | ||
|
|
aa7b41dc3a | ||
|
|
127fbcb508 | ||
|
|
f9b1f72a34 | ||
|
|
3e3ae7a8a3 | ||
|
|
f908e45d29 | ||
|
|
24ac465278 | ||
|
|
ed0a2fba7d | ||
|
|
17a55f8e9f | ||
|
|
651d63ffe4 | ||
|
|
6ce08f6cb7 | ||
|
|
51df231f0b | ||
|
|
af873e8346 | ||
|
|
d503981f24 | ||
|
|
8aefd574ab | ||
|
|
342ecd701d | ||
|
|
703752907d | ||
|
|
a537ae5c5c | ||
|
|
9fdb886692 | ||
|
|
bccda9ee0a | ||
|
|
ee9b3d9d4c | ||
|
|
d39676c99f | ||
|
|
d5ca28bda6 | ||
|
|
96ba6be300 | ||
|
|
ec2e71437a | ||
|
|
19bfb88f66 | ||
|
|
72eed6c5e7 | ||
|
|
a268eff743 | ||
|
|
c547a925bb | ||
|
|
e082504830 | ||
|
|
54abf48212 | ||
|
|
5cbb14eccd | ||
|
|
217a703009 | ||
|
|
0eda1142c0 | ||
|
|
f5dcff8259 | ||
|
|
9d3b43878b | ||
|
|
e2036a27ba | ||
|
|
d8c83efc18 | ||
|
|
aa243c33c1 | ||
|
|
9b04329899 | ||
|
|
87ddcdd2a1 | ||
|
|
09c432fd93 | ||
|
|
ab97703593 | ||
|
|
d943f1da8f | ||
|
|
2c88c10f28 | ||
|
|
0c1775002b | ||
|
|
a5df993c47 | ||
|
|
ff90d61dc1 | ||
|
|
e3187860b4 | ||
|
|
b0015f6781 | ||
|
|
6b6871f17a | ||
|
|
b1f6f0b8b0 | ||
|
|
b97434af61 | ||
|
|
72e1be5b03 | ||
|
|
fa54aeaed2 | ||
|
|
eab27303ef | ||
|
|
81e317535f | ||
|
|
b247c6b53d | ||
|
|
9a5e638978 | ||
|
|
e1ae8d8e2b | ||
|
|
8c29047265 | ||
|
|
09686de651 | ||
|
|
aa97bbbd98 | ||
|
|
9a1694b71f | ||
|
|
eee9480678 | ||
|
|
9d1153179d | ||
|
|
c665437c1c | ||
|
|
096b3da5ca | ||
|
|
fa4872ec9b | ||
|
|
75ba8b58ac | ||
|
|
936a64c40e | ||
|
|
53442aec1a | ||
|
|
1d8a30414a | ||
|
|
9af54696aa | ||
|
|
8dade4ed7b | ||
|
|
3fd1e3f83f | ||
|
|
fb222de609 | ||
|
|
187ee50ed2 | ||
|
|
fa18f52d58 | ||
|
|
5a39308624 | ||
|
|
942157b59c | ||
|
|
8ae9ed02bf | ||
|
|
c8d669ef67 | ||
|
|
cb2ef638b4 | ||
|
|
556ea86b93 | ||
|
|
a73ba1ff9d | ||
|
|
195a616439 | ||
|
|
bf446e6246 | ||
|
|
5b4fd41d84 | ||
|
|
6c64729a75 | ||
|
|
c6515271c8 | ||
|
|
f452d0abed | ||
|
|
4e89f324a0 | ||
|
|
73072cd5e7 | ||
|
|
8ca6747da8 | ||
|
|
24d7a679aa | ||
|
|
ab12438bfa | ||
|
|
3f87cf22df | ||
|
|
45635387f9 | ||
|
|
8102b02687 | ||
|
|
39f48fed17 | ||
|
|
b457795dfa | ||
|
|
e63dfc5267 | ||
|
|
12f73b9b53 | ||
|
|
0c636c2375 | ||
|
|
a2646f1c5b | ||
|
|
6e775051af | ||
|
|
6c7686339c | ||
|
|
46ad0c0eff | ||
|
|
6f6431c0b8 | ||
|
|
fbe06c4349 | ||
|
|
8c3f5497ef | ||
|
|
6b6fa0b353 | ||
|
|
fdf9590787 | ||
|
|
ac43ac6398 | ||
|
|
1b5c0fe3aa | ||
|
|
cd2ae03fae | ||
|
|
a1d7d185c4 | ||
|
|
7a7a99dd1a | ||
|
|
1923aaf221 | ||
|
|
15d924bcda | ||
|
|
e639c804e1 | ||
|
|
d7ae053f06 | ||
|
|
ce76fb13c3 | ||
|
|
186a8a0861 | ||
|
|
4219ad2d6b | ||
|
|
a7a3e986ea | ||
|
|
f1b92f6e33 | ||
|
|
751b12a440 | ||
|
|
e291bfff4c | ||
|
|
ab97bd083c | ||
|
|
47b1f89bee | ||
|
|
7ad5d29a66 | ||
|
|
f37713aafa | ||
|
|
583fdd858d | ||
|
|
ed70da1d8f | ||
|
|
a790dd053f | ||
|
|
53e87f2d38 | ||
|
|
0ae0f27faf | ||
|
|
3039076201 | ||
|
|
8bf80dd0cf | ||
|
|
62758f3dab | ||
|
|
b510315f72 | ||
|
|
63b80b371a | ||
|
|
9de45b1375 | ||
|
|
300c9d0e5e | ||
|
|
c0d6080462 | ||
|
|
d4a23a91fd | ||
|
|
0cec1524ee | ||
|
|
85f11e1759 | ||
|
|
9e908faafd | ||
|
|
fa58142939 | ||
|
|
aba5649b6d | ||
|
|
28f5530d9c | ||
|
|
9a69a824ba | ||
|
|
7bb67e3e06 | ||
|
|
9ac9ab883e | ||
|
|
be0c2c371f | ||
|
|
5e92ab35e6 | ||
|
|
29d08787e0 | ||
|
|
eb5eb7ae16 | ||
|
|
b6fef6b306 | ||
|
|
a205f94500 | ||
|
|
71ba0a1636 | ||
|
|
99943d6bf1 | ||
|
|
2c9c1abbfe | ||
|
|
3afebaaa81 | ||
|
|
d8e2efac1d | ||
|
|
9a43274713 | ||
|
|
0d3e2d40d5 | ||
|
|
2e064235b4 | ||
|
|
a5f116f8af | ||
|
|
9438c0cf7c | ||
|
|
da334333f1 | ||
|
|
0f3af55537 | ||
|
|
37ecb5fba1 | ||
|
|
7981fd9722 | ||
|
|
555ae11e43 | ||
|
|
89e9a6734e | ||
|
|
dc52853208 | ||
|
|
3745f01628 | ||
|
|
df193c38d6 | ||
|
|
da0123db5a | ||
|
|
a9d2b23254 | ||
|
|
88236c18dd | ||
|
|
f3221c6814 | ||
|
|
6e6831a636 | ||
|
|
2e6c1cf9c3 | ||
|
|
29a6c6db47 | ||
|
|
fe0e8a84d5 | ||
|
|
5868882b5c | ||
|
|
278ded7274 | ||
|
|
5f3b5440f8 | ||
|
|
5ad205c91e | ||
|
|
32f420580a | ||
|
|
457270b70f | ||
|
|
b5160123c7 | ||
|
|
c26cc991a2 | ||
|
|
2b28e76f46 | ||
|
|
11328d5561 | ||
|
|
0046ce8f92 | ||
|
|
c152da1797 | ||
|
|
32f4ce4a24 | ||
|
|
eb77941c6c | ||
|
|
5c01a1c157 | ||
|
|
d06c9aca22 | ||
|
|
b2b386aadd | ||
|
|
244e7df40b | ||
|
|
effdf26a4c | ||
|
|
b82f5d0bff | ||
|
|
825dff70b0 | ||
|
|
ef2688e613 | ||
|
|
14c69a2f3c | ||
|
|
91e2bc4421 | ||
|
|
cc17b5a284 | ||
|
|
8a96eeef38 | ||
|
|
d8f372cf2e | ||
|
|
006b3940be | ||
|
|
223305e2e8 | ||
|
|
14b8c6ae36 | ||
|
|
1ec92522af | ||
|
|
31e269a5aa | ||
|
|
08eb1f93a9 | ||
|
|
8aa8132510 | ||
|
|
314245c293 | ||
|
|
9e15367313 | ||
|
|
98e6cb04ac | ||
|
|
d1ffed1a0f | ||
|
|
ca6bc5c9f0 | ||
|
|
31699c0912 | ||
|
|
282ac4e55a | ||
|
|
692f198bc4 | ||
|
|
28f401e075 | ||
|
|
d0938a0ed7 | ||
|
|
df7cde587c | ||
|
|
75af9091f7 | ||
|
|
1ed527e35e | ||
|
|
c2611b28d9 | ||
|
|
a3c941d06d | ||
|
|
a928a34fe7 | ||
|
|
8ef5339844 | ||
|
|
eed019a5bc | ||
|
|
1059f8553b | ||
|
|
11f8827691 | ||
|
|
b03bd09fc1 | ||
|
|
06c4783cc9 | ||
|
|
772948c701 | ||
|
|
dd0f832932 | ||
|
|
0b14091865 | ||
|
|
2d220d33a9 | ||
|
|
fd86b3b59d | ||
|
|
f888571113 | ||
|
|
02f9230ece | ||
|
|
5b2dc977f0 | ||
|
|
7b9c48de8a | ||
|
|
2f771eb438 | ||
|
|
f56ea805c3 | ||
|
|
e3e37277e8 | ||
|
|
b798333d77 | ||
|
|
76ba4f2949 | ||
|
|
616a6b97db | ||
|
|
7f808dcb92 | ||
|
|
9358861ca7 | ||
|
|
b14a0219f9 | ||
|
|
1d4ab688d1 | ||
|
|
431d989116 | ||
|
|
fd374feab3 | ||
|
|
676fc62f74 | ||
|
|
707547bad7 | ||
|
|
b28e0971e2 | ||
|
|
2592e9a4e5 | ||
|
|
bab45d043f | ||
|
|
940bb71763 | ||
|
|
5fecfaee6a | ||
|
|
f5302c09bb | ||
|
|
61376036dc | ||
|
|
a571ee168d | ||
|
|
97aa3cf7e5 | ||
|
|
6ee2d358d9 | ||
|
|
b8b081da3d | ||
|
|
07e87bba2a | ||
|
|
0d66ae151c | ||
|
|
21c167e7a2 | ||
|
|
8cb931852f | ||
|
|
aec358e227 | ||
|
|
c1fdf9a414 | ||
|
|
b21358e0da | ||
|
|
d5609c06d5 | ||
|
|
064aab2f10 | ||
|
|
e42841eb53 | ||
|
|
12d56740a2 | ||
|
|
634cf33bfc | ||
|
|
c82a62f7ed | ||
|
|
4299d6a77b | ||
|
|
4dbd8642b3 | ||
|
|
fb2de77fff | ||
|
|
164b5ffd6c | ||
|
|
e53c168184 | ||
|
|
219626087b | ||
|
|
a4c16ce0ec | ||
|
|
37305af06f | ||
|
|
527602e92a | ||
|
|
58ffd595f6 | ||
|
|
eb9275adea | ||
|
|
272eccd6d7 | ||
|
|
9ed16ea333 | ||
|
|
1e1c21ea9d | ||
|
|
ef981e559a | ||
|
|
97ec11ba3d | ||
|
|
dd590f4e01 | ||
|
|
4552b93d61 | ||
|
|
6342aa08ff | ||
|
|
fa76ba7049 | ||
|
|
7c3ef9ad72 | ||
|
|
ec1928a5e8 | ||
|
|
473fd51b41 | ||
|
|
5cdaceb3b2 | ||
|
|
80a5b3dad5 | ||
|
|
c264ef2fe0 | ||
|
|
3dbcc21e50 | ||
|
|
136bfca2f6 | ||
|
|
dfb78e8778 | ||
|
|
343c36d618 | ||
|
|
0d4e9c436b | ||
|
|
7a7e4f8f3a | ||
|
|
79bb25c122 | ||
|
|
5de826d0de | ||
|
|
a1f47675dd | ||
|
|
17d8e20613 | ||
|
|
9868e754bf | ||
|
|
f813930b0b | ||
|
|
aa753cfe99 | ||
|
|
c61ce217a6 | ||
|
|
a38aa068f2 | ||
|
|
3948373d7d | ||
|
|
cc05fe7c11 | ||
|
|
efce9a91eb | ||
|
|
c4aca816df | ||
|
|
fca8e0742a | ||
|
|
5462cec782 | ||
|
|
619d806e05 | ||
|
|
a4f6c6d00b | ||
|
|
01dc8fdab3 | ||
|
|
8a1da17bd7 | ||
|
|
5c5334bff8 | ||
|
|
71800616eb | ||
|
|
80ace5911e | ||
|
|
f5a3ffc114 | ||
|
|
45d00827c6 | ||
|
|
8ced81e20c | ||
|
|
610fe60930 | ||
|
|
5a8b026bf1 | ||
|
|
37e50deb64 | ||
|
|
09e128c1b9 | ||
|
|
ec6aa9520f | ||
|
|
8c3abb43dc | ||
|
|
923585dfda | ||
|
|
6df6f64e66 | ||
|
|
f701fe0fa0 | ||
|
|
df9807ce08 | ||
|
|
687609c9ea | ||
|
|
b148b96cac | ||
|
|
02cbc2ffaf | ||
|
|
ccbf2910eb | ||
|
|
b8f35dd3ba | ||
|
|
d3642fef59 | ||
|
|
7a25b2cec6 | ||
|
|
e9ba22320c | ||
|
|
4af734d3cf | ||
|
|
ce7d469178 | ||
|
|
43eee52859 | ||
|
|
78d84fdf65 | ||
|
|
372d60ec59 | ||
|
|
e6bf2143fd | ||
|
|
9d299d36ce | ||
|
|
9390e4c452 | ||
|
|
60245648b5 | ||
|
|
259374b6e6 | ||
|
|
6ad92749f4 | ||
|
|
0facaf7397 | ||
|
|
cf12fcb638 | ||
|
|
01a9710639 | ||
|
|
1e59f4fb34 | ||
|
|
559222b4a1 | ||
|
|
41ccee1dda | ||
|
|
c47fa533b5 | ||
|
|
31239f9af7 | ||
|
|
bfc4015732 | ||
|
|
19099660fa | ||
|
|
0527facf44 | ||
|
|
7f43aa39c6 | ||
|
|
fb54435976 | ||
|
|
0bafc9c6ae | ||
|
|
f34b378130 | ||
|
|
97942650a0 | ||
|
|
d71d986cb3 | ||
|
|
c1f28166fb | ||
|
|
87c65fd509 | ||
|
|
17f35c2f00 | ||
|
|
c98825585b | ||
|
|
493572723f | ||
|
|
4754914b3d | ||
|
|
b366d260da | ||
|
|
51d186e749 | ||
|
|
62525dba4e | ||
|
|
cef3398088 | ||
|
|
3e3f14fabf | ||
|
|
4e8b49edba | ||
|
|
dac178f2fe | ||
|
|
56550c75d8 | ||
|
|
52f1b1454b | ||
|
|
da4224d9bf | ||
|
|
7b329a191b | ||
|
|
21763313ee | ||
|
|
d80e6169a3 | ||
|
|
04be0af97c | ||
|
|
71fa48082b | ||
|
|
c1508876de | ||
|
|
1a65dd9991 | ||
|
|
5acb829ce3 | ||
|
|
54ae80b3ec | ||
|
|
4ee66bad00 | ||
|
|
26f1643527 | ||
|
|
d4e7153e5d | ||
|
|
3fb1ce1a58 | ||
|
|
0fdc941055 | ||
|
|
14fe63ff10 | ||
|
|
d561dfef68 | ||
|
|
633496d89f | ||
|
|
2b4fce29be | ||
|
|
31060f1dc7 | ||
|
|
0c69f3f4c5 | ||
|
|
95c7897092 | ||
|
|
7abd9ae877 | ||
|
|
a7016d33a1 | ||
|
|
996b666692 | ||
|
|
f94b018b06 | ||
|
|
176bf8df1c | ||
|
|
4324f968b2 | ||
|
|
b26c787359 | ||
|
|
9c8efb060c | ||
|
|
ef67334245 | ||
|
|
c9cca7d887 | ||
|
|
97a3c5a126 | ||
|
|
fa6a0b0ca8 | ||
|
|
bf59cefadd | ||
|
|
365c464931 | ||
|
|
c6cbaf3a9c | ||
|
|
fbf6353f20 | ||
|
|
4b75d4886b | ||
|
|
3ff32b7cdf | ||
|
|
1344201769 | ||
|
|
021fd65efa | ||
|
|
ac3082045a | ||
|
|
8ca2c91f50 | ||
|
|
823f865c36 | ||
|
|
0a108f173a | ||
|
|
d77ee0c437 | ||
|
|
2c7f039451 | ||
|
|
c5f58bcec0 | ||
|
|
df198b0052 | ||
|
|
ba4a9e28c4 | ||
|
|
6e0bf8cb37 | ||
|
|
c47f134752 | ||
|
|
ce41266bff | ||
|
|
d4080a9aab | ||
|
|
c94434454d | ||
|
|
f720e88745 | ||
|
|
41dcb5da7d | ||
|
|
a6a1cb14ee | ||
|
|
3fbfcc7343 | ||
|
|
d33e786523 | ||
|
|
37acdac8a8 | ||
|
|
e04426013a | ||
|
|
ffcb8fbc68 | ||
|
|
3d512e6e04 | ||
|
|
588efb23de | ||
|
|
478edf51ef | ||
|
|
cc1f4dc1ef | ||
|
|
a93271bdc4 | ||
|
|
3721df04f9 | ||
|
|
6acdd05019 | ||
|
|
2cb0e0a8bf | ||
|
|
ad0bceba08 | ||
|
|
20730a29cd | ||
|
|
bd9b7cac2a | ||
|
|
2a410c92af | ||
|
|
f9b7392f45 | ||
|
|
b8ae8242f9 | ||
|
|
7d7935cfac | ||
|
|
cabae2c713 | ||
|
|
947cd08d25 | ||
|
|
7a37167ad6 | ||
|
|
b88bf2c076 | ||
|
|
f8408cd20a | ||
|
|
026a987564 | ||
|
|
4846ed0caf | ||
|
|
aa93d75c84 | ||
|
|
eace00399b | ||
|
|
84489d6803 | ||
|
|
77ce84f0e1 | ||
|
|
f967a98348 | ||
|
|
9eeba97c71 | ||
|
|
6aff7dcafa | ||
|
|
9c0242285e | ||
|
|
5f05b369c4 | ||
|
|
ac0dc938fd | ||
|
|
72c3f78013 | ||
|
|
2f7e9262c9 | ||
|
|
5196532bad | ||
|
|
c3e150c078 | ||
|
|
c4301b10e6 | ||
|
|
96c825c4a0 | ||
|
|
7f5a8a11b9 | ||
|
|
3adfbb6148 | ||
|
|
013cc7712b | ||
|
|
b6cf57be1e | ||
|
|
ab3c50b6d4 | ||
|
|
6366d1fa36 | ||
|
|
79e0885618 | ||
|
|
25e95107e9 | ||
|
|
01e0200d7a | ||
|
|
427a83f30d | ||
|
|
1c88befd21 | ||
|
|
b41c1aa4de | ||
|
|
b607b58895 | ||
|
|
4e38c2967f | ||
|
|
750d66187a | ||
|
|
7df5359714 | ||
|
|
12ef52a4c1 | ||
|
|
82743885d9 | ||
|
|
3941f50960 | ||
|
|
e73d4f7b88 | ||
|
|
85c655ea88 | ||
|
|
e17ea8b1e1 | ||
|
|
eefcef0df1 | ||
|
|
b69e1ae2c0 | ||
|
|
6e696b410f | ||
|
|
dda61055ee | ||
|
|
5d7fe33d5d | ||
|
|
8d3dedf04b | ||
|
|
c184482966 | ||
|
|
860f870445 | ||
|
|
6a4907263d | ||
|
|
37ca102a13 | ||
|
|
5030d2e1d8 | ||
|
|
d4589ac357 | ||
|
|
7b58a7f6ff | ||
|
|
fef21e1834 | ||
|
|
c6eafdb0b5 | ||
|
|
d7c4825284 | ||
|
|
de70079e56 | ||
|
|
9d411919a7 | ||
|
|
2b4c47f502 | ||
|
|
2315989f62 | ||
|
|
d4eedf5933 | ||
|
|
c08608191a | ||
|
|
820c3d3596 | ||
|
|
48fbf4f5de | ||
|
|
1c36b31f78 | ||
|
|
497e13f362 | ||
|
|
6518cd1edb | ||
|
|
8e40565fe3 | ||
|
|
629751c155 | ||
|
|
6f11c4d7ec | ||
|
|
4201ac00ec | ||
|
|
c93bb536ef | ||
|
|
202f201054 | ||
|
|
c519f7cf34 | ||
|
|
48f5146c36 | ||
|
|
a91b4b09fc | ||
|
|
de01941010 | ||
|
|
95da9c8700 | ||
|
|
7facbacfde | ||
|
|
8ed00123b0 | ||
|
|
93639e5bd7 | ||
|
|
0bdbb3aaf9 | ||
|
|
0e03bf0a13 | ||
|
|
3b31ece558 | ||
|
|
20607f75aa | ||
|
|
0a9239714b | ||
|
|
688b88a74b | ||
|
|
cb63c2214b | ||
|
|
dbff104617 | ||
|
|
44448b14a8 | ||
|
|
cae12c7bc8 | ||
|
|
57a73a1bac | ||
|
|
b9af072ce3 | ||
|
|
1a8cccb9b4 | ||
|
|
908a5313a2 | ||
|
|
adddd8bbc9 | ||
|
|
2a50d73df8 | ||
|
|
06b89e92de | ||
|
|
ca4325c4f2 | ||
|
|
c7e531a65c | ||
|
|
d2028b1bc7 | ||
|
|
7fd1c0e3c2 | ||
|
|
191592b094 | ||
|
|
6f68d6dc79 | ||
|
|
e00b2f1c8b | ||
|
|
f0f2558fed | ||
|
|
982ec68b1c | ||
|
|
32b55f68d2 | ||
|
|
99db790086 | ||
|
|
5f1a2d7eea | ||
|
|
400c2cfcea | ||
|
|
312e9e1286 | ||
|
|
8bc849bd97 | ||
|
|
d97ed4fb8f | ||
|
|
e2689d28d4 | ||
|
|
c21fbffb7f | ||
|
|
dade8ac471 | ||
|
|
0221f41d16 | ||
|
|
baacdb16c8 | ||
|
|
c7c9636fb7 | ||
|
|
b88ed38382 | ||
|
|
144a23ca9b | ||
|
|
c183181ba6 | ||
|
|
9a067028cb | ||
|
|
dbc14b605e | ||
|
|
c19dd58acc | ||
|
|
e8a1688829 | ||
|
|
738b223288 | ||
|
|
bb6fa05909 | ||
|
|
450802208f | ||
|
|
a0b694f9a8 | ||
|
|
1517b8492f | ||
|
|
ac994414e9 | ||
|
|
a44f35ce5c | ||
|
|
263b77f3aa | ||
|
|
edd6b3b03b | ||
|
|
96bc5e7b2c | ||
|
|
6c9c058582 | ||
|
|
80cdfe4ce7 | ||
|
|
b050bb6446 | ||
|
|
aa4207c7d1 | ||
|
|
b679c79031 | ||
|
|
591053c10f | ||
|
|
2a96a8e86b | ||
|
|
b3cc2f6c76 | ||
|
|
e4bccc8136 | ||
|
|
0a56c48c58 | ||
|
|
678d129188 | ||
|
|
43cadfc965 | ||
|
|
e6772b7163 | ||
|
|
d3c6ae3144 | ||
|
|
910bcb1705 | ||
|
|
89d8519e10 | ||
|
|
b450a2a271 | ||
|
|
65b0a92243 | ||
|
|
34ee7334f5 | ||
|
|
b09cf8f855 | ||
|
|
03e6c4cf96 | ||
|
|
c2cbe6ec88 | ||
|
|
f80c59010a | ||
|
|
287fc1dc9e | ||
|
|
f92784da06 | ||
|
|
798029b426 | ||
|
|
d65c384e3a | ||
|
|
8085f90f1b | ||
|
|
d92f3ce966 | ||
|
|
87f76cacea | ||
|
|
e7e1adaa18 | ||
|
|
4930a07480 | ||
|
|
85287b25d8 | ||
|
|
cbc16d8217 | ||
|
|
402a0ceeb9 | ||
|
|
c526490ede | ||
|
|
0583c197e4 | ||
|
|
95056e146c | ||
|
|
98832e918a | ||
|
|
e97b5b8691 | ||
|
|
a0a168ab6e | ||
|
|
dbf1388163 | ||
|
|
31c4664976 | ||
|
|
556b5a38fa | ||
|
|
c36925f7f6 | ||
|
|
758b38865c | ||
|
|
a3fc07f496 | ||
|
|
815a874b3a | ||
|
|
b6f749af87 | ||
|
|
744e2f81d4 | ||
|
|
b6dbe8f262 | ||
|
|
cf5287855a | ||
|
|
4cc5777eff | ||
|
|
31652c4a99 | ||
|
|
886543f6f2 | ||
|
|
11a89183fd | ||
|
|
b0c8718674 | ||
|
|
4d0e2a520f | ||
|
|
10bc665629 | ||
|
|
5d179a6271 | ||
|
|
a4f03b195e | ||
|
|
c30d5f4094 | ||
|
|
8d2e2ec2d2 | ||
|
|
d37d4e8a95 | ||
|
|
0df332f5c4 | ||
|
|
df7442f70b | ||
|
|
487825ffa9 | ||
|
|
80ef72e9ff | ||
|
|
f4f4270096 | ||
|
|
af2250c00e | ||
|
|
5f011a043f | ||
|
|
02ae522a2f | ||
|
|
7f9db68743 | ||
|
|
71af682d4d | ||
|
|
48d2eb04d0 | ||
|
|
f00e5f6fe4 | ||
|
|
b82f736b01 | ||
|
|
c465eb2315 | ||
|
|
c5d0cf3e92 | ||
|
|
450400767f | ||
|
|
7609054be0 | ||
|
|
a9fb8afc89 | ||
|
|
230af1feb5 | ||
|
|
c8aa073ccd | ||
|
|
71ec4cf695 | ||
|
|
212a9e5693 | ||
|
|
931c9471e9 | ||
|
|
7dcb2e5ceb | ||
|
|
91a7a4cd19 | ||
|
|
52db6843b6 | ||
|
|
6683324fc8 | ||
|
|
f30c3dd6e5 | ||
|
|
6a3b5d9b6f | ||
|
|
93c5ab50e7 | ||
|
|
c426190074 | ||
|
|
eb8b1cb861 | ||
|
|
ef85f117f0 | ||
|
|
cf4e3c49ee | ||
|
|
11c8855c80 | ||
|
|
d518fc19d5 | ||
|
|
1455335c63 | ||
|
|
423b69c659 | ||
|
|
04391c2e9a | ||
|
|
781b7f1f4d | ||
|
|
04b51a8a51 | ||
|
|
3bc42b5bea | ||
|
|
128be24867 | ||
|
|
8d3adbc69b | ||
|
|
59bd1598be | ||
|
|
d60cc597a3 | ||
|
|
c38a3575f4 | ||
|
|
35a6bf824c | ||
|
|
099dbffeb3 | ||
|
|
86a13c2608 | ||
|
|
1b62937aa9 | ||
|
|
9cfe223bc5 | ||
|
|
fa7b2591bd | ||
|
|
166ae0eeb8 | ||
|
|
c850162418 | ||
|
|
bf2c62f19f | ||
|
|
fd02ccf1d4 | ||
|
|
2b4e2b4641 | ||
|
|
3afe379e14 | ||
|
|
808d12572d | ||
|
|
5434d5602a | ||
|
|
620aa92fb9 | ||
|
|
c4fd4ad4a4 | ||
|
|
4fa48bceff | ||
|
|
dd850a3666 | ||
|
|
e2a4fe266a | ||
|
|
ea7430e62c | ||
|
|
edf472571b | ||
|
|
7e211c26e4 | ||
|
|
686940d9b8 | ||
|
|
c8619aa647 | ||
|
|
6e47f5a1c4 | ||
|
|
86efe1886b | ||
|
|
6dc4b20bc0 | ||
|
|
5aab9ce2eb | ||
|
|
4585cb0bec | ||
|
|
a5421ec904 | ||
|
|
da2dc8bf0d | ||
|
|
8bf48cd4f6 | ||
|
|
10538d4aa0 | ||
|
|
4e1c070df2 | ||
|
|
11b3cc08d3 | ||
|
|
d517ea1d34 | ||
|
|
741fcb950a | ||
|
|
2aa7f04c35 | ||
|
|
085848ff8c | ||
|
|
83a835c708 | ||
|
|
1e79bc142a | ||
|
|
63afbbd223 | ||
|
|
b481e3b499 | ||
|
|
603aca0f22 | ||
|
|
1268a2c9c9 | ||
|
|
0b5bd530ac | ||
|
|
2cddd9e6e0 | ||
|
|
1ed301f7ce | ||
|
|
a95d149932 | ||
|
|
3700c6ef95 | ||
|
|
4a240345d3 | ||
|
|
b2655da28b | ||
|
|
dd7150fa7c | ||
|
|
245bf7e2ad | ||
|
|
3e6ea2f720 | ||
|
|
234eb0fbf2 | ||
|
|
0648b30cbc | ||
|
|
58691dd56b | ||
|
|
2576d84723 | ||
|
|
5210a01df1 | ||
|
|
3ca162479e | ||
|
|
7b1421b0bc | ||
|
|
b0661d4dd5 | ||
|
|
315ff8e509 | ||
|
|
b5c0a25b07 | ||
|
|
43c3541912 | ||
|
|
9d818a944e | ||
|
|
851b0c945b | ||
|
|
6e7aecd636 | ||
|
|
b16fe1699b | ||
|
|
91be385b5f | ||
|
|
b7033fa336 | ||
|
|
76d09143e1 | ||
|
|
3339a0ab74 | ||
|
|
8fbe8662ad | ||
|
|
4988d50909 | ||
|
|
c47e40293f | ||
|
|
af4204d295 | ||
|
|
449abcede3 | ||
|
|
0709e509b6 | ||
|
|
61bade9c9f | ||
|
|
65c14a345c | ||
|
|
a2234d1cd5 | ||
|
|
491588c91f | ||
|
|
734d22dfe5 | ||
|
|
a50efaa1ae | ||
|
|
dd1a1d6b6a | ||
|
|
6e25c28fa2 | ||
|
|
bb78d58fae | ||
|
|
1e4c3c15b2 | ||
|
|
d75761821d | ||
|
|
e702a5ddc4 | ||
|
|
7d5dd86b46 | ||
|
|
63f4bb08f8 | ||
|
|
1ce47bf502 | ||
|
|
1355ed3d9e | ||
|
|
258b9c1993 | ||
|
|
1c71094167 | ||
|
|
fc363aeff4 | ||
|
|
703780058e | ||
|
|
d1f6f33945 | ||
|
|
edbf07514e | ||
|
|
b9a6eb96f3 | ||
|
|
7768ed318b | ||
|
|
7ab2d8e9cb | ||
|
|
51dc7db720 | ||
|
|
8fba1bcf50 | ||
|
|
c4a18d0110 | ||
|
|
e57614fecf | ||
|
|
7c2e23a1d8 | ||
|
|
650a888914 | ||
|
|
2204e37e45 | ||
|
|
6110d696bf | ||
|
|
265db47497 | ||
|
|
ea88ac2f8f | ||
|
|
5f615ba389 | ||
|
|
9742540b59 | ||
|
|
976626d92b | ||
|
|
3f5f5fcfdb | ||
|
|
0c5bc52a1a | ||
|
|
b496d07730 | ||
|
|
eb3d65b418 | ||
|
|
023b46c6a5 | ||
|
|
cf824462a4 | ||
|
|
e64ed9fc90 | ||
|
|
b4684f6958 | ||
|
|
a2303bf7c1 | ||
|
|
d5530a372a | ||
|
|
99820358ca | ||
|
|
7788ebd4ed | ||
|
|
12007da904 | ||
|
|
efa8ea1644 | ||
|
|
efcac6d362 | ||
|
|
9364464f7a | ||
|
|
0c1d390bc8 | ||
|
|
60853c3440 | ||
|
|
8d3b844717 | ||
|
|
547a3ad145 | ||
|
|
defe90e5bd | ||
|
|
5fc36a9a29 | ||
|
|
120831e0e4 | ||
|
|
26e781607f | ||
|
|
3c41291a37 | ||
|
|
d3360b597a | ||
|
|
765331050a | ||
|
|
1525643523 | ||
|
|
97b4a3a2dc | ||
|
|
9a8241b0ee | ||
|
|
68cb78348c | ||
|
|
0773bef446 | ||
|
|
db8309d948 | ||
|
|
2bb72f949c | ||
|
|
4b2427386a | ||
|
|
a01a04ec1e | ||
|
|
8a03eee4a7 | ||
|
|
e7690cb2a9 | ||
|
|
f4f0b8b7a6 | ||
|
|
d63f05c633 | ||
|
|
c480f8d019 | ||
|
|
f6ab849e16 | ||
|
|
7c05f72e69 | ||
|
|
687a55ca74 | ||
|
|
6a681a7ce1 | ||
|
|
ae64396f97 | ||
|
|
1d110b376e | ||
|
|
7030b90e0e | ||
|
|
73eebf594d | ||
|
|
ef656a37da | ||
|
|
6c7b03698e | ||
|
|
3c75cd6756 | ||
|
|
90949ef268 | ||
|
|
10919ef04a | ||
|
|
588c63e4e8 | ||
|
|
d86456eac1 | ||
|
|
2968c8e7c5 | ||
|
|
29ab166d9c | ||
|
|
194e13edb4 | ||
|
|
25647fbb1c | ||
|
|
3c8d2e37a9 | ||
|
|
c9fe58eee0 | ||
|
|
103864795c | ||
|
|
091b101185 | ||
|
|
54ce5cd8c3 | ||
|
|
cfeb5eff5b | ||
|
|
39af471e23 | ||
|
|
3464e95661 | ||
|
|
710f578634 | ||
|
|
01b8b1b11b | ||
|
|
319433d9ef | ||
|
|
526955c15b | ||
|
|
723ff44155 | ||
|
|
736e16164c | ||
|
|
1fb99ba45a | ||
|
|
41bff35d80 | ||
|
|
a56744a365 | ||
|
|
dbc4cb4f8a | ||
|
|
a65e8644da | ||
|
|
81d8f8c076 | ||
|
|
6960601566 | ||
|
|
6f9864cdd8 | ||
|
|
ead488d153 | ||
|
|
3f77e78636 | ||
|
|
c8d276a8e2 | ||
|
|
bb7131ad60 | ||
|
|
a3fee29f7d | ||
|
|
0d032ebf27 | ||
|
|
93ebcada3f | ||
|
|
e9cdd3b050 | ||
|
|
18e447cf81 | ||
|
|
7d0bd22841 | ||
|
|
bcd9840f81 | ||
|
|
83efe59d42 | ||
|
|
3126a12552 | ||
|
|
f387f03ec5 | ||
|
|
0015e10c63 | ||
|
|
2e12a447a4 | ||
|
|
b3b8e794ed | ||
|
|
c1d628ce6a | ||
|
|
182f6664ff | ||
|
|
c566e90b73 | ||
|
|
6af2d87084 | ||
|
|
bb4d25ff95 | ||
|
|
6b29b6a55f | ||
|
|
e28f917310 | ||
|
|
c040285e00 | ||
|
|
1f5cd9cdbd | ||
|
|
9c65d8eb51 | ||
|
|
bc1b833426 | ||
|
|
91149e1677 | ||
|
|
d79f970bdb | ||
|
|
98dcd43505 | ||
|
|
3fd33197a5 | ||
|
|
b5ee0729dc | ||
|
|
d6d834189d | ||
|
|
1bca7e6e2d | ||
|
|
95f4812c45 | ||
|
|
67ab2e854f | ||
|
|
a2644ceb90 | ||
|
|
8c2e5edb63 | ||
|
|
23bd69ec19 | ||
|
|
a4373ee2aa | ||
|
|
5ad6ca4968 | ||
|
|
01017f8dbf | ||
|
|
9e0696f401 | ||
|
|
8deb3b45a4 | ||
|
|
d88cfc3aa0 | ||
|
|
6445877620 | ||
|
|
e16a784bb4 | ||
|
|
85fde13e91 | ||
|
|
6efc7fd6f3 | ||
|
|
74737323f3 | ||
|
|
6ea3256947 | ||
|
|
05d0dfeb30 | ||
|
|
e8ce898932 | ||
|
|
c13e79dd02 | ||
|
|
9b4eb8f8bb | ||
|
|
733892c6bf | ||
|
|
ae7e4d9ff2 | ||
|
|
e61d393881 | ||
|
|
ff291929e9 | ||
|
|
e107d60185 | ||
|
|
87c0f82cfc | ||
|
|
8a428d4ac2 | ||
|
|
1ad0bdf849 | ||
|
|
55a289928e | ||
|
|
917742da8c | ||
|
|
67e5b6addf | ||
|
|
cfa81c80de | ||
|
|
d2f1ef6f4a | ||
|
|
3f7efeee91 | ||
|
|
ce2fc01c66 | ||
|
|
ea85468787 | ||
|
|
9e038747f7 | ||
|
|
947a371485 | ||
|
|
07b11f5afe | ||
|
|
3fb0213bde | ||
|
|
8937c09f7c | ||
|
|
26112d391d | ||
|
|
c4d44ea718 | ||
|
|
c8b182b5fe | ||
|
|
784ebbb218 | ||
|
|
5565ae5a02 | ||
|
|
47d4238c0c | ||
|
|
baf09b9c83 | ||
|
|
c696d9a508 | ||
|
|
e8107d1fcd | ||
|
|
ad84cece54 | ||
|
|
1cf5286ef7 | ||
|
|
8e09ffb87e | ||
|
|
923a78780d | ||
|
|
f2366720c8 | ||
|
|
587ee12813 | ||
|
|
819d3a38a0 | ||
|
|
4aea038db2 | ||
|
|
0313de1ae5 | ||
|
|
425a606b53 | ||
|
|
4727a8bab8 | ||
|
|
31ae4e2fbc | ||
|
|
dcb3684974 | ||
|
|
3027538b8f | ||
|
|
3bd136c368 | ||
|
|
75484d71c2 | ||
|
|
2d2cbc327c | ||
|
|
6441c9541a | ||
|
|
ba7145023e | ||
|
|
6abb4197e0 | ||
|
|
0478391b1a | ||
|
|
0ce3c0e77c | ||
|
|
cbdc9480c4 | ||
|
|
eb6c60c923 | ||
|
|
8f022393f0 | ||
|
|
0e0e73f0f7 | ||
|
|
5b217a7006 | ||
|
|
3deb73d94e | ||
|
|
632d1a8a1f | ||
|
|
fc0d9c8955 | ||
|
|
084e468d7f | ||
|
|
c9c2fab31d | ||
|
|
152c123d65 | ||
|
|
1be0ad0c26 | ||
|
|
d2b87f216d | ||
|
|
9eb7f20005 | ||
|
|
e866a387be | ||
|
|
c507221b1c | ||
|
|
d4853e6664 | ||
|
|
994ce8d9f7 | ||
|
|
45e003aef0 | ||
|
|
28cfc9ca6b | ||
|
|
0864e51ef1 | ||
|
|
8047ca8632 | ||
|
|
64a5a3f205 | ||
|
|
de8997f9e4 | ||
|
|
6456059520 | ||
|
|
ee342b7229 | ||
|
|
b1b8d454f2 | ||
|
|
dca4d8204e | ||
|
|
1e18a4822c | ||
|
|
425ae2f19f | ||
|
|
be3782bde4 | ||
|
|
16fcfb7bb9 | ||
|
|
834b8a22a5 | ||
|
|
7776548305 | ||
|
|
0aeea3f576 | ||
|
|
40b5a7e151 | ||
|
|
466eb9093d | ||
|
|
9c28e35d15 | ||
|
|
9379cd26fa | ||
|
|
9afdb2b0d4 | ||
|
|
5dfc3b2972 | ||
|
|
05f61567c5 | ||
|
|
5822f1ad54 | ||
|
|
f63cb9b6b1 | ||
|
|
07f736d009 | ||
|
|
189ad43508 | ||
|
|
7818b9491d | ||
|
|
ee257ebfab | ||
|
|
098b1897b1 | ||
|
|
5e01e6a05b | ||
|
|
559c530d69 | ||
|
|
f54bc44c8c | ||
|
|
2b60efe5b7 | ||
|
|
303821fb00 | ||
|
|
a2b3bf5f8b | ||
|
|
dc2f63fd92 | ||
|
|
ed1bb25a2c | ||
|
|
7740cb2362 | ||
|
|
0f505625dd | ||
|
|
ae6c462ec7 | ||
|
|
6f2c3f0e46 | ||
|
|
f92e276384 | ||
|
|
7c4e9936ee | ||
|
|
ce00b772db | ||
|
|
8562363617 | ||
|
|
b8ffe5e03e | ||
|
|
10762c9962 | ||
|
|
8f4c0ffc63 | ||
|
|
cbefd374c9 | ||
|
|
cb394e78d1 | ||
|
|
73ec2716df | ||
|
|
b8ca30c3fe | ||
|
|
4663bac794 | ||
|
|
463977c595 | ||
|
|
554a36cf1e | ||
|
|
caf0400dc6 | ||
|
|
1acd19bbe8 | ||
|
|
a9c4dbda83 | ||
|
|
27efadd782 | ||
|
|
c650c9da0b | ||
|
|
417e742581 | ||
|
|
2c027ee6d4 | ||
|
|
397168f490 | ||
|
|
47e0ffbf50 | ||
|
|
3b49f521de | ||
|
|
7e52985075 | ||
|
|
d4d8cbb69c | ||
|
|
0ea2922f10 | ||
|
|
bfa6d3acfe | ||
|
|
224b1db576 | ||
|
|
825a0c93a7 | ||
|
|
07cd3e8e06 | ||
|
|
c51a96b825 | ||
|
|
39cba63929 | ||
|
|
10c6da3a4c | ||
|
|
99e6af67fd | ||
|
|
c4e946599b | ||
|
|
65ff8baa3b | ||
|
|
b0b42df9ab | ||
|
|
ecf3079b6e | ||
|
|
859009ece5 | ||
|
|
b09c0de48a | ||
|
|
a1aa12604c | ||
|
|
3e4174fc26 | ||
|
|
9083f705c6 | ||
|
|
4bf66aa6f7 | ||
|
|
f9f89a7be4 | ||
|
|
ca403efef5 | ||
|
|
51a7de4d46 | ||
|
|
f458e232cb | ||
|
|
44ca2a339b | ||
|
|
b3ec1444ff | ||
|
|
072bb12eba | ||
|
|
98a3753949 | ||
|
|
5a74394401 | ||
|
|
12c40e3a0c | ||
|
|
1d256edf77 | ||
|
|
49fc71c277 | ||
|
|
d202acaec6 | ||
|
|
f0bb58e88e | ||
|
|
aa4cf79dbe | ||
|
|
9749df27cb | ||
|
|
7842d0c953 | ||
|
|
296142a17b | ||
|
|
ee606ac24d | ||
|
|
430f0f8161 | ||
|
|
5dd408c9f9 | ||
|
|
6fb5418f4e | ||
|
|
6db40d0f6d | ||
|
|
8d21bfe631 | ||
|
|
61abe76e6b | ||
|
|
e1118df422 | ||
|
|
bb027f7fc1 | ||
|
|
ba0789e725 | ||
|
|
9a4a49c326 | ||
|
|
19549a735a | ||
|
|
9369bc449b | ||
|
|
bfd33633f1 | ||
|
|
f9898326da | ||
|
|
464ec38468 | ||
|
|
1b9848388f | ||
|
|
c6a7fd25c4 | ||
|
|
0db811b512 | ||
|
|
15ee16d013 | ||
|
|
417b822fcf | ||
|
|
29351465da | ||
|
|
362925a9fd | ||
|
|
6300e65112 | ||
|
|
aefa450b9f | ||
|
|
020115d7b4 | ||
|
|
cfe46b1a77 | ||
|
|
4120984474 | ||
|
|
2591625fde | ||
|
|
0dde5771de | ||
|
|
9b8fc1c1ff | ||
|
|
2339275fa0 | ||
|
|
2beaebd2a4 | ||
|
|
eb8622cfc5 | ||
|
|
7ec2a9bcde | ||
|
|
21b2c4215b | ||
|
|
ce375cd2d1 | ||
|
|
08a46cbae9 | ||
|
|
25950ae574 | ||
|
|
3fc8650b96 | ||
|
|
673558e402 | ||
|
|
8702f9571b | ||
|
|
38fad4bc80 | ||
|
|
be77b0d07a | ||
|
|
1a8faed5c8 | ||
|
|
f9254662af | ||
|
|
a841bac02b | ||
|
|
2c86cad907 | ||
|
|
86a981d20e | ||
|
|
f63bb71b74 | ||
|
|
93f11c511a | ||
|
|
c76f201832 | ||
|
|
f3039533ba | ||
|
|
7c50df183f | ||
|
|
5f7ad126c0 | ||
|
|
f4073de170 | ||
|
|
bb717454a9 | ||
|
|
2c31d7ecb6 | ||
|
|
13815e5c8a | ||
|
|
8943b28271 | ||
|
|
034c7e8885 | ||
|
|
75dc2e58dc | ||
|
|
9833e5b433 | ||
|
|
2b8a754db5 | ||
|
|
776ae0f789 | ||
|
|
56ab94ca43 | ||
|
|
f1011adbda | ||
|
|
b31fa05f51 | ||
|
|
13b66d59a1 | ||
|
|
753fbf9e44 | ||
|
|
c6c8db899a | ||
|
|
c51ac68160 | ||
|
|
08cb9f6a3d | ||
|
|
9a8e5242b8 | ||
|
|
2b399134a9 | ||
|
|
26c9b0c483 | ||
|
|
873a489bd1 | ||
|
|
71145c6562 | ||
|
|
6c3292ad9a | ||
|
|
9679f81c4c | ||
|
|
4240351358 | ||
|
|
8cab2509dd | ||
|
|
4cdd360052 | ||
|
|
c11f7fe4c1 | ||
|
|
baa9bebcf0 | ||
|
|
67f2bfdbac | ||
|
|
ef97784bf9 | ||
|
|
980b62ea0a | ||
|
|
722862ec1c | ||
|
|
505aae9c7e | ||
|
|
f380df49a8 | ||
|
|
b45b41311b | ||
|
|
8dcea84e9b | ||
|
|
bac2271263 | ||
|
|
e42611a0e1 | ||
|
|
a7aaffb7de | ||
|
|
8d9ff8477d | ||
|
|
267bfa29ad | ||
|
|
42f8890023 | ||
|
|
d7161d53fa | ||
|
|
abe6cbd6fc | ||
|
|
80705e51c8 | ||
|
|
dba51d2e7b | ||
|
|
44ffd3d316 | ||
|
|
00e97d387e | ||
|
|
6edebea9ce | ||
|
|
52d3594d25 | ||
|
|
d4eee33ec9 | ||
|
|
ccf1ed4977 | ||
|
|
d2199013d8 | ||
|
|
9f42c732d7 | ||
|
|
9a5631bd30 | ||
|
|
de17a33923 | ||
|
|
ec6c4577c2 | ||
|
|
024580f69d | ||
|
|
2fbf0db9be | ||
|
|
52a52299eb | ||
|
|
31f6a8d613 | ||
|
|
d7356c1ed0 | ||
|
|
a6b0135044 | ||
|
|
0ea41a2466 | ||
|
|
86665fa5ff | ||
|
|
f25897fe0f | ||
|
|
27a5fe9987 | ||
|
|
c7a027421f | ||
|
|
d1a556c3c8 | ||
|
|
7e04a46232 | ||
|
|
c0686d744a | ||
|
|
059c811eae | ||
|
|
c58af65b8f | ||
|
|
a90cb46f3d | ||
|
|
2845d4bc9c | ||
|
|
4ee95c6310 | ||
|
|
d0f18fb164 | ||
|
|
ee5f42f1aa | ||
|
|
b9495ae895 | ||
|
|
bf99503c10 | ||
|
|
cbcfd57404 | ||
|
|
e38a383472 | ||
|
|
7447c2ab5c | ||
|
|
06de4475cc | ||
|
|
b04f7869bc | ||
|
|
f2db5eac9c | ||
|
|
b53fb27932 | ||
|
|
e6a66fd152 | ||
|
|
3de766b659 | ||
|
|
607c3ab676 | ||
|
|
16cf116363 | ||
|
|
3a1720cd7f | ||
|
|
da670b00a2 | ||
|
|
e7ef2ecd2a | ||
|
|
8d5107cb90 | ||
|
|
b3af18cfb8 | ||
|
|
0709290be5 | ||
|
|
9a4aacb341 | ||
|
|
8781bc62ce | ||
|
|
e7e1220bbe | ||
|
|
a992a68b97 | ||
|
|
144429c08a | ||
|
|
274c8e0f4f | ||
|
|
8f7fe7cbfc | ||
|
|
67e6695988 | ||
|
|
34c01b18cc | ||
|
|
f2671709b0 | ||
|
|
bb30f7ce3f | ||
|
|
e983a744be | ||
|
|
60bf3150fa | ||
|
|
df568361ea | ||
|
|
a43f7190b8 | ||
|
|
76f3d186dc | ||
|
|
583e59c6e0 | ||
|
|
f24809dfbc | ||
|
|
71f2a15166 | ||
|
|
1a27efffd0 | ||
|
|
c058d076e2 | ||
|
|
fc5a9579bc | ||
|
|
c91138df8b | ||
|
|
6b673bb2e2 | ||
|
|
c10a398054 | ||
|
|
656421251c | ||
|
|
6d123439db | ||
|
|
e8c7f4a0a7 | ||
|
|
a1a8a55847 | ||
|
|
f54563bd60 | ||
|
|
4ba548978e | ||
|
|
2b51d63056 | ||
|
|
c4f96602a8 | ||
|
|
3dbc040f94 | ||
|
|
130396a6d3 | ||
|
|
5e4363687a | ||
|
|
f7d6fde771 | ||
|
|
4bb22b0e45 | ||
|
|
cd296596bb | ||
|
|
16c67e7c6b | ||
|
|
a6110df839 | ||
|
|
7cef60f4db | ||
|
|
e6a12cbc4a | ||
|
|
c05fe93661 | ||
|
|
c907b7f850 | ||
|
|
6201fd8ad7 | ||
|
|
71888475f0 | ||
|
|
58ce853e0c | ||
|
|
79aa8cf419 | ||
|
|
9d0c043d95 | ||
|
|
8a625f60dd | ||
|
|
9cc7ae6dbf | ||
|
|
d74e9d61e7 | ||
|
|
b37f8b4028 | ||
|
|
f24522eceb | ||
|
|
c1833e248c | ||
|
|
6b315db828 | ||
|
|
6ebcae0ae4 | ||
|
|
275951823d | ||
|
|
f5527ac6a1 | ||
|
|
64cd0c2fe2 | ||
|
|
8f333fd8a8 | ||
|
|
8666c54109 | ||
|
|
bfd100bfed | ||
|
|
8420a0e8e6 | ||
|
|
312d1191d6 | ||
|
|
870517bac6 | ||
|
|
cca45f427e | ||
|
|
981d57173e | ||
|
|
304e2c97c8 | ||
|
|
d9a9528907 | ||
|
|
7ff7c245a6 | ||
|
|
3cc39f818c | ||
|
|
d682f6cc6b | ||
|
|
8eb3c77193 | ||
|
|
a6e92ef342 | ||
|
|
f92ab20e82 | ||
|
|
58190bba57 | ||
|
|
75929d9555 | ||
|
|
d8da150fe1 | ||
|
|
c599e4011d | ||
|
|
2f7b49c5b8 | ||
|
|
49903ac920 | ||
|
|
862b98e6df | ||
|
|
456e141fb3 | ||
|
|
c0f55bbc71 | ||
|
|
57c21e29f7 | ||
|
|
c639c3ccdd | ||
|
|
18a8ece1c0 | ||
|
|
e1fa3a64af | ||
|
|
7c7c380c70 | ||
|
|
89cc9bc982 | ||
|
|
18cfb38847 | ||
|
|
fef75fad9e | ||
|
|
7cad893111 | ||
|
|
2306c12670 | ||
|
|
4b7d52f7a7 | ||
|
|
a261f8d036 | ||
|
|
66e7274286 | ||
|
|
7ea5ae0dc5 | ||
|
|
9adb18f5d2 | ||
|
|
0e4835a553 | ||
|
|
556caf5f2e | ||
|
|
ab557ef568 | ||
|
|
a627d40758 | ||
|
|
aa037dac34 | ||
|
|
bb114108ae | ||
|
|
40c61b9fb1 | ||
|
|
b3a2f2003b | ||
|
|
20927967f9 | ||
|
|
8600da50ff | ||
|
|
bb890dd0d1 | ||
|
|
3cf666c91c | ||
|
|
b262e03ccf | ||
|
|
a91c8a9a52 | ||
|
|
f719f527f4 | ||
|
|
e8746325c9 | ||
|
|
da9233dd37 | ||
|
|
08d078d3c5 | ||
|
|
13f7f47252 | ||
|
|
fbe2328abc | ||
|
|
87fe99d8fc | ||
|
|
f612135854 | ||
|
|
0c91e5ea8d | ||
|
|
1440650582 | ||
|
|
ac8536309b | ||
|
|
b27dd64a06 | ||
|
|
d772050476 | ||
|
|
a6365729bb | ||
|
|
f76611d359 | ||
|
|
51fb14306f | ||
|
|
c893147011 | ||
|
|
b1113cd461 | ||
|
|
6dad00cb02 | ||
|
|
ee588f04cc | ||
|
|
60aff7a1ad | ||
|
|
1a163d7749 | ||
|
|
b160c572c1 | ||
|
|
d9428df46f | ||
|
|
b2d61d9a9e | ||
|
|
60dae999c2 | ||
|
|
2c31df783d | ||
|
|
cf3329bfb1 | ||
|
|
1b9a1a7bff | ||
|
|
fbe313babb | ||
|
|
4f229b20dd | ||
|
|
c934f0f6b5 | ||
|
|
1c2178cff5 | ||
|
|
f67f00eb0e | ||
|
|
ebecf5a4cb | ||
|
|
f9f1e674f2 | ||
|
|
363315a84e | ||
|
|
713d908b72 | ||
|
|
67317e5330 | ||
|
|
18ad3d959e | ||
|
|
0b345adb68 | ||
|
|
5c45d6acce | ||
|
|
133c509891 | ||
|
|
05a62734ff | ||
|
|
202e62afd1 | ||
|
|
b28fc76be2 | ||
|
|
5322ffef33 | ||
|
|
7c673db440 | ||
|
|
4cc5898b01 | ||
|
|
9b77648006 | ||
|
|
85e589b749 | ||
|
|
ace9c0e466 | ||
|
|
3dfa6e52f7 | ||
|
|
6d64d2e559 | ||
|
|
1b3d508646 | ||
|
|
2326effc92 | ||
|
|
54b37fbd15 | ||
|
|
7f0e5d6088 | ||
|
|
d49359afb0 | ||
|
|
58b7235e7f | ||
|
|
dd05d83b86 | ||
|
|
f4e8a362b7 | ||
|
|
152683d8fc | ||
|
|
27f08b9248 | ||
|
|
1a22004738 | ||
|
|
def2c5f2f6 | ||
|
|
e15cf8bac0 | ||
|
|
5661879251 | ||
|
|
91ac06c23a | ||
|
|
9a35a75ae3 | ||
|
|
6d4f34711c | ||
|
|
27f4c139a7 | ||
|
|
846cfab67c | ||
|
|
61cbe9aa64 | ||
|
|
c71f927843 | ||
|
|
7437ee7b9f | ||
|
|
a808e432ba | ||
|
|
bc4cd3c716 | ||
|
|
e572347b2f | ||
|
|
6722d3c544 | ||
|
|
03a1420a71 | ||
|
|
7bddbb83b4 | ||
|
|
a7adfa8482 | ||
|
|
45b99efaab | ||
|
|
656bc99a3e | ||
|
|
04d62928b5 | ||
|
|
2500eceedc | ||
|
|
abe01808f5 | ||
|
|
d9defebf03 | ||
|
|
6f2f3c11b4 | ||
|
|
b56dab6734 | ||
|
|
8443fdd96e | ||
|
|
431aac1d4d | ||
|
|
d60c6f2177 | ||
|
|
50e2cdab2c | ||
|
|
154922dba3 | ||
|
|
c0024742b2 | ||
|
|
f28018677b | ||
|
|
aa96cc342e | ||
|
|
36e65d8849 | ||
|
|
691f9596d1 | ||
|
|
f053ce605d | ||
|
|
9db666252b | ||
|
|
677bed34ba | ||
|
|
bba64ec8cf | ||
|
|
323898afb8 | ||
|
|
6a712d0424 | ||
|
|
f627c10c81 | ||
|
|
6fe467e1c5 | ||
|
|
c4f9e46e47 | ||
|
|
a9497b25b8 | ||
|
|
641528df7f | ||
|
|
406d53d7a9 | ||
|
|
71f84b05bc | ||
|
|
6085587437 | ||
|
|
7e0d81aaf3 | ||
|
|
5b34044fae | ||
|
|
6aa5df3e83 | ||
|
|
3f85ad41c7 | ||
|
|
4564105d70 | ||
|
|
9b05a06b50 | ||
|
|
f539fe27ee | ||
|
|
fa0f8f2b74 | ||
|
|
f78f0efd9f | ||
|
|
df97775619 | ||
|
|
87918c26d4 | ||
|
|
a17c958312 | ||
|
|
d1e19460f7 | ||
|
|
9a09592520 | ||
|
|
452a43cfc9 | ||
|
|
ed898d3357 | ||
|
|
d53d8f4fc7 | ||
|
|
95beb6ec98 | ||
|
|
71908bf08f | ||
|
|
90e814955b | ||
|
|
7236f71f61 | ||
|
|
a0d3cfb0a5 | ||
|
|
1fa5023227 | ||
|
|
d7a51c2dfb | ||
|
|
b5ab50d450 | ||
|
|
773f50b55e | ||
|
|
bae8040585 | ||
|
|
28b30c8196 | ||
|
|
f975160722 | ||
|
|
6cf58bf5de | ||
|
|
c50318d5cf | ||
|
|
c9a1aad537 | ||
|
|
21b60ac3f1 | ||
|
|
79fb563e5b | ||
|
|
106597cdc1 | ||
|
|
cb563f77a6 | ||
|
|
056e8ad486 | ||
|
|
7037da5301 | ||
|
|
29ad9f24ed | ||
|
|
2cc2be2904 | ||
|
|
3b36b2ebcb | ||
|
|
24b37408f4 | ||
|
|
98706209c2 | ||
|
|
6efb961cef | ||
|
|
f04dc5d2b2 | ||
|
|
c160d23648 | ||
|
|
2c0b33af2b | ||
|
|
3cb907b335 | ||
|
|
85fcba7f70 | ||
|
|
84090fa2c8 | ||
|
|
7ef84810e1 | ||
|
|
02ba1153f2 | ||
|
|
60b932c5fe | ||
|
|
0fb49fc8d2 | ||
|
|
187e4743e7 | ||
|
|
758c3e42be | ||
|
|
f82296edb5 | ||
|
|
f8d72f899a | ||
|
|
09ed3147b7 | ||
|
|
33ca9bb816 | ||
|
|
13319a5672 | ||
|
|
8d0292bd09 | ||
|
|
331d5f10a8 | ||
|
|
e12ac7f710 | ||
|
|
f709cb6740 | ||
|
|
de9fcdd499 | ||
|
|
f2abbd8476 | ||
|
|
9329d75d6f | ||
|
|
b30a815b09 | ||
|
|
7007e8b335 | ||
|
|
5ea415031f | ||
|
|
c1cf8d2413 | ||
|
|
142bd3f47d | ||
|
|
92aee5da44 | ||
|
|
e2577ff7c2 | ||
|
|
9fb4e5dbd6 | ||
|
|
e5a59b79c4 | ||
|
|
db1b1d6f54 | ||
|
|
4268567e3c | ||
|
|
c8f8e28b29 | ||
|
|
1025c055d6 | ||
|
|
d638069dbf | ||
|
|
97f755b7d2 | ||
|
|
6f413ae8eb | ||
|
|
40445c4fd0 | ||
|
|
9b37579f45 | ||
|
|
9f9c5ca288 | ||
|
|
5c53575529 | ||
|
|
5d8035fe84 | ||
|
|
5fa90631a3 | ||
|
|
fb745e13e9 | ||
|
|
177d00d7ad | ||
|
|
79087b3f45 | ||
|
|
c64ae6cefc | ||
|
|
ed845d252d | ||
|
|
a392c38142 | ||
|
|
9af11e29f7 | ||
|
|
60861ec3f8 | ||
|
|
2e99d49588 | ||
|
|
f4455d5079 | ||
|
|
d546701ff2 | ||
|
|
6584e0275d | ||
|
|
20f1799649 | ||
|
|
371c47e0e3 | ||
|
|
cd8477c0b6 | ||
|
|
2aba039789 | ||
|
|
3d0baef5fb | ||
|
|
d1e8739fc3 | ||
|
|
b8edd21e25 | ||
|
|
e0faddc87b | ||
|
|
af1fcfd83e | ||
|
|
6bd7c9b3e0 | ||
|
|
edad18be57 | ||
|
|
77851f9099 | ||
|
|
e46a41a801 | ||
|
|
c8fadae9fa | ||
|
|
83dffb81ec | ||
|
|
f51d407b00 | ||
|
|
c209bf29f7 | ||
|
|
d358eeb93c | ||
|
|
d1a42f8b35 | ||
|
|
b3dc668078 | ||
|
|
d9224bdc4d | ||
|
|
032fa957f2 | ||
|
|
df4573b17d | ||
|
|
1816110e8b | ||
|
|
6b2e8297cf | ||
|
|
aed5fa21dd | ||
|
|
a6b827b79f | ||
|
|
283a6e680a | ||
|
|
bd3614b670 | ||
|
|
26652102a8 | ||
|
|
d1c5238b22 | ||
|
|
063cdbbbd4 | ||
|
|
b82f7d646c | ||
|
|
c1d7ac4835 | ||
|
|
4afe35a3ef | ||
|
|
a3769f695d | ||
|
|
1005aceb22 | ||
|
|
3a90a21610 | ||
|
|
ab5182da96 | ||
|
|
5b3736f0b7 | ||
|
|
60a697e6c7 | ||
|
|
162b9b2498 | ||
|
|
2c62d3da30 | ||
|
|
e05bd1f660 | ||
|
|
70d4e5e6cf | ||
|
|
fdf2976375 | ||
|
|
058a80430a | ||
|
|
dd77c40099 | ||
|
|
e5395735fb | ||
|
|
7487c96bf8 | ||
|
|
aea59ec1ab | ||
|
|
7069e0eef2 | ||
|
|
de520fc622 | ||
|
|
81b6907127 | ||
|
|
0b08351033 | ||
|
|
c0d45daa7f | ||
|
|
f3e7b8ac13 | ||
|
|
98b4e0ab02 | ||
|
|
f196aabfa6 | ||
|
|
514aab3433 | ||
|
|
6cfe2ec86c | ||
|
|
7690537f01 | ||
|
|
7df316a339 | ||
|
|
998fdba548 | ||
|
|
afd4500f54 | ||
|
|
b592f10033 | ||
|
|
d098cec94a | ||
|
|
8dbf12e222 | ||
|
|
d58c881de0 | ||
|
|
3a1db66ef3 | ||
|
|
345371b92f | ||
|
|
ba24c14426 | ||
|
|
c42e5fd243 | ||
|
|
a56fc05175 | ||
|
|
3dc11d4de5 | ||
|
|
6e8d19ed26 | ||
|
|
c9e29953a6 | ||
|
|
7881e1ad6c | ||
|
|
f9575b97bf | ||
|
|
af34c00b91 | ||
|
|
8b9c98753d | ||
|
|
72003318ac | ||
|
|
182d07395e | ||
|
|
4615ef72e8 | ||
|
|
f7d2bbd939 | ||
|
|
e3492c2a28 | ||
|
|
3baf9dbae4 | ||
|
|
6446079dd1 | ||
|
|
655c8e7d5a | ||
|
|
9d97a8b47f | ||
|
|
76af2809b3 | ||
|
|
698b66c06c | ||
|
|
6604a1b9f4 | ||
|
|
1a1c39cd3b | ||
|
|
ce87186dc2 | ||
|
|
1a8cd6167b | ||
|
|
e253dbb57e | ||
|
|
08d052a062 | ||
|
|
ce327f26e3 | ||
|
|
8b6f590d05 | ||
|
|
cd0be835fe | ||
|
|
322d7a4c8e | ||
|
|
77bef28167 | ||
|
|
e7fbf6af2a | ||
|
|
66a3aa0e18 | ||
|
|
688301f444 | ||
|
|
89af28ed99 | ||
|
|
5fc38cad21 | ||
|
|
7520ae4315 | ||
|
|
31d94e797d | ||
|
|
0ac1240c5f | ||
|
|
584c757309 | ||
|
|
4f676e260a | ||
|
|
852798a51d | ||
|
|
6f6e1e5e2e | ||
|
|
c60383becb | ||
|
|
9302738ddc | ||
|
|
e5315957fa | ||
|
|
5b191ef2e9 | ||
|
|
0d29952a29 | ||
|
|
ca5001df56 | ||
|
|
5980901691 | ||
|
|
98bec09486 | ||
|
|
9d886eedd9 | ||
|
|
74c73cc860 | ||
|
|
26e171fa6d | ||
|
|
3513e058ee | ||
|
|
60c410bf24 | ||
|
|
2dc500a3e3 | ||
|
|
701f3dd004 | ||
|
|
f19af5208a | ||
|
|
7ec123afdd | ||
|
|
46de2a7d0a | ||
|
|
25a9fd2462 | ||
|
|
0798dc357b | ||
|
|
124ff7412b | ||
|
|
e16c8f5dab | ||
|
|
ce5fb04ef1 | ||
|
|
8409874bcf | ||
|
|
4e121862da | ||
|
|
fcd068e552 | ||
|
|
cd44bd5351 | ||
|
|
c65e0ac7ce | ||
|
|
7a7e91ee9e | ||
|
|
abd962daa7 | ||
|
|
3226cc992f | ||
|
|
adcd15f789 | ||
|
|
3df39b6d18 | ||
|
|
698145d40d | ||
|
|
c78717106f | ||
|
|
4cb348e5bc | ||
|
|
b05eb9b92a | ||
|
|
fe942ef423 | ||
|
|
34122e3b5a | ||
|
|
d48e5949c9 | ||
|
|
2b17a7e785 | ||
|
|
6e595f4baa | ||
|
|
37a01ce7d3 | ||
|
|
b85c14bc74 | ||
|
|
ef034abbcd | ||
|
|
1ddb85ed76 | ||
|
|
0cbf822b14 | ||
|
|
510f337da2 | ||
|
|
53e929c4bc | ||
|
|
9d9868147e | ||
|
|
994be1be1e | ||
|
|
8b4240cb71 | ||
|
|
fce779f76c | ||
|
|
0a32ffd8fc | ||
|
|
def0c9a2c3 | ||
|
|
9b89cbba41 | ||
|
|
069a82eb4f | ||
|
|
2fa16f5738 | ||
|
|
eb0669ba97 | ||
|
|
fef03bdf1b | ||
|
|
5bbabf5c9a | ||
|
|
ff42ae0276 | ||
|
|
37e6ff6374 | ||
|
|
5c86f8ec97 | ||
|
|
9c80571fdb | ||
|
|
c64b73648b | ||
|
|
b7a2ec21c6 | ||
|
|
032cc5948d | ||
|
|
61ccf241e1 | ||
|
|
b7dbc380ab | ||
|
|
f04292abdf | ||
|
|
66ff3b3ff5 | ||
|
|
2df2049806 | ||
|
|
8dbd85b3b8 | ||
|
|
46ee64bdcc | ||
|
|
01345b4b2d | ||
|
|
0bef4f6581 | ||
|
|
2971a81712 | ||
|
|
bf104f6aff | ||
|
|
fd2c2f7c83 | ||
|
|
d3c26a9c3c | ||
|
|
ca57080def | ||
|
|
bb0004fdcc | ||
|
|
d0c67078bb | ||
|
|
cbadf98906 | ||
|
|
6660d94a91 | ||
|
|
92ddeb3cb6 | ||
|
|
b13d357c25 | ||
|
|
a9ea43e527 | ||
|
|
e8eca338ca | ||
|
|
ab1af30daa | ||
|
|
a3a70da91b | ||
|
|
cd8b494be4 | ||
|
|
6de3e3c199 | ||
|
|
cf4d8e4e3d | ||
|
|
0a69ca5de7 | ||
|
|
2fc81147fa | ||
|
|
482d265222 | ||
|
|
b706a3912a | ||
|
|
65831f917f | ||
|
|
a43565bc9f | ||
|
|
26be1d277c | ||
|
|
0a0a794fdf | ||
|
|
9140c35746 | ||
|
|
8a143006f0 | ||
|
|
4d2c0f0ca2 | ||
|
|
f144dcb5a3 | ||
|
|
72b32428c5 | ||
|
|
5fde1d3e4e | ||
|
|
18b66b8ffe | ||
|
|
3f89955939 | ||
|
|
8699cc11b0 | ||
|
|
a2818a9526 | ||
|
|
daa0ce54bd | ||
|
|
576a0dc3d4 | ||
|
|
21fb022a8b | ||
|
|
a74e78a562 | ||
|
|
1968dc715c | ||
|
|
7f1013281e | ||
|
|
3aa70f1520 | ||
|
|
595c550fae | ||
|
|
b34a2e687d | ||
|
|
8c56812326 | ||
|
|
270847c7bc | ||
|
|
60551e60e7 | ||
|
|
73d318c611 | ||
|
|
a5c0b138a3 | ||
|
|
97f09b3352 | ||
|
|
73f21d1dad | ||
|
|
8d1631080a | ||
|
|
5628e28bbb | ||
|
|
a7cb4a3db2 | ||
|
|
8c0e66a8d8 | ||
|
|
f6a510cf18 | ||
|
|
91a01c8f0d | ||
|
|
f86d45d969 | ||
|
|
5440d6ccb7 | ||
|
|
106fc6223c | ||
|
|
f16520821b | ||
|
|
c95ef917e9 | ||
|
|
f71093f7b1 | ||
|
|
faba49aa9b | ||
|
|
40623e7a9a | ||
|
|
d24c451d47 | ||
|
|
7b4842fbca | ||
|
|
db751ce8fe | ||
|
|
c033a896fa | ||
|
|
baface0942 | ||
|
|
7173aeb766 | ||
|
|
11106ed005 | ||
|
|
7ec335ddb0 | ||
|
|
cc404cd7f0 | ||
|
|
9a421852ed | ||
|
|
f096b30781 | ||
|
|
a9ca071a88 | ||
|
|
b02af4908d | ||
|
|
a5fc876b99 | ||
|
|
70965a8fc1 | ||
|
|
fa0827f177 | ||
|
|
97fc96cbf1 | ||
|
|
3a419e9bec | ||
|
|
cc8d69912e | ||
|
|
97a31baea4 | ||
|
|
23354027d1 | ||
|
|
9fa0ebf8f1 | ||
|
|
28ecdbb41f | ||
|
|
8c80816232 | ||
|
|
edf0af3066 | ||
|
|
b37d69267c | ||
|
|
b1b3a736fd | ||
|
|
cc2bea75ae | ||
|
|
0e9b6693e6 | ||
|
|
8af4f0f2eb | ||
|
|
3f9a974934 | ||
|
|
78c1d47fed | ||
|
|
4c29c2b985 | ||
|
|
122d2cd390 | ||
|
|
c0c331a13e | ||
|
|
d73c7a2650 | ||
|
|
862fddfec7 | ||
|
|
24043e3212 | ||
|
|
c3f78dc5d0 | ||
|
|
7624870372 | ||
|
|
684c7dab18 | ||
|
|
4b577b6b22 | ||
|
|
4fe1abad8c | ||
|
|
b7c313058d | ||
|
|
4905b0845a | ||
|
|
fb67735977 | ||
|
|
cc14b39c93 | ||
|
|
f1930d9ddd | ||
|
|
c21c67009f | ||
|
|
2de15533a1 | ||
|
|
e4570a946c | ||
|
|
53545e9ca2 | ||
|
|
2fddb543d1 | ||
|
|
4c01d1e65a | ||
|
|
5d087813cd | ||
|
|
aace6da805 | ||
|
|
4d8ad9ed82 | ||
|
|
ff2e2d934c | ||
|
|
ef52518a95 | ||
|
|
82f14436e0 | ||
|
|
6f324612a1 | ||
|
|
70a450485b | ||
|
|
953ea517f8 | ||
|
|
6439122928 | ||
|
|
b5b384c566 | ||
|
|
d28b852834 | ||
|
|
c82d54c0b9 | ||
|
|
aee13ac6e9 | ||
|
|
8a65cf3329 | ||
|
|
b995b07979 | ||
|
|
aba8a41815 | ||
|
|
c5c2679205 | ||
|
|
b7b145f542 | ||
|
|
c2c97a3aa4 | ||
|
|
8809bcc6b5 | ||
|
|
8883ecfaaf | ||
|
|
e4734d7a20 | ||
|
|
f1663aec64 | ||
|
|
3a72f21bce | ||
|
|
25c0997059 | ||
|
|
9aeae4bd3a | ||
|
|
be1aa8ed13 | ||
|
|
16bc0059c3 | ||
|
|
001d626e79 | ||
|
|
48a33f7396 | ||
|
|
4a5f527816 | ||
|
|
13767b85cc | ||
|
|
182f18bfcc | ||
|
|
e75e68ae3c | ||
|
|
231180e436 | ||
|
|
bf72ec500c | ||
|
|
8b202d1a4c | ||
|
|
22713bb18c | ||
|
|
c3bb062eec | ||
|
|
b942377c6a | ||
|
|
3be83165db | ||
|
|
214157a61c | ||
|
|
028e2b2927 | ||
|
|
7cdb6f49a6 | ||
|
|
344f48c3e9 | ||
|
|
d1f3b2c693 | ||
|
|
836fea05f0 | ||
|
|
9518bdab16 | ||
|
|
8f5ca3ceb1 | ||
|
|
1883278c65 | ||
|
|
03eb3d47f8 | ||
|
|
cb6f2a2121 | ||
|
|
b3ab5ab02e | ||
|
|
f6fd365262 | ||
|
|
f57b84fb51 | ||
|
|
1ad11b35be | ||
|
|
e6e918143c | ||
|
|
d3d814dd2d | ||
|
|
cd42416fb1 | ||
|
|
4839aeecb7 | ||
|
|
b62f123945 | ||
|
|
06f0dca043 | ||
|
|
fdce7cd76c | ||
|
|
d212a7ef52 | ||
|
|
b2661ccb4d | ||
|
|
234df03f68 | ||
|
|
841f0c90f8 | ||
|
|
c9a8285f69 | ||
|
|
db135a7ce4 | ||
|
|
bd6b9f9efd | ||
|
|
d04b3b024c | ||
|
|
e14b93d128 | ||
|
|
ec0771e0ca | ||
|
|
98b09ba42b | ||
|
|
a69ae58205 | ||
|
|
a4a2b0eb35 | ||
|
|
d0cf8c7fff | ||
|
|
64e2e50b2b | ||
|
|
215d6b12ed | ||
|
|
91eceb09cb | ||
|
|
c4222feb3a | ||
|
|
29b424625a | ||
|
|
b26177b61f | ||
|
|
5eac350078 | ||
|
|
b8a305d5bb | ||
|
|
09ab69d6c1 | ||
|
|
c70d8d0d40 | ||
|
|
10714a8364 | ||
|
|
144d6ed231 | ||
|
|
6796b6761b | ||
|
|
19a0042886 | ||
|
|
18234d85ff | ||
|
|
0f9b6f6318 | ||
|
|
64c10cf2d9 | ||
|
|
d097ddbf2f | ||
|
|
fec1ac1830 | ||
|
|
b25e09a122 | ||
|
|
d171543b59 | ||
|
|
0e6b77651e | ||
|
|
1a3ae53788 | ||
|
|
7291038dd0 | ||
|
|
ce26223606 | ||
|
|
26bb2c7e3c | ||
|
|
fe9e1053e6 | ||
|
|
35f9593885 | ||
|
|
a0a935092f | ||
|
|
fd7fb9c6fa | ||
|
|
185c0f4ec5 | ||
|
|
5a1dc4be2d | ||
|
|
e62c159d66 | ||
|
|
9b78254258 | ||
|
|
77a6d4918c | ||
|
|
179a5d1a8c | ||
|
|
3b0add8d15 | ||
|
|
bb0e9d0f54 | ||
|
|
cd4d7b3d7e | ||
|
|
39e4de4954 | ||
|
|
7aceda4c67 | ||
|
|
c6aff1ea66 | ||
|
|
9d03c579d0 | ||
|
|
8705be106d | ||
|
|
f38af2ed47 | ||
|
|
b58787ef68 | ||
|
|
06fc400d41 | ||
|
|
2071e29acb | ||
|
|
cbcee194ee | ||
|
|
82b7db5819 | ||
|
|
85283d0841 | ||
|
|
aff62c695b | ||
|
|
203883f072 | ||
|
|
41e4c622fc | ||
|
|
4559f9129e | ||
|
|
66b2b5a80a | ||
|
|
693cc8b25a | ||
|
|
38b7b40049 | ||
|
|
c3a81203c0 | ||
|
|
3079423038 | ||
|
|
3590a44a7f | ||
|
|
95932a967d | ||
|
|
8dabedc82e | ||
|
|
917c3678ea | ||
|
|
4a90a75bdb | ||
|
|
bca7ef42a9 | ||
|
|
c28b9f19c0 | ||
|
|
2b396d44a0 | ||
|
|
bce5412cec | ||
|
|
e2859294b4 | ||
|
|
6555a0a14c | ||
|
|
e317d9addf | ||
|
|
03465d4ac5 | ||
|
|
5e0c87ad03 | ||
|
|
6fe07c2988 | ||
|
|
afe0723131 | ||
|
|
ba42324717 | ||
|
|
b0eafbc100 | ||
|
|
957ccfdaba | ||
|
|
30ef619211 | ||
|
|
78bc7f720f | ||
|
|
a370aaf2e1 | ||
|
|
f0846ebca4 | ||
|
|
81c60fc961 | ||
|
|
ebf2296c18 | ||
|
|
137438393d | ||
|
|
9c95f04cf8 | ||
|
|
ec1b12fb8b | ||
|
|
b6a5197edf | ||
|
|
133b833765 | ||
|
|
45a00c28bd | ||
|
|
f0b29e119c | ||
|
|
39ebfed7df | ||
|
|
07fd082389 | ||
|
|
f66b544ef0 | ||
|
|
832448f674 | ||
|
|
c2363829be | ||
|
|
34773b329a | ||
|
|
bcd480e286 | ||
|
|
2b1a70ea09 | ||
|
|
8d6f13fcea | ||
|
|
95e67b1f69 | ||
|
|
ee20847587 | ||
|
|
648dbbe680 | ||
|
|
d2513c7c92 | ||
|
|
14b1dbb9be | ||
|
|
53b0457f39 | ||
|
|
13a60dc90a | ||
|
|
32a16a831b | ||
|
|
3acbc38c33 | ||
|
|
2ea3d76a42 | ||
|
|
4703746f05 | ||
|
|
ff5f8a9f4a | ||
|
|
b519f1a633 | ||
|
|
78c6817fd8 | ||
|
|
c8ee69d8be | ||
|
|
c47bab30a3 | ||
|
|
ebc3209fe0 | ||
|
|
cecc5b9e55 | ||
|
|
a01e2b3c87 | ||
|
|
383351c7a4 | ||
|
|
f6b2b3c998 | ||
|
|
2328a96abb | ||
|
|
6c231a906a | ||
|
|
b112ffed9c | ||
|
|
35179a15ec | ||
|
|
7ab4b29cd7 | ||
|
|
0ea32ecec4 | ||
|
|
e3051d0209 | ||
|
|
7f9f297b86 | ||
|
|
7807bb447b | ||
|
|
0518fc668b | ||
|
|
030fc9c43e | ||
|
|
82cbdf6b8e | ||
|
|
1aaa375599 | ||
|
|
25223a8e62 | ||
|
|
43768c0ead | ||
|
|
7bd5bccde5 | ||
|
|
e023132805 | ||
|
|
0251b1e95c | ||
|
|
faee68a652 | ||
|
|
61c5f1a883 | ||
|
|
b49205d089 | ||
|
|
833a9075f2 | ||
|
|
7e0bbd83cd | ||
|
|
6584cefd59 | ||
|
|
0cd03c8ac6 | ||
|
|
eaeff9ebd7 | ||
|
|
4f3ab17fd2 | ||
|
|
0ced3d9999 | ||
|
|
dcba7fad19 | ||
|
|
65a76bc8a4 | ||
|
|
bb18d9fd4c | ||
|
|
1052e3f592 | ||
|
|
1bf7055a01 | ||
|
|
fd8099df3a | ||
|
|
4c4bc67fb4 | ||
|
|
21eb1b95fb | ||
|
|
a5e3743352 | ||
|
|
2b9039ce10 | ||
|
|
1203747bbe | ||
|
|
c8f86b223b | ||
|
|
6b4b21ac71 | ||
|
|
a3e566e367 | ||
|
|
87f636ebc1 | ||
|
|
b7e883dc4c | ||
|
|
62b87af5f9 | ||
|
|
2a790ce78c | ||
|
|
f592618075 | ||
|
|
0c89f24d60 | ||
|
|
362a8f742b | ||
|
|
3d0ff6c93e | ||
|
|
7c0b874fa3 | ||
|
|
8d370ae599 | ||
|
|
bcaa044f65 | ||
|
|
4304fa2b2b | ||
|
|
15165102a9 | ||
|
|
4c63cb8b23 | ||
|
|
8727aa2eed | ||
|
|
1d072d5f7a | ||
|
|
bc72343c5f | ||
|
|
995e39a8bf | ||
|
|
f73644bd7c | ||
|
|
bc0e502c83 | ||
|
|
583839e9ea | ||
|
|
11f3d62d8a | ||
|
|
5e171bcf70 | ||
|
|
551793b4a2 | ||
|
|
a4a1699277 | ||
|
|
8846d76753 | ||
|
|
4451c78621 | ||
|
|
78a8a627a0 | ||
|
|
46941e143e | ||
|
|
9123f760fd | ||
|
|
9d2c3dc377 | ||
|
|
8575d9d4b0 | ||
|
|
77b0cac56f | ||
|
|
a93bca4e42 | ||
|
|
8dcbdb80b6 | ||
|
|
4aec05afbf | ||
|
|
89e1a442d3 | ||
|
|
cfcf537db7 | ||
|
|
a1e3999bcc | ||
|
|
927d6216e1 | ||
|
|
4a78827b54 | ||
|
|
bd93125257 | ||
|
|
5ba4a9675a | ||
|
|
92339aceb9 | ||
|
|
a17a4bf9f3 | ||
|
|
6275fee7d1 | ||
|
|
2982675e55 | ||
|
|
4d7d5bacd9 | ||
|
|
c93f8c293e | ||
|
|
759f435fb9 | ||
|
|
7fe0ef199e | ||
|
|
8072792caa | ||
|
|
8a334cec2e | ||
|
|
7b6db54c29 | ||
|
|
bcca57a30b | ||
|
|
7d2e61b7ee | ||
|
|
77323a8468 | ||
|
|
9be4ac258a | ||
|
|
c4f5dd721c | ||
|
|
a71bc3256a | ||
|
|
1580ab6874 | ||
|
|
cf046a90b9 | ||
|
|
b03677c8bf | ||
|
|
04ec0a4d03 | ||
|
|
75f34f9c91 | ||
|
|
9fc059df81 | ||
|
|
a26d9a7dfa | ||
|
|
807b85ba15 | ||
|
|
15c2125a0f | ||
|
|
b25a71e200 | ||
|
|
c3e808b431 | ||
|
|
e123160fb0 | ||
|
|
d7eedf0b29 | ||
|
|
790cda1af9 | ||
|
|
28fe7d5579 | ||
|
|
55e8b6a87b | ||
|
|
df2d0580e9 | ||
|
|
c0e631b1ea | ||
|
|
a7c3c4416a | ||
|
|
b0c2aec1c0 | ||
|
|
382aa9b556 | ||
|
|
67ecca87bb | ||
|
|
da131af4cc | ||
|
|
cb98365b9b | ||
|
|
539f24adc7 | ||
|
|
12cfe2bca9 | ||
|
|
80e43f1501 | ||
|
|
eeb9c91502 | ||
|
|
c7abd509d0 | ||
|
|
fa851f727e | ||
|
|
d4874d52da | ||
|
|
ef936f8ab2 | ||
|
|
0ec582ab56 | ||
|
|
46dc2d6907 | ||
|
|
024e162a59 | ||
|
|
b90f126f1c | ||
|
|
1e3cdfd071 | ||
|
|
92b5782c0d | ||
|
|
4341793ee2 | ||
|
|
0304feacbb | ||
|
|
d96a4cb74a | ||
|
|
99a0ca6231 | ||
|
|
672c4d4509 | ||
|
|
30b2fe17c8 | ||
|
|
27d8b39d1b | ||
|
|
91d992734a | ||
|
|
cfb383e739 | ||
|
|
c7f9a816d4 | ||
|
|
a8482342e5 | ||
|
|
b513f5d715 | ||
|
|
a12fdb3141 | ||
|
|
a57b9cb1da | ||
|
|
c5a5ee63e2 | ||
|
|
756eb4105c | ||
|
|
9b72eefa4c | ||
|
|
36b8029293 | ||
|
|
a49e17641e | ||
|
|
5a6c5d7f55 | ||
|
|
4a52b9dc76 | ||
|
|
a9c46eb554 | ||
|
|
02dbe54c0d | ||
|
|
021d1cf3d4 | ||
|
|
a8f704e11a | ||
|
|
79cd6bff52 | ||
|
|
c0b9a84730 | ||
|
|
7dc4b561d5 | ||
|
|
985661c739 | ||
|
|
60ddc452d3 | ||
|
|
478efe7481 | ||
|
|
837b67f9ec | ||
|
|
b12b1b0fd8 | ||
|
|
73dfc6a97b | ||
|
|
6024545487 | ||
|
|
8c8a8786b5 | ||
|
|
d74aece5af | ||
|
|
f342b8f06c | ||
|
|
3e409e4871 | ||
|
|
afaa654899 | ||
|
|
25b490efd6 | ||
|
|
f9d5aa3dcb | ||
|
|
a0b95ae8fe | ||
|
|
ab29a050eb | ||
|
|
c33d3f21d1 | ||
|
|
28d5d47f2f | ||
|
|
694fbc6383 | ||
|
|
5f9f930135 | ||
|
|
ff8619beb3 | ||
|
|
498ed06aa1 | ||
|
|
611d8e3904 | ||
|
|
f51ae01d80 | ||
|
|
9c99057f83 | ||
|
|
f8efc417a1 | ||
|
|
fa68327632 | ||
|
|
daf5e8dec2 | ||
|
|
12ae2dca53 | ||
|
|
08b9517502 | ||
|
|
2ac2990e96 | ||
|
|
e7d0f2afa0 | ||
|
|
d6580270ad | ||
|
|
6e3cec28fc | ||
|
|
c1b4abfdf5 | ||
|
|
39b8c65694 | ||
|
|
55a545fc52 | ||
|
|
b8eba56147 | ||
|
|
10d5e8e5f6 | ||
|
|
5cbf372cac | ||
|
|
5df9049d06 | ||
|
|
d46561cd6b | ||
|
|
1f020b6a91 | ||
|
|
14ae816e4b | ||
|
|
16416e44e5 | ||
|
|
47e53be8a3 | ||
|
|
ef5c4d9598 | ||
|
|
7259124fe2 | ||
|
|
b6d6b1d4a4 | ||
|
|
11c13fcf56 | ||
|
|
ae7ef1243d | ||
|
|
697e3b44a9 | ||
|
|
9a4d892843 | ||
|
|
f1239e3f79 | ||
|
|
bd6e87975b | ||
|
|
da65fbe16c | ||
|
|
a6631a4f52 | ||
|
|
6ff4f34ea1 | ||
|
|
7ef560bf29 | ||
|
|
c793ed4f4d | ||
|
|
4b8124de18 | ||
|
|
e4c21a8200 | ||
|
|
d7180f9a7b | ||
|
|
acedb5b4d7 | ||
|
|
2e257637d0 | ||
|
|
b1782a1c4e | ||
|
|
4fdc5bc10c | ||
|
|
b2332346b0 | ||
|
|
c21fadfcbe | ||
|
|
fc2a5878b2 | ||
|
|
17ec076943 | ||
|
|
81dbdbc713 | ||
|
|
dafd939478 | ||
|
|
55a3a4f35d | ||
|
|
3987c653e7 | ||
|
|
84f19f4353 | ||
|
|
8365e2492e | ||
|
|
23d3cc6ef4 | ||
|
|
5cc821a1cb | ||
|
|
c4648b083b | ||
|
|
808c7b19d5 | ||
|
|
9ff7c61384 | ||
|
|
7cc8e5e508 | ||
|
|
7181d48f9a | ||
|
|
ba73f80669 | ||
|
|
9d8ab7d797 | ||
|
|
808acb1820 | ||
|
|
fc082d8752 | ||
|
|
c1dd21f016 | ||
|
|
4070d00536 | ||
|
|
307f07b3d9 | ||
|
|
d55dcb6cf6 | ||
|
|
04444a91b6 | ||
|
|
acc0c9d7f5 | ||
|
|
b36907b631 | ||
|
|
600c054cdb | ||
|
|
6096346361 | ||
|
|
6065a9bc2a | ||
|
|
28a0cbb434 | ||
|
|
ab5b7af17e | ||
|
|
5bc2dc615f | ||
|
|
1c88cd85a7 | ||
|
|
62d10f5721 | ||
|
|
abc9cd1707 | ||
|
|
282f25dce4 | ||
|
|
ce51cd05bb | ||
|
|
0ffe25f89e | ||
|
|
34f7b25727 | ||
|
|
0ffe24b221 | ||
|
|
6362cd404d | ||
|
|
87cf0f67a6 | ||
|
|
d3cd048aeb | ||
|
|
873f8b6c8d | ||
|
|
20d69db19e | ||
|
|
c2ee9a00e1 | ||
|
|
24504c30f6 | ||
|
|
6bd6c87cd3 | ||
|
|
40e3d35ea3 | ||
|
|
2ff09311e0 | ||
|
|
c2d245c145 | ||
|
|
5064aea52b | ||
|
|
3c7ded623c | ||
|
|
52903545bc | ||
|
|
acfc204cad | ||
|
|
3ce0b10d25 | ||
|
|
2d69301e88 | ||
|
|
93acdb6341 | ||
|
|
5e76dbfe8b | ||
|
|
6d44f62c63 | ||
|
|
6b919bf372 | ||
|
|
794070fa81 | ||
|
|
5a0c204b43 | ||
|
|
88dd85fcc6 | ||
|
|
38e5ada380 | ||
|
|
23a9b5d209 | ||
|
|
fd002cfbf7 | ||
|
|
82068782e0 | ||
|
|
6ebd59f729 | ||
|
|
e21e734c03 | ||
|
|
6dbd115c0e | ||
|
|
30bbfdcd43 | ||
|
|
93a44d86ec | ||
|
|
19e5473291 | ||
|
|
72047ef03e | ||
|
|
1f47c8bc4a | ||
|
|
0ed9d49f33 | ||
|
|
0af6d623df | ||
|
|
9c980e4543 | ||
|
|
f59c05572a | ||
|
|
23fc7135c8 | ||
|
|
4aa2ca3096 | ||
|
|
f7d1932732 | ||
|
|
1ef6e620b4 | ||
|
|
049707d100 | ||
|
|
2647a38223 | ||
|
|
56acdd67fa | ||
|
|
04121d876f | ||
|
|
65a3e065f4 | ||
|
|
a0403c6188 | ||
|
|
520fe7bdf2 | ||
|
|
4bd0482736 | ||
|
|
25db66b850 | ||
|
|
7f079b897f | ||
|
|
0b287ca0c8 | ||
|
|
2f29d6753a | ||
|
|
27858ace60 | ||
|
|
01fba1527a | ||
|
|
1e0c0b4023 | ||
|
|
b93908a789 | ||
|
|
befa5a072c | ||
|
|
96f508e78d | ||
|
|
774201eaba | ||
|
|
b8efdaaa9e | ||
|
|
8e4587c509 | ||
|
|
18ceb1bc1c | ||
|
|
6dd905a714 | ||
|
|
1b2060a435 | ||
|
|
19d56a352c | ||
|
|
8f8d6be1c2 | ||
|
|
e019408e1d | ||
|
|
4bab10dbe3 | ||
|
|
1312d6685c | ||
|
|
2991dfa79f | ||
|
|
cfcafc823a | ||
|
|
5a748ff2d9 | ||
|
|
33777883af | ||
|
|
e0aaa40617 | ||
|
|
57314ffb6d | ||
|
|
43e6f04f96 | ||
|
|
1174356dfa | ||
|
|
dc91b51ac9 | ||
|
|
77a7c53dde | ||
|
|
12dee4cf09 | ||
|
|
75bb2ffbb9 | ||
|
|
1adad24225 | ||
|
|
f1b3bb4da2 | ||
|
|
8a191a3338 | ||
|
|
41610106ab | ||
|
|
f035c4a3bb | ||
|
|
c84a6b1b9c | ||
|
|
a2ae9333a1 | ||
|
|
120df2142a | ||
|
|
3f17be6c32 | ||
|
|
f109555953 | ||
|
|
4e72c06770 | ||
|
|
cc8edeccc2 | ||
|
|
f05d8ec049 | ||
|
|
09c8488159 | ||
|
|
71cd80f593 | ||
|
|
2d89d9e3a4 | ||
|
|
f8854e2942 | ||
|
|
841e90d34d | ||
|
|
a82e86719b | ||
|
|
014590aa82 | ||
|
|
1228e9d631 | ||
|
|
402091e0a2 | ||
|
|
634e01d85f | ||
|
|
382c9a9837 | ||
|
|
0d7a733787 | ||
|
|
b6faef51e6 | ||
|
|
85513f5d0d | ||
|
|
5869bd3fea | ||
|
|
f5dae4e3f3 | ||
|
|
b8f39c94f6 | ||
|
|
fe4a8c286c | ||
|
|
e10e494f55 | ||
|
|
7ecfbaef13 | ||
|
|
da16bfd694 | ||
|
|
2dea739cf9 | ||
|
|
2d33682705 | ||
|
|
a718e19985 | ||
|
|
7ed08b37f7 | ||
|
|
efdfd5c59e | ||
|
|
93523cb0ed | ||
|
|
6acdc377a9 | ||
|
|
d55d96f6c8 | ||
|
|
1573da7109 | ||
|
|
d735ced6e8 | ||
|
|
af566ed325 | ||
|
|
d34d0b9bea | ||
|
|
de53e898e2 | ||
|
|
282c63502d | ||
|
|
ef15674f7e | ||
|
|
70e4886ec2 | ||
|
|
ac66a4b576 | ||
|
|
4b69a94419 | ||
|
|
af590839d9 | ||
|
|
ae721659d9 | ||
|
|
f51cda11e6 | ||
|
|
0264c08211 | ||
|
|
0eb10aa694 | ||
|
|
0f3fae5540 | ||
|
|
e85c1a22ba | ||
|
|
5c753a496b | ||
|
|
64984abc73 | ||
|
|
a8c7226929 | ||
|
|
25cd24f421 | ||
|
|
9a40c7d956 | ||
|
|
151f1e3fd3 | ||
|
|
0453f1c09f | ||
|
|
a4ac8f7d68 | ||
|
|
7cf6907320 | ||
|
|
5d7092e5e8 | ||
|
|
6b534e9e27 | ||
|
|
0e603efaad | ||
|
|
ca5ce7c32a | ||
|
|
93c22f57fa | ||
|
|
2fb55fe1f8 | ||
|
|
eb8f9e5308 | ||
|
|
efbf1b32a6 | ||
|
|
d37fea69b3 | ||
|
|
619faf0ee9 | ||
|
|
a124ec6d2c | ||
|
|
ea80fb54c5 | ||
|
|
bae21fa3f9 | ||
|
|
0aacd6d07e | ||
|
|
2bd2fa11f2 | ||
|
|
8312e3d856 | ||
|
|
750b4b411a | ||
|
|
a52289a76d | ||
|
|
ced7b9640b | ||
|
|
2a0503de9a | ||
|
|
54f87fda1b | ||
|
|
72ea6ce645 | ||
|
|
44b64e90c0 | ||
|
|
88eb8c75f2 | ||
|
|
d674d7cdbf | ||
|
|
87c1708f1c | ||
|
|
d4c5d165ed | ||
|
|
c605e08e1c | ||
|
|
c88fb14442 | ||
|
|
2973f31c8f | ||
|
|
5467f21d10 | ||
|
|
6c826b6f79 | ||
|
|
3aeae22b4e | ||
|
|
fb94b0d593 | ||
|
|
79b2e3632e | ||
|
|
0365bb8105 | ||
|
|
69982f32f2 | ||
|
|
570f3987dc | ||
|
|
49af02d7d1 | ||
|
|
d94d631f55 | ||
|
|
3701ed2f04 | ||
|
|
972e690574 | ||
|
|
72ec93e781 | ||
|
|
960a520571 | ||
|
|
b27816d8a8 | ||
|
|
7415e115f6 | ||
|
|
7cbb7b5ebd | ||
|
|
447399fb12 | ||
|
|
f959d16949 | ||
|
|
d5cfafb98f | ||
|
|
e483742f91 | ||
|
|
6657eede2c | ||
|
|
7b06841b03 | ||
|
|
e12df9c36a | ||
|
|
7347110b37 | ||
|
|
31e670fc9d | ||
|
|
1cb353f0fe | ||
|
|
5b94c6728b | ||
|
|
2fb7ed4b12 | ||
|
|
118d32c61a | ||
|
|
450a5447cf | ||
|
|
efbcb3dec1 | ||
|
|
2a3f8fcaa3 | ||
|
|
fd11d7c8e4 | ||
|
|
55f471786c | ||
|
|
7e2510a1e6 | ||
|
|
2a157ec8eb | ||
|
|
3d4646b8a3 | ||
|
|
dc9119345d | ||
|
|
7ba1e92b05 | ||
|
|
8568921a21 | ||
|
|
fa49d41052 | ||
|
|
327beb9a6f | ||
|
|
6ed1ca5564 | ||
|
|
7fc3df77e7 | ||
|
|
e43bdd3098 | ||
|
|
07b50ade19 | ||
|
|
d305166394 | ||
|
|
5c167d9d75 | ||
|
|
9c0f200110 | ||
|
|
edbac2c7c9 | ||
|
|
b49c02f26e | ||
|
|
36005ecf47 | ||
|
|
b0377ef658 | ||
|
|
b98b69f1b3 | ||
|
|
2a665086ed | ||
|
|
c77492dc3e | ||
|
|
19a59d243b | ||
|
|
5ca7a32c5b | ||
|
|
541e249bbc | ||
|
|
06e15798d9 | ||
|
|
922741fa71 | ||
|
|
4067031dd1 | ||
|
|
1464e3a801 | ||
|
|
0ad75975e8 | ||
|
|
60e8454658 | ||
|
|
94e72ae454 | ||
|
|
4323130426 | ||
|
|
9c686d896b | ||
|
|
60e6b41fc8 | ||
|
|
e4fb924942 | ||
|
|
1f8515d285 | ||
|
|
544b8ba8d1 | ||
|
|
b41e36791e | ||
|
|
3c74b21e9a | ||
|
|
49dad6729e | ||
|
|
d86eebd4ad | ||
|
|
5ea7ffb101 | ||
|
|
127a95b883 | ||
|
|
fbc867997c | ||
|
|
ebf25fceb5 | ||
|
|
eea62e46c8 | ||
|
|
8b63a103c4 | ||
|
|
af30194bfc | ||
|
|
665b669141 | ||
|
|
6c1136f07e | ||
|
|
5ae4e22b64 | ||
|
|
5576ddb6bd | ||
|
|
c0e43b0b55 | ||
|
|
dda2578962 | ||
|
|
0d9569e5f5 | ||
|
|
5b276cd67e | ||
|
|
a8c2b13cd4 | ||
|
|
7070751edd | ||
|
|
f3c0851883 | ||
|
|
08223b27c4 | ||
|
|
70e61b9f1c | ||
|
|
6747645aa8 | ||
|
|
8b1861c0ec | ||
|
|
8d387bf49f | ||
|
|
f7f2974fa4 | ||
|
|
8077c2249e | ||
|
|
e018a51da3 | ||
|
|
c293543b6d | ||
|
|
866050de31 | ||
|
|
fb99a87f3a | ||
|
|
5efbd2c0d8 | ||
|
|
a5ff3d3128 | ||
|
|
0244ac115b | ||
|
|
3871d7b75c | ||
|
|
566e0db160 | ||
|
|
739e748c0e | ||
|
|
0596bcb1c7 | ||
|
|
d585f29764 | ||
|
|
cc25e2caa4 | ||
|
|
251c7ed2b2 | ||
|
|
71f4b75187 | ||
|
|
2c63774226 | ||
|
|
114013d2ea | ||
|
|
45beae1008 | ||
|
|
ed3df1c16e | ||
|
|
9dbdce4188 | ||
|
|
e190bf0901 | ||
|
|
6da141a0d9 | ||
|
|
f6942e98d1 | ||
|
|
78e26e0296 | ||
|
|
3ea7009900 | ||
|
|
49b5df7f2c | ||
|
|
ea38e16949 | ||
|
|
002e21b623 | ||
|
|
518edf86c2 | ||
|
|
d2665b288d | ||
|
|
163bbdd200 | ||
|
|
2a269d478f | ||
|
|
d42539fd26 | ||
|
|
fca096b68e | ||
|
|
3456445cd2 | ||
|
|
5bd0d9390f | ||
|
|
3f8944c914 | ||
|
|
3f3c512bf1 | ||
|
|
f0b029acc2 | ||
|
|
c29feacfbb | ||
|
|
caeaf71875 | ||
|
|
a6fb61b0dd | ||
|
|
f3b6929f26 | ||
|
|
4941e5e749 | ||
|
|
62af2a607f | ||
|
|
324a8cbdbe | ||
|
|
8824937eb8 | ||
|
|
cd41ccdbf0 | ||
|
|
ac59320954 | ||
|
|
b27184df63 | ||
|
|
a3a81d5571 | ||
|
|
422b25a870 | ||
|
|
f1e8c50dca | ||
|
|
5c2fd21f73 | ||
|
|
fbd042a61b | ||
|
|
780ba6923c | ||
|
|
e53729a27c | ||
|
|
299f3bb323 | ||
|
|
d4f0bc497f | ||
|
|
49eb631a77 | ||
|
|
e889aeb106 | ||
|
|
225b79f9a0 | ||
|
|
1f54e1c13c | ||
|
|
ef0e4bc915 | ||
|
|
e3057bb8c0 | ||
|
|
fb352a8266 | ||
|
|
ccfecb4d51 | ||
|
|
33374aacdf | ||
|
|
d7139a472d | ||
|
|
d84e88c630 | ||
|
|
2b0b9b564a | ||
|
|
b843b8286d | ||
|
|
fdfed42191 | ||
|
|
be39c9dd08 | ||
|
|
4e212d2368 | ||
|
|
3e7edbf8c0 | ||
|
|
e399a943aa | ||
|
|
0b05afe8e0 | ||
|
|
26f8754867 | ||
|
|
521dcc01ba | ||
|
|
9574c0d87a | ||
|
|
6fec59ea21 | ||
|
|
f164d43056 | ||
|
|
229acc4d59 | ||
|
|
5ef3e0dbfd | ||
|
|
30bffc120a | ||
|
|
8497e43f47 | ||
|
|
b21aa14236 | ||
|
|
23353e444d | ||
|
|
2ebbd7376a | ||
|
|
40ec918c36 | ||
|
|
6c69c694fd | ||
|
|
74c7d96b39 | ||
|
|
216801a0ba | ||
|
|
0cf651600f | ||
|
|
8c9a17ebcd | ||
|
|
63508e9fab | ||
|
|
213c4ff3cd | ||
|
|
a1e1e0e7d1 | ||
|
|
1b9569ddf1 | ||
|
|
f98e787957 | ||
|
|
c0316344b7 | ||
|
|
58e68a8e98 | ||
|
|
910a585cf0 | ||
|
|
5dd4ba83af | ||
|
|
b2c2355ad1 | ||
|
|
631fbc5548 | ||
|
|
d7860a194f | ||
|
|
7dfc792fe0 | ||
|
|
6d0476527c | ||
|
|
068c61e0b3 | ||
|
|
aa425f80a5 | ||
|
|
aa243d015e | ||
|
|
d99b89d066 | ||
|
|
57e96ea730 | ||
|
|
05e9e25359 | ||
|
|
fd068e422e | ||
|
|
b182ddd22b | ||
|
|
a48b8d1bf4 | ||
|
|
251d2f9e7e | ||
|
|
11edc1df03 | ||
|
|
86e3302c60 | ||
|
|
11522b4afc | ||
|
|
de424adb91 | ||
|
|
5775815429 | ||
|
|
473ba08356 | ||
|
|
0484dbbaf3 | ||
|
|
a2d109934e | ||
|
|
e81bd4224e | ||
|
|
a724b78136 | ||
|
|
d3d53198ad | ||
|
|
a23fcc219b | ||
|
|
2cad0f006a | ||
|
|
95e0fe850e | ||
|
|
553133308d | ||
|
|
04f41a9880 | ||
|
|
5b94975bd5 | ||
|
|
839ee7e40e | ||
|
|
654d550677 | ||
|
|
553b515146 | ||
|
|
a36df1a78f | ||
|
|
89a9cca7d2 | ||
|
|
b180a3e10a | ||
|
|
8d277c87e5 | ||
|
|
1a131ea3e9 | ||
|
|
3aa298ee37 | ||
|
|
e965feffdb | ||
|
|
37001ee722 | ||
|
|
23f71e7b3f | ||
|
|
d8227166d0 | ||
|
|
85789f4550 | ||
|
|
30d2d092c3 | ||
|
|
ea2f77b6f6 | ||
|
|
8c376ee256 | ||
|
|
67f5a195e0 | ||
|
|
f8717db4e1 | ||
|
|
6ce71820d4 | ||
|
|
3fcbba4a60 | ||
|
|
f9f634b5f2 | ||
|
|
cd7ed3740c | ||
|
|
564943b0f9 | ||
|
|
586fe1fd3b | ||
|
|
a9c3ef92b1 | ||
|
|
07bc0ed5d6 | ||
|
|
3ebfd5a2b9 | ||
|
|
b326dd2298 | ||
|
|
3b76c20fd9 | ||
|
|
e914f6b42b | ||
|
|
a0e2890475 | ||
|
|
c2b28340fe | ||
|
|
79ea6928de | ||
|
|
e8c59a53f6 | ||
|
|
1a14c03286 | ||
|
|
022ec25f69 | ||
|
|
ffd1603a49 | ||
|
|
9e9a1d0cb1 | ||
|
|
51812fbe96 | ||
|
|
ff44c79be3 | ||
|
|
f6cda55380 | ||
|
|
d685aa34f2 | ||
|
|
ff4c39a9b3 | ||
|
|
715b316918 | ||
|
|
a7aa91803a | ||
|
|
49fddcbf8d | ||
|
|
43cde2aaed | ||
|
|
3f10d4e777 | ||
|
|
fc0ec464ed | ||
|
|
7567a54abf | ||
|
|
9d246d14fd | ||
|
|
ecd6b44b0d | ||
|
|
4bf818e99e | ||
|
|
7ce8dde1ec | ||
|
|
4ff286524c | ||
|
|
499e5079c3 | ||
|
|
c8cf72656a | ||
|
|
4425d1dd4f | ||
|
|
7c8d339f55 | ||
|
|
4ebe32a8dd | ||
|
|
326874f76b | ||
|
|
09b82bb257 | ||
|
|
4d15e5d5b8 | ||
|
|
902d0c64b6 | ||
|
|
f4cffda5f1 | ||
|
|
9fc44ba828 | ||
|
|
969c24a963 | ||
|
|
baadbf578f | ||
|
|
0d9c9787d2 | ||
|
|
58e403d1c0 | ||
|
|
86dd4cdb0f | ||
|
|
0cd5626284 | ||
|
|
4a9116ac96 | ||
|
|
d87f222482 | ||
|
|
4e29698c7e | ||
|
|
fbc4850edf | ||
|
|
4346080c48 | ||
|
|
6654ba32cb | ||
|
|
cd19d729d4 | ||
|
|
4c14010bc7 | ||
|
|
bffab49d41 | ||
|
|
66b4522580 | ||
|
|
119e8048a4 | ||
|
|
00c915cace | ||
|
|
e1c315491b | ||
|
|
b2ed0ffb1f | ||
|
|
b0e6df16a2 | ||
|
|
12896d8385 | ||
|
|
94cbe70a27 | ||
|
|
41642ddf96 | ||
|
|
860953531d | ||
|
|
3af4196690 | ||
|
|
83398f29bc | ||
|
|
62f7b98ce9 | ||
|
|
6013e21507 | ||
|
|
6eb1464dc6 | ||
|
|
6e0f05f0e7 | ||
|
|
70af03653c | ||
|
|
321971b977 | ||
|
|
babf18ba81 | ||
|
|
b84bb24279 | ||
|
|
0b4182d400 | ||
|
|
de28203f31 | ||
|
|
01fb76f70e | ||
|
|
8857457433 | ||
|
|
4ed985da78 | ||
|
|
71108a9e54 | ||
|
|
6fa34b640c | ||
|
|
def9171742 | ||
|
|
a09ca6422a | ||
|
|
3d6f5c2667 | ||
|
|
85dcbe6866 | ||
|
|
18734696f3 | ||
|
|
a9bd534094 | ||
|
|
5541f88e16 | ||
|
|
c05e3063bd | ||
|
|
a250031821 | ||
|
|
7178c97084 | ||
|
|
b80f51495b | ||
|
|
739d0647aa | ||
|
|
fd23bcdb89 | ||
|
|
97b7872494 | ||
|
|
11c474f077 | ||
|
|
5f1da948d9 | ||
|
|
af2b1e806c | ||
|
|
91571613d8 | ||
|
|
389898ff6e | ||
|
|
257b5f36ae | ||
|
|
bde610585a | ||
|
|
6ee1a148db | ||
|
|
5d30ca2ef8 | ||
|
|
9026e2a205 | ||
|
|
e4b5accaab | ||
|
|
6f39a499a2 | ||
|
|
04d9798734 | ||
|
|
d5732b9792 | ||
|
|
180f5d4f7f | ||
|
|
261775c9c1 | ||
|
|
462a7977f6 | ||
|
|
0eb159b375 | ||
|
|
bd6fe47e75 | ||
|
|
f304577088 | ||
|
|
fa880de309 | ||
|
|
35001657b4 | ||
|
|
1c31cb4967 | ||
|
|
8452e1b448 | ||
|
|
737cba9658 | ||
|
|
f3d4793056 | ||
|
|
3077b98973 | ||
|
|
4058fe29cb | ||
|
|
aa43966ad2 | ||
|
|
5a3c18409d | ||
|
|
89feaa9efd | ||
|
|
a7eddab433 | ||
|
|
bac7e0a892 | ||
|
|
e5d967a083 | ||
|
|
6f89db1fb7 | ||
|
|
78a54a411f | ||
|
|
a5c956d8a3 | ||
|
|
fe52992a4d | ||
|
|
0e338c12ee | ||
|
|
0c3724af68 | ||
|
|
6e3e4d5904 | ||
|
|
aa806a252d | ||
|
|
8466c220df | ||
|
|
cc4022c1c2 | ||
|
|
c4b399df8d | ||
|
|
bc01926696 | ||
|
|
f69c0e7cd8 | ||
|
|
6a8a51830a | ||
|
|
c768d72d23 | ||
|
|
0bd712cf0a | ||
|
|
d69946b4a5 | ||
|
|
a3f45d7675 | ||
|
|
a8b7b7214e | ||
|
|
7423699d90 | ||
|
|
30460f1fe9 | ||
|
|
60e2112c26 | ||
|
|
fa5fa5c2ab | ||
|
|
e3190f3551 | ||
|
|
b9c3090bfe | ||
|
|
fc19bd3692 | ||
|
|
b50a206653 | ||
|
|
03cb2db790 | ||
|
|
bce13671b2 | ||
|
|
0140577989 | ||
|
|
8e10a861be | ||
|
|
deb90d9539 | ||
|
|
44326fc42c | ||
|
|
6e92e75066 | ||
|
|
9c95bb0dca | ||
|
|
1b05c381cc | ||
|
|
f468f7c9bf | ||
|
|
8939a0892b | ||
|
|
a90edd2fb0 | ||
|
|
c0936f4c34 | ||
|
|
cc0eeec80b | ||
|
|
a3edf4b1bd | ||
|
|
be28647be6 | ||
|
|
ca525acad2 | ||
|
|
8c05ca7fc8 | ||
|
|
264eb17c61 | ||
|
|
55b9bf2c68 | ||
|
|
fa3b62c07b | ||
|
|
40a203070e | ||
|
|
0921cae7a0 | ||
|
|
238046be17 | ||
|
|
b8e92c1eb1 | ||
|
|
b2e098296e | ||
|
|
82cb3363c6 | ||
|
|
c08e448627 | ||
|
|
94b77f315b | ||
|
|
e324a073a6 | ||
|
|
560da80273 | ||
|
|
016adf4be1 | ||
|
|
c5cac01b12 | ||
|
|
1bae7d6c03 | ||
|
|
b1935fdd91 | ||
|
|
c66ef4b453 | ||
|
|
7aed8c81e3 | ||
|
|
46ebb3586d | ||
|
|
cb63f63515 | ||
|
|
5c63bdf422 | ||
|
|
2a0f6a04cf | ||
|
|
f9440480ac | ||
|
|
fea54d81fe | ||
|
|
fe5b32d7c4 | ||
|
|
bba7e16977 | ||
|
|
a1d71995da | ||
|
|
3c0c6a5ea2 | ||
|
|
30c485b610 | ||
|
|
588674c115 | ||
|
|
d066bd289c | ||
|
|
b9017017e4 | ||
|
|
f23390bfb2 | ||
|
|
fce7835641 | ||
|
|
8c5611b908 | ||
|
|
b04f0cda98 | ||
|
|
8c4470b45a | ||
|
|
ef8db86d05 | ||
|
|
b127d9a834 | ||
|
|
8bb773c2fd | ||
|
|
334d8c996b | ||
|
|
0f064a2040 | ||
|
|
c2a55d3959 | ||
|
|
d04cf04c88 | ||
|
|
4d26893c6c | ||
|
|
cd0549b6cd | ||
|
|
62061956cd | ||
|
|
311f371d27 | ||
|
|
a16af1f12b | ||
|
|
da773f42f0 | ||
|
|
ce927d9f65 | ||
|
|
06ce1683e5 | ||
|
|
d9ef559644 | ||
|
|
cc065f7a4f | ||
|
|
751c3a5b1f | ||
|
|
4c9b344399 | ||
|
|
652442b29a | ||
|
|
4e305a6256 | ||
|
|
1ac4da86ee | ||
|
|
d29e9e1ce2 | ||
|
|
633a8de707 | ||
|
|
8bff542773 | ||
|
|
16aefa57dc | ||
|
|
83e7571b51 | ||
|
|
364de87773 | ||
|
|
5941f7b891 | ||
|
|
414ed7319d | ||
|
|
997bef3c05 | ||
|
|
f21f284aef | ||
|
|
0281a6c15a | ||
|
|
e1c6228bd9 | ||
|
|
323f3a2398 | ||
|
|
3000630cf2 | ||
|
|
fa24fcf482 | ||
|
|
4474ba111d | ||
|
|
762db4f9f4 | ||
|
|
e3da50bc7a | ||
|
|
65744f536a | ||
|
|
eb778f307b | ||
|
|
942b891412 | ||
|
|
fa4bebd3ff | ||
|
|
9ed685ec50 | ||
|
|
b754d759a4 | ||
|
|
8874b002ef | ||
|
|
3b6f8d16d6 | ||
|
|
0dd79e0251 | ||
|
|
58b26a34a7 | ||
|
|
2fe5bf86ca | ||
|
|
222cdae092 | ||
|
|
d9ef6a1ec6 | ||
|
|
2b646c3714 | ||
|
|
52c5230a7b | ||
|
|
c2d04ac67a | ||
|
|
22028a0475 | ||
|
|
4d5fc93e6a | ||
|
|
1a21bbb1ce | ||
|
|
5afd721d44 | ||
|
|
491faaa272 | ||
|
|
9c0a34ecc8 | ||
|
|
2c914c21f2 | ||
|
|
a9b490a249 | ||
|
|
272bfc695e | ||
|
|
089c45bae6 | ||
|
|
7f677b102d | ||
|
|
05ca9509c1 | ||
|
|
017440453f | ||
|
|
58a391cde8 | ||
|
|
bcb70008ee | ||
|
|
e83d14be2e | ||
|
|
dd45ea39cd | ||
|
|
4b5b8ff105 | ||
|
|
0bccf5846b | ||
|
|
a84416574c | ||
|
|
d0f930b470 | ||
|
|
4c0882bc4c | ||
|
|
71357fbdd2 | ||
|
|
9f6ea62170 | ||
|
|
fc80a315c2 | ||
|
|
3db7d456c3 | ||
|
|
fa73d43aec | ||
|
|
2ab803eb5e | ||
|
|
d414eaff38 | ||
|
|
c3fb9b6033 | ||
|
|
4376913cf6 | ||
|
|
15c7051ebc | ||
|
|
d5961922dc | ||
|
|
46be3afcb6 | ||
|
|
ef0c94c88a | ||
|
|
3a60b620f2 | ||
|
|
7d8ebc3547 | ||
|
|
4a66fa3a76 | ||
|
|
dccd9eefc1 | ||
|
|
e303a3d2a4 | ||
|
|
ad44898d2d | ||
|
|
152a38ce62 | ||
|
|
7c36993274 | ||
|
|
b8c37a8903 | ||
|
|
e028f93870 | ||
|
|
0ddb749e90 | ||
|
|
db17cb7cb9 | ||
|
|
4737ba6953 | ||
|
|
4a449261e5 | ||
|
|
be8b6da149 | ||
|
|
daffb1c9d2 | ||
|
|
35842d5a40 | ||
|
|
c4d4d6bb10 | ||
|
|
debde7f1c7 | ||
|
|
37ab6208d1 | ||
|
|
e9242d467c | ||
|
|
b552d6fe10 | ||
|
|
bc3ae9aaaa | ||
|
|
b7c36856ef | ||
|
|
2830c89559 | ||
|
|
f4e24e5a54 | ||
|
|
e2352cc6ea | ||
|
|
418e282ca6 | ||
|
|
892c7ce230 | ||
|
|
4f47a8dad1 | ||
|
|
62c6613239 | ||
|
|
396a9316a6 | ||
|
|
f39bdc29bd | ||
|
|
ef6d9f26bb | ||
|
|
3a2764755a | ||
|
|
874291fed3 | ||
|
|
3429dd7075 | ||
|
|
0c1f5d6d96 | ||
|
|
af1f8e780b | ||
|
|
83aced4404 | ||
|
|
631e1e02b3 | ||
|
|
b8d183d032 | ||
|
|
dfc987a3b6 | ||
|
|
b1a54d34a5 | ||
|
|
3ce507a2b4 | ||
|
|
50e36e2810 | ||
|
|
b34a8fcc9b | ||
|
|
8acefc36a0 | ||
|
|
79b2865cda | ||
|
|
eb5d1a7e74 | ||
|
|
2105558e49 | ||
|
|
92db598eb6 | ||
|
|
03890be359 | ||
|
|
c14d3ca70f | ||
|
|
c83bd679a8 | ||
|
|
606281de09 | ||
|
|
c7d84847c9 | ||
|
|
785fbe7f7a | ||
|
|
59fcc612f1 | ||
|
|
21260302ca | ||
|
|
2704f19a78 | ||
|
|
da016e9b75 | ||
|
|
38efce0f42 | ||
|
|
ce26ff0c13 | ||
|
|
b351664b13 | ||
|
|
0849826eaa | ||
|
|
242c7b07ea | ||
|
|
f65841b190 | ||
|
|
d15881bd4c | ||
|
|
38805b0f14 | ||
|
|
7b2fc0c9c6 | ||
|
|
44f0f282dc | ||
|
|
6c3da9ef63 | ||
|
|
aaff541a26 | ||
|
|
95b57155e8 | ||
|
|
1748df2ff5 | ||
|
|
e391417cec | ||
|
|
3b57d52626 | ||
|
|
38ab550178 | ||
|
|
451b647861 | ||
|
|
45f1dc6b47 | ||
|
|
8d15cc6563 | ||
|
|
c008892b5c | ||
|
|
397aefd6bb | ||
|
|
7e4e8a96a7 | ||
|
|
949afe0bbf | ||
|
|
3dbfa9ef97 | ||
|
|
6079a31c93 | ||
|
|
61da537725 | ||
|
|
6ba0fd6047 | ||
|
|
1555f0a44b | ||
|
|
dd00f3abfc | ||
|
|
060025d292 | ||
|
|
bb489cba9a | ||
|
|
dd396d5c21 | ||
|
|
c2d7008718 | ||
|
|
6cbd1f8e22 | ||
|
|
33007e25ed | ||
|
|
3ddc369197 | ||
|
|
5aecae3b36 | ||
|
|
ed589c965d | ||
|
|
192d1723fb | ||
|
|
2e2b09eef8 | ||
|
|
ae83f6f5a8 | ||
|
|
fda5461bfe | ||
|
|
db5e5fc3dd | ||
|
|
4c712e1bb0 | ||
|
|
d1fb9e2395 | ||
|
|
365728a4e8 | ||
|
|
f6ce562552 | ||
|
|
af0dd4c71d | ||
|
|
361cd35842 | ||
|
|
a8a0b77028 | ||
|
|
84cc69b80b | ||
|
|
b50e465f11 | ||
|
|
6d178542df | ||
|
|
1ddf3b7ae8 | ||
|
|
a1d8379b63 | ||
|
|
2168e5b0f4 | ||
|
|
34498a8121 | ||
|
|
1541469ca4 | ||
|
|
b738836d9f | ||
|
|
9e8f909773 | ||
|
|
e24fdc0181 | ||
|
|
64bd0100ee | ||
|
|
ce0f4e3210 | ||
|
|
f96da00aea | ||
|
|
dee9306af0 | ||
|
|
2200005c48 | ||
|
|
46bcacdc97 | ||
|
|
08096611f3 | ||
|
|
af16ca2171 | ||
|
|
cdf75afeca | ||
|
|
8a82afe95b | ||
|
|
b914b0a77f | ||
|
|
8fa75c4597 | ||
|
|
8399e86edf | ||
|
|
265ce13d18 | ||
|
|
908d44462f | ||
|
|
767b7f2c54 | ||
|
|
f6a354b20d | ||
|
|
ac85f4f7d0 | ||
|
|
ff5e877670 | ||
|
|
9f4b022526 | ||
|
|
4ad9e1d532 | ||
|
|
a15ff2b94b | ||
|
|
5b29600a43 | ||
|
|
4441ca3b97 | ||
|
|
53705dbe6b | ||
|
|
0d4080bde9 | ||
|
|
0ad256180d | ||
|
|
c8fe6486de | ||
|
|
86257eaf73 | ||
|
|
424cb34f3c | ||
|
|
a6af46240c | ||
|
|
4429473f70 | ||
|
|
7f76561a81 | ||
|
|
425ba45ea3 | ||
|
|
f3f1acd1d6 | ||
|
|
d1a26b0f07 | ||
|
|
380a89b148 | ||
|
|
6dea72511d | ||
|
|
11beb4e2ee | ||
|
|
0ba5b6bfab | ||
|
|
d429819869 | ||
|
|
ea97de95fe | ||
|
|
44345760e7 | ||
|
|
6fbfb747bb | ||
|
|
7335f0ee3e | ||
|
|
0ea684be67 | ||
|
|
d0a01665d5 | ||
|
|
4933fda6af | ||
|
|
840099f8a6 | ||
|
|
e5e8a29449 | ||
|
|
63f9f241bb | ||
|
|
125d7ad871 | ||
|
|
7f62f97132 | ||
|
|
3badb7bf4a | ||
|
|
aad32bcf85 | ||
|
|
104d08c70c | ||
|
|
4d20351680 | ||
|
|
a29632f207 | ||
|
|
3ccab7f67c | ||
|
|
1c7e268413 | ||
|
|
233fe61167 | ||
|
|
af092cd3fb | ||
|
|
e224862c37 | ||
|
|
6ab481a582 | ||
|
|
f679be571d | ||
|
|
22cf19af35 | ||
|
|
44be2822e6 | ||
|
|
b74db57a0f | ||
|
|
e29161f44d | ||
|
|
53d87a3819 | ||
|
|
f27d10805c | ||
|
|
f4ab03baf2 | ||
|
|
243f656b5e | ||
|
|
6f64cadfc6 | ||
|
|
f6b51cdcaf | ||
|
|
f7ab053b7f | ||
|
|
df95c282e1 | ||
|
|
4cff0d2e33 | ||
|
|
b5c1311cfe | ||
|
|
2526d0229b | ||
|
|
0fcd8761a1 | ||
|
|
fe3687dbe3 | ||
|
|
6f8f2860c3 | ||
|
|
033b515a1d | ||
|
|
553e9ade0d | ||
|
|
6635c7f8e0 | ||
|
|
af920845ac | ||
|
|
5f7a6826fe | ||
|
|
d8825fac69 | ||
|
|
4d427b24e2 | ||
|
|
735367598e | ||
|
|
bdf92484eb | ||
|
|
d5e95564d2 | ||
|
|
0f52d8b5c8 | ||
|
|
cb71ede265 | ||
|
|
93904c4130 | ||
|
|
9c60c1807e | ||
|
|
f2d2a6e526 | ||
|
|
d89ec10590 | ||
|
|
a70a265b49 | ||
|
|
451d9835a2 | ||
|
|
c9b6b9480a | ||
|
|
37da82b4dd | ||
|
|
9595e206f3 | ||
|
|
5fb127d4e0 | ||
|
|
0b1aae7b9b | ||
|
|
1939c29c1f | ||
|
|
61b67fc084 | ||
|
|
36a188b7cb | ||
|
|
693754c5a7 | ||
|
|
1fa4cee7c7 | ||
|
|
79ed4efb3f | ||
|
|
88f074c4de | ||
|
|
0d731312ff | ||
|
|
90f42b3947 | ||
|
|
cd06dea613 | ||
|
|
47775245a8 | ||
|
|
748e56f661 | ||
|
|
cef8c02118 | ||
|
|
74b1b5f661 | ||
|
|
66e1113587 | ||
|
|
79fe072db0 | ||
|
|
65840ed246 | ||
|
|
9ae95caa87 | ||
|
|
7e11d0efe8 | ||
|
|
d153824829 | ||
|
|
9bcecbbac0 | ||
|
|
da62903bf5 | ||
|
|
ff23e00a9a | ||
|
|
c7f1f7a5c1 | ||
|
|
bee1aaa68d | ||
|
|
00f68ec3ab | ||
|
|
2ca9d11fab | ||
|
|
e42db5381d | ||
|
|
036caa33f6 | ||
|
|
217e551f08 | ||
|
|
044670a955 | ||
|
|
4942f74de3 | ||
|
|
3943fa653e | ||
|
|
db5e8ad4fb | ||
|
|
6931e0af77 | ||
|
|
0431ed8c18 | ||
|
|
88e9d9a734 | ||
|
|
f988074c2b | ||
|
|
a65d68f47f | ||
|
|
1b5116db6d | ||
|
|
9b6f2a3037 | ||
|
|
534247895d | ||
|
|
e70037c46a | ||
|
|
73c80c2c81 | ||
|
|
51ce4e6b59 | ||
|
|
cbfcb76a2e | ||
|
|
5dbf4c4ed5 | ||
|
|
aac581eebb | ||
|
|
4c7707dfe6 | ||
|
|
0c4f495d85 | ||
|
|
8dee41e6f0 | ||
|
|
0411ce5a1b | ||
|
|
e0d25b8bb9 | ||
|
|
7a29d3e08e | ||
|
|
f6267573f5 | ||
|
|
66a5319730 | ||
|
|
b531bff61e | ||
|
|
2629ce603f | ||
|
|
e58777b904 | ||
|
|
b693f22073 | ||
|
|
5a5a4f8f79 | ||
|
|
1e85bf3bf4 | ||
|
|
e83888a8bb | ||
|
|
ee33353875 | ||
|
|
63713eb3b9 | ||
|
|
be7931b525 | ||
|
|
b3d40180c2 | ||
|
|
3ad05b88e6 | ||
|
|
35227e709b | ||
|
|
2cc30d28ec | ||
|
|
6349cc13d8 | ||
|
|
91998e8935 | ||
|
|
99d334219c | ||
|
|
75a29487aa | ||
|
|
a4193c9a18 | ||
|
|
d294fedda9 | ||
|
|
c301ab4a03 | ||
|
|
261b7b3310 | ||
|
|
42e3d60337 | ||
|
|
a810338812 | ||
|
|
c28bedd082 | ||
|
|
843ff084eb | ||
|
|
c946992117 | ||
|
|
9dcccce063 | ||
|
|
7b8581452d | ||
|
|
052a3d2251 | ||
|
|
fce6df0b42 | ||
|
|
132e432388 | ||
|
|
3aff239081 | ||
|
|
679af13853 | ||
|
|
cd4c9e8e01 | ||
|
|
58c927c811 | ||
|
|
d54eee2922 | ||
|
|
7ed512e6fd | ||
|
|
679ab7988f | ||
|
|
e430d1ff85 | ||
|
|
813ef26aaf | ||
|
|
698c240060 | ||
|
|
04f2a5fef2 | ||
|
|
2c4f175c83 | ||
|
|
debba03ea8 | ||
|
|
5a9cca3c72 | ||
|
|
4ac922eba6 | ||
|
|
366fb7f66c | ||
|
|
c3e99c89f2 | ||
|
|
4c83a31628 | ||
|
|
446f1ad3f6 | ||
|
|
3701608574 | ||
|
|
6e2b2cf1af | ||
|
|
2a8b96a54e | ||
|
|
9b195bce94 | ||
|
|
710439fbb7 | ||
|
|
4390601f54 | ||
|
|
ed6ac30d24 | ||
|
|
714ce714ad | ||
|
|
47181f8b0d | ||
|
|
1597d536e0 | ||
|
|
a3a98e3b6a | ||
|
|
df7b9b15cd | ||
|
|
fb4d785315 | ||
|
|
ff3ac22c90 | ||
|
|
39a73d87b8 | ||
|
|
908a8b6f67 | ||
|
|
89d323d4f2 | ||
|
|
552962e197 | ||
|
|
0d91ad7eb5 | ||
|
|
95f318724d | ||
|
|
6872d458f1 | ||
|
|
626995a7f3 | ||
|
|
d62d33ef96 | ||
|
|
be11a9dc3e | ||
|
|
4f0ac3c331 | ||
|
|
a863c06732 | ||
|
|
524b68662b | ||
|
|
ad038ebe91 | ||
|
|
5498684af1 | ||
|
|
ace5e85a9b | ||
|
|
0cc649a164 | ||
|
|
31d9f60da5 | ||
|
|
5174b578ac | ||
|
|
4a6b4ad40f | ||
|
|
904c643c76 | ||
|
|
5f0f7ef39f | ||
|
|
1148cf2fb4 | ||
|
|
8bdc95a4b7 | ||
|
|
fa1da99885 | ||
|
|
af7b24bdc0 | ||
|
|
ad03c5b0d0 | ||
|
|
39b54ea982 | ||
|
|
f0a22f674c | ||
|
|
fd1ba312a3 | ||
|
|
1dbe26fbf9 | ||
|
|
3d94693968 | ||
|
|
5b76dd6c1b | ||
|
|
121d5c1127 | ||
|
|
bf3ffb8d4c | ||
|
|
caf3dbef6f | ||
|
|
de5f2784f3 | ||
|
|
7c528aaa25 | ||
|
|
61035f9594 | ||
|
|
923953f2bf | ||
|
|
dcaa9dd698 | ||
|
|
3ae4e7b67d | ||
|
|
1816ee238e | ||
|
|
a392f992e6 | ||
|
|
44e2c24154 | ||
|
|
bc59c7f07e | ||
|
|
a0433e7576 | ||
|
|
978e353a60 | ||
|
|
06461ca556 | ||
|
|
89f6e6b48d | ||
|
|
f8c046d2a3 | ||
|
|
223be9605e | ||
|
|
42e5d3524d | ||
|
|
5f1b8eaa71 | ||
|
|
e7073d7eaf | ||
|
|
6c254a95d9 | ||
|
|
9f39019f2b | ||
|
|
57d62b2a78 | ||
|
|
7f3a4852aa | ||
|
|
6320a7dec7 | ||
|
|
45720cad07 | ||
|
|
84d0860013 | ||
|
|
f98d1960e3 | ||
|
|
a86451a0a3 | ||
|
|
c226a0997a | ||
|
|
1cb86d4edf | ||
|
|
3cb8c719f6 | ||
|
|
036337b6d3 | ||
|
|
868dfa2604 | ||
|
|
58344f8f95 | ||
|
|
9cdd58f67a | ||
|
|
461056825b | ||
|
|
4735fecffe | ||
|
|
eaca667606 | ||
|
|
9e69373881 | ||
|
|
e2fd482731 | ||
|
|
8d25b5b1ac | ||
|
|
b7827442ce | ||
|
|
f9544d281c | ||
|
|
64cc00f678 | ||
|
|
a88215d2d2 | ||
|
|
e9871b28e3 | ||
|
|
8df961cb98 | ||
|
|
92fb87a01a | ||
|
|
b2e5c45110 | ||
|
|
9e059ce270 | ||
|
|
df6410128f | ||
|
|
08207ada5e | ||
|
|
a2b4b21279 | ||
|
|
8b79622536 | ||
|
|
300aa26b63 | ||
|
|
0563879c7b | ||
|
|
9d8b843e90 | ||
|
|
7dc24bf70f | ||
|
|
6d492e619a | ||
|
|
d8c584e973 | ||
|
|
1cf64c84f7 | ||
|
|
7dd64f83ed | ||
|
|
0e5da4adda | ||
|
|
9f5f830a3a | ||
|
|
47af48047c | ||
|
|
f4fdc0f69c | ||
|
|
c94579a578 | ||
|
|
473b91f301 | ||
|
|
c603a294b4 | ||
|
|
5835721f7b | ||
|
|
32db7c1881 | ||
|
|
8196638759 | ||
|
|
33a9d0232e | ||
|
|
d54a8889e3 | ||
|
|
1b8b7ba3a7 | ||
|
|
616340ca64 | ||
|
|
6433e2b695 | ||
|
|
fbc5d357a4 | ||
|
|
44a9a9cb5c | ||
|
|
df86eaa659 | ||
|
|
711641a17f | ||
|
|
842347b0b8 | ||
|
|
1e8fa240de | ||
|
|
ec7e0f3002 | ||
|
|
c1bb863f76 | ||
|
|
1a78c9d45d | ||
|
|
5ee5780803 | ||
|
|
d8a7618d66 | ||
|
|
94a4c64b99 | ||
|
|
594f3ea713 | ||
|
|
68c97c24a6 | ||
|
|
1152668ec8 | ||
|
|
b7d13d8915 | ||
|
|
679f920a00 | ||
|
|
5f45c15165 | ||
|
|
dac4968cdb | ||
|
|
d941838f96 | ||
|
|
f03faa2a7c | ||
|
|
823a918960 | ||
|
|
943477803f | ||
|
|
f1f77ae7ae | ||
|
|
666dc8c49f | ||
|
|
e27bec3fe9 | ||
|
|
ad12fb26e3 | ||
|
|
aa0b13b619 | ||
|
|
9f41b38daf | ||
|
|
b8cc24c133 | ||
|
|
ebe754f6dc | ||
|
|
68a0254fbf | ||
|
|
ed16fdf997 | ||
|
|
284a540ff9 | ||
|
|
ed1c7defd2 | ||
|
|
d9080d0633 | ||
|
|
0457b743e4 | ||
|
|
2b23174df9 | ||
|
|
3b7c990555 | ||
|
|
f01831ca85 | ||
|
|
0b9c36362d | ||
|
|
914e9e75e1 | ||
|
|
d1a9d6124e | ||
|
|
a392c0daba | ||
|
|
071133eddf | ||
|
|
47c8105e26 | ||
|
|
c6e5e34cc0 | ||
|
|
d9b3cdbf07 | ||
|
|
4362910022 | ||
|
|
4388277b51 | ||
|
|
8897fa1077 | ||
|
|
cee3a18d0a | ||
|
|
75ef031b93 | ||
|
|
11b1e5a1dc | ||
|
|
7dad5273fb | ||
|
|
4180f0b973 | ||
|
|
921505b325 | ||
|
|
68a8ed2f74 | ||
|
|
ca9fd62a48 | ||
|
|
5ac73cff4a | ||
|
|
056dac3c0b | ||
|
|
9bc6202c1f | ||
|
|
606a492210 | ||
|
|
a9154df1d2 | ||
|
|
7caf9ab8dc | ||
|
|
3d22220657 | ||
|
|
df39d51240 | ||
|
|
ca2ff1c584 | ||
|
|
d8e24864aa | ||
|
|
d007d58c50 | ||
|
|
833147e8d3 | ||
|
|
5df7fedc87 | ||
|
|
d493ffd6fe | ||
|
|
22765aef37 | ||
|
|
f5ad5ecbb8 | ||
|
|
87555b8935 | ||
|
|
fb95ee0cf0 | ||
|
|
11ec70ffc6 | ||
|
|
dd9630dc87 | ||
|
|
fe7e1dc212 | ||
|
|
cd93881d96 | ||
|
|
0aea729c9e | ||
|
|
db46fd8e9e | ||
|
|
e76cb821c9 | ||
|
|
702eda7e46 | ||
|
|
452206cf02 | ||
|
|
e3e06fb072 | ||
|
|
ee5390e1b5 | ||
|
|
67f07d10b1 | ||
|
|
b1aa5a00b4 | ||
|
|
28eac30ac4 | ||
|
|
a9d575cf6a | ||
|
|
5d1a6005be | ||
|
|
5e9b6a35a7 | ||
|
|
1c9b707ed4 | ||
|
|
f6389963f3 | ||
|
|
c7b844398b | ||
|
|
d03df0d6a4 | ||
|
|
4f187c27f4 | ||
|
|
9cf78e1542 | ||
|
|
1bf1eb4a31 | ||
|
|
6d6e51c78a | ||
|
|
55db3c0b63 | ||
|
|
fc1429aa67 | ||
|
|
f3084e41d6 | ||
|
|
13f9f00186 | ||
|
|
4b3708e645 | ||
|
|
93551f54df | ||
|
|
0e1b596a03 | ||
|
|
4bde48aced | ||
|
|
a0a4105677 | ||
|
|
ed9b1f24cd | ||
|
|
e486bd16ad | ||
|
|
4ba21c91b1 | ||
|
|
6620fb0713 | ||
|
|
c45a3a6cb0 | ||
|
|
a63b6dda21 | ||
|
|
6f2d08e2f3 | ||
|
|
190dbdb460 | ||
|
|
7d0250e121 | ||
|
|
49db655814 | ||
|
|
cbe945cc49 | ||
|
|
75f14b4d25 | ||
|
|
577cba4d7d | ||
|
|
0cc455e2a5 | ||
|
|
b38dc52adc | ||
|
|
b3c8c9331b | ||
|
|
b7ec01a9da | ||
|
|
850d9f2824 | ||
|
|
72aa5341e1 | ||
|
|
ba1e13fbc5 | ||
|
|
99a2a6c2cb | ||
|
|
6cb03599c2 | ||
|
|
2533108ec5 | ||
|
|
da9cfb82c5 | ||
|
|
81e13f2306 | ||
|
|
e0c2575662 | ||
|
|
5d73f6bed7 | ||
|
|
bb6393e184 | ||
|
|
33fa838511 | ||
|
|
a560182af5 | ||
|
|
9797d72b71 | ||
|
|
32e4cd5ddd | ||
|
|
b69f97c235 | ||
|
|
d5f6e021bb | ||
|
|
7fde1d7d65 | ||
|
|
acc35e34b4 | ||
|
|
4bce16b9f5 | ||
|
|
628ebdb002 | ||
|
|
8d57282cf0 | ||
|
|
a950e9dd8e | ||
|
|
1b8ed1424c | ||
|
|
59ea97fc3a | ||
|
|
e8ce95dc30 | ||
|
|
d911ea5276 | ||
|
|
5725e24567 | ||
|
|
6654fc0bf7 | ||
|
|
39d025ec05 | ||
|
|
ada4c1334d | ||
|
|
877bf6088d | ||
|
|
4e1af33959 | ||
|
|
8daaabb0f2 | ||
|
|
94d7c14648 | ||
|
|
ae32024353 | ||
|
|
c588fe63a5 | ||
|
|
2e54b7c296 | ||
|
|
f93b109086 | ||
|
|
ad10d9ea59 | ||
|
|
bc7b2db6bf | ||
|
|
c3fea7f82c | ||
|
|
598276cbd5 | ||
|
|
83e8e75acd | ||
|
|
46185692cc | ||
|
|
62e269f4e8 | ||
|
|
7570389ea8 | ||
|
|
4ea2ce59ac | ||
|
|
e8a5914c5e | ||
|
|
2caa9ba664 | ||
|
|
d58afdaba1 | ||
|
|
fa130ed83d | ||
|
|
5d93d892d2 | ||
|
|
b4d8f0be56 | ||
|
|
dcc961ceec | ||
|
|
0163527f3f | ||
|
|
974d4f61ac | ||
|
|
2eb8d6b1bb | ||
|
|
4d8efce5b9 | ||
|
|
68ddfae414 | ||
|
|
acf2ec7b39 | ||
|
|
bb3242275a | ||
|
|
c76866e3ea | ||
|
|
456461efac | ||
|
|
142608a6a8 | ||
|
|
cc9b998e09 | ||
|
|
f77098da23 | ||
|
|
705f74a8c2 | ||
|
|
b7352c67ad | ||
|
|
7fc5c5f225 | ||
|
|
b1a8b670c1 | ||
|
|
d9848b0a69 | ||
|
|
896e8341a3 | ||
|
|
448e9e495e | ||
|
|
0cc86dfb8a | ||
|
|
fe23ab43f7 | ||
|
|
2e443d3257 | ||
|
|
a7ee7087cd | ||
|
|
9b6e351229 | ||
|
|
d7e78b06d3 | ||
|
|
3427953182 | ||
|
|
1eb8c80ccd | ||
|
|
7e73620690 | ||
|
|
177649928b | ||
|
|
c223d95012 | ||
|
|
d77a9731e4 | ||
|
|
9ce7243134 | ||
|
|
7eeaba98a2 | ||
|
|
04cdec2bfe | ||
|
|
879f878ec0 | ||
|
|
f76ebfdd03 | ||
|
|
c65ebbd55d | ||
|
|
45f7825dee | ||
|
|
e62706b8e3 | ||
|
|
9f4f3e337c | ||
|
|
bd83caaf6b | ||
|
|
a06507b683 | ||
|
|
f567227b9a | ||
|
|
2db55a3d0f | ||
|
|
65ad2bc732 | ||
|
|
3dcd14eede | ||
|
|
0cea9abfef | ||
|
|
d20c366089 | ||
|
|
be719273bd | ||
|
|
793e57b78c | ||
|
|
77c3f1f44c | ||
|
|
f59e5217f9 | ||
|
|
7e5db8bf4d | ||
|
|
25c5a6f79f | ||
|
|
d99681ec70 | ||
|
|
daebc3e984 | ||
|
|
8040b120b6 | ||
|
|
b8e237f427 | ||
|
|
332b74b47c | ||
|
|
4c0b23b4b3 | ||
|
|
dd94b87174 | ||
|
|
f7e86895f8 | ||
|
|
45b139e1bc | ||
|
|
1ce8cf63f4 | ||
|
|
d4e0adaf51 | ||
|
|
2c8efd545a | ||
|
|
b833615a1e | ||
|
|
93fea92a19 | ||
|
|
ac20cd3d2b | ||
|
|
312fcd0721 | ||
|
|
ac231cfe65 | ||
|
|
4b7a1d9ca8 | ||
|
|
f7959f57fb | ||
|
|
fbb67e22fc | ||
|
|
658e362eb3 | ||
|
|
ace36dc643 | ||
|
|
21d58a800d | ||
|
|
21f01836f0 | ||
|
|
9fd869c744 | ||
|
|
575073abd0 | ||
|
|
f8c9c5ef13 | ||
|
|
f76bb0d09f | ||
|
|
f6b02d4965 | ||
|
|
aa63f2fedb | ||
|
|
dfbeb0635c | ||
|
|
6d965a0b99 | ||
|
|
5dd07463c3 | ||
|
|
bb3401a5bf | ||
|
|
355c40b48e | ||
|
|
823ae8572c | ||
|
|
3b60ed87ef | ||
|
|
861b55468f | ||
|
|
c988276211 | ||
|
|
3330e5cde0 | ||
|
|
21de161dcc | ||
|
|
3a9dfe353b | ||
|
|
7ba72438e6 | ||
|
|
be94c40528 | ||
|
|
fabf11af4c | ||
|
|
81b13e8fa6 | ||
|
|
9797d08dd4 | ||
|
|
4dbc99eb01 | ||
|
|
f4c1402c80 | ||
|
|
5d0aa6de06 | ||
|
|
eae5ffc4c5 | ||
|
|
7a49f5e17b | ||
|
|
ac305714e5 | ||
|
|
fa0a0e599a | ||
|
|
3109097aaa | ||
|
|
7dfcc23627 | ||
|
|
275b883c56 | ||
|
|
6a5a4155a6 | ||
|
|
8870a5780e | ||
|
|
67273ad638 | ||
|
|
05a17f26e5 | ||
|
|
6d9fdf255f | ||
|
|
1af6095baa | ||
|
|
d5cd4c7771 | ||
|
|
8d1ce69208 | ||
|
|
427df43e15 | ||
|
|
519009392c | ||
|
|
d10fe71173 | ||
|
|
effb3a3ab7 | ||
|
|
c3861b69ee | ||
|
|
1c58e653d8 | ||
|
|
d3a041b7a9 | ||
|
|
ba538282fe | ||
|
|
a93891b60e | ||
|
|
2d9ecf4cc6 | ||
|
|
48744b3ca6 | ||
|
|
22e6ff4c0c | ||
|
|
2619e82136 | ||
|
|
f3010d0d9b | ||
|
|
f35552ef5b | ||
|
|
3d56080aec | ||
|
|
8ce4c74473 | ||
|
|
f755934606 | ||
|
|
63ed571575 | ||
|
|
311a9f92d6 | ||
|
|
86bb9e5a02 | ||
|
|
9e4b1f9903 | ||
|
|
57bd7f9716 | ||
|
|
6e429169a6 | ||
|
|
5c0c586179 | ||
|
|
74e1d8d348 | ||
|
|
962e46889a | ||
|
|
19038b7a8f | ||
|
|
f47757388e | ||
|
|
c82b0431d6 | ||
|
|
680f9254b3 | ||
|
|
7c04a2478c | ||
|
|
2021b65561 | ||
|
|
ba80b6bdfd | ||
|
|
b61c186f3c | ||
|
|
c858cc077e | ||
|
|
e45d785f2d | ||
|
|
4df5564876 | ||
|
|
5452b58393 | ||
|
|
bf0bb164b4 | ||
|
|
d3ba25399c | ||
|
|
957b461b8d | ||
|
|
418bbe01db | ||
|
|
3c279196d4 | ||
|
|
3b8921ebb9 | ||
|
|
5a2b19e57c | ||
|
|
a37c952cf0 | ||
|
|
eee8a212e4 | ||
|
|
2ff5b4c4e4 | ||
|
|
bdcbb02dad | ||
|
|
3b13ee4bac | ||
|
|
328e0907f9 | ||
|
|
17518d15d1 | ||
|
|
bc74815669 | ||
|
|
48a5cb7a21 | ||
|
|
bc89a5d9bb | ||
|
|
b451891f74 | ||
|
|
a2beed761a | ||
|
|
e27d9eb6e4 | ||
|
|
5bd13e49c4 | ||
|
|
3a2e50a63b | ||
|
|
c3a3e99712 | ||
|
|
229827d070 | ||
|
|
fd58d9a2f0 | ||
|
|
c768c22738 | ||
|
|
35d715a1df | ||
|
|
0587c6cdff | ||
|
|
3c4e66755e | ||
|
|
2f2b2be1d7 | ||
|
|
852a37d3d1 | ||
|
|
3cea127bcd | ||
|
|
2cf75195a2 | ||
|
|
547e224e68 | ||
|
|
b968759459 | ||
|
|
bc24e08543 | ||
|
|
f86697e178 | ||
|
|
bce7ab5e16 | ||
|
|
7f1ba25dd6 | ||
|
|
0f713ce386 | ||
|
|
e870ee208d | ||
|
|
60b11a36cc | ||
|
|
8eaf45f1c4 | ||
|
|
6d4acf57fc | ||
|
|
a0bb9fe8fd | ||
|
|
24d4a6bba6 | ||
|
|
fd0a09b410 | ||
|
|
227ca3a4cb | ||
|
|
9cc7d509f9 | ||
|
|
a937ccd9e5 | ||
|
|
c46632d25f | ||
|
|
c3b6060ee3 | ||
|
|
c4bfdcd4c8 | ||
|
|
9a9631c26f | ||
|
|
03c14a0013 | ||
|
|
8c4f481f75 | ||
|
|
be306d6aff | ||
|
|
ff5fac19a9 | ||
|
|
f64f449911 | ||
|
|
2f5de8f58d | ||
|
|
cba9172feb | ||
|
|
16966cd143 | ||
|
|
2ba6123367 | ||
|
|
91f64c5918 | ||
|
|
585ea22233 | ||
|
|
38d36d3178 | ||
|
|
941b2ba1d9 | ||
|
|
961d8be9b8 | ||
|
|
1b67600a60 | ||
|
|
b7f3f4a1ba | ||
|
|
053c6923e6 | ||
|
|
7ba3922bff | ||
|
|
2da3804db1 | ||
|
|
d92f6c8af4 | ||
|
|
dbebdff94b | ||
|
|
ee5b3ba301 | ||
|
|
71d99a5bc5 | ||
|
|
8509ed0ba7 | ||
|
|
df0ae754ac | ||
|
|
1511fee5f5 | ||
|
|
c797eeeda4 | ||
|
|
4f4d2e9f2b | ||
|
|
439ade71df | ||
|
|
533e49fd60 | ||
|
|
f3825ec9e4 | ||
|
|
6ea1e28c32 | ||
|
|
017c2f1299 | ||
|
|
f46b8973e7 | ||
|
|
fd19c879d7 | ||
|
|
05ab47e21f | ||
|
|
3b8b9400ee | ||
|
|
df2fcd5992 | ||
|
|
8bd92c7d35 | ||
|
|
ea756dc8af | ||
|
|
b0adf7be05 | ||
|
|
6aa9bb952b | ||
|
|
335ab846f0 | ||
|
|
c5516ae1c6 | ||
|
|
e6009564b1 | ||
|
|
1efe15e729 | ||
|
|
06a9d85e0d | ||
|
|
d90142959d | ||
|
|
e0f2d3016f | ||
|
|
0a3b477585 | ||
|
|
095dc4e9e2 | ||
|
|
71c16abf6f | ||
|
|
d877c2ef22 | ||
|
|
ac6efa72ed | ||
|
|
d7c56fb92a | ||
|
|
5d66e8ff00 | ||
|
|
b2d2a29309 | ||
|
|
1e9fed09d9 | ||
|
|
7365b2cbe5 | ||
|
|
ce28649d11 | ||
|
|
64c2bf50ed | ||
|
|
1e69d25a17 | ||
|
|
702784e064 | ||
|
|
92ce006aff | ||
|
|
1a034d3bbd | ||
|
|
bef2fe58a5 | ||
|
|
a10ac36a4e | ||
|
|
28df02ea30 | ||
|
|
7d0f0878b9 | ||
|
|
e820e83e9e | ||
|
|
ba9cacb739 | ||
|
|
9f825dd458 | ||
|
|
8efd292d96 | ||
|
|
77d34c3d73 | ||
|
|
173bdb51f9 | ||
|
|
8c282e5822 | ||
|
|
cf6ef818dc | ||
|
|
dfc0df6cb8 | ||
|
|
3045678bfd | ||
|
|
d5caae67b3 | ||
|
|
df2e70c836 | ||
|
|
fb533bc5db | ||
|
|
81cbe11f44 | ||
|
|
e8f73089a8 | ||
|
|
debaa1c0bb | ||
|
|
325296128c | ||
|
|
3aa4e78fbf | ||
|
|
f23a9a8d56 | ||
|
|
9ea769fb46 | ||
|
|
0cf6cb2c84 | ||
|
|
709a793509 | ||
|
|
3133792bbe | ||
|
|
feb794a2e9 | ||
|
|
6686694540 | ||
|
|
dc9f2947a7 | ||
|
|
af8a05701f | ||
|
|
80fcf7044d | ||
|
|
e861956222 | ||
|
|
7d9911f8e4 | ||
|
|
dde0049300 | ||
|
|
fb0ed17a63 | ||
|
|
0bfe31c0d7 | ||
|
|
f348e2672c | ||
|
|
0852f85867 | ||
|
|
d1a9fa1818 | ||
|
|
36261977ee | ||
|
|
028404d329 | ||
|
|
11607ed17f | ||
|
|
6d737a89c2 | ||
|
|
a438ef9ca0 | ||
|
|
3ecc866e77 | ||
|
|
ce5ae8de88 | ||
|
|
ccbf532f44 | ||
|
|
e352ea7240 | ||
|
|
f6c18f5774 | ||
|
|
e5ef2c85a4 | ||
|
|
82ce0a2007 | ||
|
|
87f6f09f7d | ||
|
|
bbccc02b1e | ||
|
|
9f95aaa3ec | ||
|
|
2922c7e50c | ||
|
|
5504d95e41 | ||
|
|
bfac90c93f | ||
|
|
c2fda3f345 | ||
|
|
28e257be54 | ||
|
|
a7649b75ad | ||
|
|
539b0afa4b | ||
|
|
337a3d36fe | ||
|
|
cf36015937 | ||
|
|
637e6d8c2f | ||
|
|
cde280bcf8 | ||
|
|
ccc04db365 | ||
|
|
771efff01f | ||
|
|
0ad8fef5d3 | ||
|
|
43d2a1c384 | ||
|
|
bd26520e0e | ||
|
|
4afae0f988 | ||
|
|
6b175d7266 | ||
|
|
2b9acb4bed | ||
|
|
105929fc2f | ||
|
|
3e07c13aa7 | ||
|
|
5a36c9ee5b | ||
|
|
6b6ad31fa3 | ||
|
|
90680f2373 | ||
|
|
b83eca93eb | ||
|
|
25edb9bef4 | ||
|
|
278fcfd05d | ||
|
|
ebc5a360a8 | ||
|
|
624609259f | ||
|
|
b8dc1b1292 | ||
|
|
dd333ae24a | ||
|
|
a96dbca975 | ||
|
|
bada937712 | ||
|
|
3267ad7bf2 | ||
|
|
119c91979c | ||
|
|
4f54363094 | ||
|
|
5b733399cf | ||
|
|
8855977571 | ||
|
|
d3ea22d104 | ||
|
|
984ff6f935 | ||
|
|
62cc31c8d0 | ||
|
|
0acdb1821e | ||
|
|
726d66a6ed | ||
|
|
d90c1a99b3 | ||
|
|
e1fd40681c | ||
|
|
dc17f285b4 | ||
|
|
3b643538c6 | ||
|
|
ab91d44792 | ||
|
|
577c6711a7 | ||
|
|
5917e1e388 | ||
|
|
abd14ff1b9 | ||
|
|
1c5610f321 | ||
|
|
b5ecde3753 | ||
|
|
d2a908e357 | ||
|
|
ff501a2d55 | ||
|
|
98103f66c0 | ||
|
|
07a8cce361 | ||
|
|
34ec410023 | ||
|
|
1ec68f52d1 | ||
|
|
49d7fbf9d5 | ||
|
|
8a8265f7bb | ||
|
|
f15b490680 | ||
|
|
dede0f9fba | ||
|
|
68f99531ef | ||
|
|
2d818176d0 | ||
|
|
1b24df5aad | ||
|
|
2a2d17022b | ||
|
|
f3554504c8 | ||
|
|
d50f8d11b8 | ||
|
|
0c8117572d | ||
|
|
af75904cf7 | ||
|
|
0c734f3070 | ||
|
|
7f19cefa4d | ||
|
|
63d1f07475 | ||
|
|
55365f471a | ||
|
|
bd82348c5b | ||
|
|
da14e5d6d5 | ||
|
|
abd8de21e5 | ||
|
|
e5075b3d5f | ||
|
|
a8a12c5c51 | ||
|
|
e048a0f5a6 | ||
|
|
a59de6b8f1 | ||
|
|
fdec867769 | ||
|
|
4a26b1b526 | ||
|
|
f65e8d8459 | ||
|
|
84a5f67096 | ||
|
|
0988199cc2 | ||
|
|
cfbb6dfd4a | ||
|
|
e0f845965d | ||
|
|
1087b8d776 | ||
|
|
3860e8c248 | ||
|
|
ee093fe4bc | ||
|
|
13887941ab | ||
|
|
29c6960883 | ||
|
|
95787ca5fb | ||
|
|
3fe9f8b52c | ||
|
|
21937fbbff | ||
|
|
e7a4e32b50 | ||
|
|
a9621c78a1 | ||
|
|
f0af9d73c8 | ||
|
|
904e1060f5 | ||
|
|
5bf6efbfd0 | ||
|
|
f5aa6fad51 | ||
|
|
94a6258211 | ||
|
|
0c6943fde0 | ||
|
|
6efeff1313 | ||
|
|
2eb93e5036 | ||
|
|
d71744312c | ||
|
|
a426a6d503 | ||
|
|
89ecee7f78 | ||
|
|
d1d843c69c | ||
|
|
3bd64e9faf | ||
|
|
89cd5dabfd | ||
|
|
8501b8009c | ||
|
|
96c89ef63c | ||
|
|
5a131f8bea | ||
|
|
8b5d71dc38 | ||
|
|
76557f6b15 | ||
|
|
b0d63de315 | ||
|
|
71d5a4d22d | ||
|
|
5106903714 | ||
|
|
6d89de31c6 | ||
|
|
56404f9057 | ||
|
|
14165fd6be | ||
|
|
218fd5f9d0 | ||
|
|
226903118a | ||
|
|
94bd33d1bd | ||
|
|
5666a107a0 | ||
|
|
20144545ae | ||
|
|
3aaecb9708 | ||
|
|
86be826644 | ||
|
|
fdb873c6f5 | ||
|
|
280342788a | ||
|
|
ca65f3e7a5 | ||
|
|
ecc814272a | ||
|
|
9d819286cc | ||
|
|
f3a85288a3 | ||
|
|
7ffe3c3031 | ||
|
|
c8cfd3d229 | ||
|
|
9250bb844b | ||
|
|
139f08c1a1 | ||
|
|
9d92bb1271 | ||
|
|
24127d9d8a | ||
|
|
2b5624e994 | ||
|
|
1b63bc2073 | ||
|
|
a6c1f76150 | ||
|
|
e812b82417 | ||
|
|
fa5895a12b | ||
|
|
46733099b4 | ||
|
|
60116314b0 | ||
|
|
6355fee0fd | ||
|
|
fd61bad6b7 | ||
|
|
7c3e1ac39f | ||
|
|
632964b1a7 | ||
|
|
c550068a0d | ||
|
|
bbf7e5b617 | ||
|
|
8c422398c6 | ||
|
|
e94e03d340 | ||
|
|
8b6aeb374d | ||
|
|
53d0cb5b89 | ||
|
|
dcc0e19dc1 | ||
|
|
f6f8819131 | ||
|
|
5151b42fd5 | ||
|
|
c942de0e09 | ||
|
|
688c7afd08 | ||
|
|
44febe5c44 | ||
|
|
e15078e514 | ||
|
|
4e9b0ca646 | ||
|
|
03a8627bf6 | ||
|
|
a680caf9bf | ||
|
|
06336b484f | ||
|
|
40a7fb8f08 | ||
|
|
fe329facca | ||
|
|
bd76aadc94 | ||
|
|
3eaad4e487 | ||
|
|
f19fcfdcb0 | ||
|
|
045c0c5f1f | ||
|
|
c13b7e263a | ||
|
|
0db72b7ea2 | ||
|
|
e08ce90e39 | ||
|
|
4a0f10f75f | ||
|
|
af8b11010a | ||
|
|
fb0cae1827 | ||
|
|
bf68e87589 | ||
|
|
4cf720fb9f | ||
|
|
0febd517eb | ||
|
|
465c15acaa | ||
|
|
31ce65cd76 | ||
|
|
64866fe41c | ||
|
|
264e656e4f | ||
|
|
b6399888ba | ||
|
|
0aa43db532 | ||
|
|
5b26897b8f | ||
|
|
682d7c9a06 | ||
|
|
b008ba9126 | ||
|
|
4e7fb741a2 | ||
|
|
6f6f4dded1 | ||
|
|
a806846a26 | ||
|
|
5cdd8c2e2a | ||
|
|
fb72c20ba6 | ||
|
|
6bb8990b28 | ||
|
|
1e0c401e89 | ||
|
|
254d0c352a | ||
|
|
af1ebedb4d | ||
|
|
1142c3fe58 | ||
|
|
aced59b313 | ||
|
|
eab0833c6b | ||
|
|
2e914e474d | ||
|
|
6c427322c0 | ||
|
|
18b77ce62e | ||
|
|
876553155b | ||
|
|
6e0127a24d | ||
|
|
ab9e5033f2 | ||
|
|
1909c8b617 | ||
|
|
ff55700ce0 | ||
|
|
56725f6043 | ||
|
|
c64937f6c9 | ||
|
|
7c4046b068 | ||
|
|
dbd8c256b9 | ||
|
|
16f8c943a1 | ||
|
|
20fc920f31 | ||
|
|
22f1242f6c | ||
|
|
67237995e6 | ||
|
|
57ab671dce | ||
|
|
0acdf9526c | ||
|
|
ab6cab923b | ||
|
|
e90510463a | ||
|
|
7f8d23473a | ||
|
|
bdbe566805 | ||
|
|
0aff0314c7 | ||
|
|
597a4e8598 | ||
|
|
503b4b32f7 | ||
|
|
1bed9bd372 | ||
|
|
dd1964fd78 | ||
|
|
ce8d5b7041 | ||
|
|
69876eeb2d | ||
|
|
63cdd2c73d | ||
|
|
5b1c29fd94 | ||
|
|
6287e8c1f2 | ||
|
|
076c14c841 | ||
|
|
f2796ba5cc | ||
|
|
0369506cd8 | ||
|
|
6300d60f43 | ||
|
|
58bb327a0c | ||
|
|
ba32268a60 | ||
|
|
28ee1c8093 | ||
|
|
e4c17ad1c3 | ||
|
|
e3f0ad95db | ||
|
|
019c67de16 | ||
|
|
3ea6636ab9 | ||
|
|
35ec037877 | ||
|
|
717d250225 | ||
|
|
e2a9261f18 | ||
|
|
e51c5a6ff0 | ||
|
|
f354495ebc | ||
|
|
c51ab80308 | ||
|
|
cb03091089 | ||
|
|
e16cad68ad | ||
|
|
fef72503bd | ||
|
|
46471ef79c | ||
|
|
e726a72240 | ||
|
|
6f8aa53d7e | ||
|
|
07fdbbe53d | ||
|
|
5bf29d7b78 | ||
|
|
7c10d03451 | ||
|
|
50226ce43a | ||
|
|
aa5c92832c | ||
|
|
91f9ff8520 | ||
|
|
8167181d4d | ||
|
|
5417b08b1e | ||
|
|
5c4d59d038 | ||
|
|
c0b15ae584 | ||
|
|
f60779319e | ||
|
|
24ddbf5cc1 | ||
|
|
b9f86f8b98 | ||
|
|
6957bbbb7c | ||
|
|
a5aba9553f | ||
|
|
f6c6566a51 | ||
|
|
0486afd7a8 | ||
|
|
f1ff706673 | ||
|
|
e451fccd8a | ||
|
|
0283714fd0 | ||
|
|
86896470b9 | ||
|
|
708e49ad66 | ||
|
|
a6d2242b23 | ||
|
|
e5eea7bb4a | ||
|
|
0a26429699 | ||
|
|
f83c0bbef6 | ||
|
|
90d3d3ddaf | ||
|
|
14a9926b15 | ||
|
|
488afba86a | ||
|
|
1bee2fc3c1 | ||
|
|
26d258f43a | ||
|
|
8526a6c113 | ||
|
|
88fd756ce9 | ||
|
|
e40e163c45 | ||
|
|
ab5139c48f | ||
|
|
1c63880df2 | ||
|
|
90385ae596 | ||
|
|
69466a5e70 | ||
|
|
2215a1c39f | ||
|
|
3764094d6d | ||
|
|
6a6d73b16b | ||
|
|
5fb99776bc | ||
|
|
6bc8f962b4 | ||
|
|
66344bae90 | ||
|
|
057243bb88 | ||
|
|
eada4125eb | ||
|
|
1499fb2a7f | ||
|
|
a3e03c5eaf | ||
|
|
3955e0e8a4 | ||
|
|
524b3e364f | ||
|
|
ff43fa4412 | ||
|
|
7d2cf368d1 | ||
|
|
e49034549b | ||
|
|
92719d2231 | ||
|
|
e8647ed58f | ||
|
|
e887dceb91 | ||
|
|
11b2e924f2 | ||
|
|
1d63570fda | ||
|
|
1ce6c637df | ||
|
|
d140683af0 | ||
|
|
7365790187 | ||
|
|
570f5ff2a8 | ||
|
|
2ba6cefe74 | ||
|
|
14ad030646 | ||
|
|
22cc58b856 | ||
|
|
edbbd33e17 | ||
|
|
e7e967242c | ||
|
|
2685a2a7cc | ||
|
|
e1b6217683 | ||
|
|
26fcde5f6c | ||
|
|
8a2f0eb79a | ||
|
|
6e78b74479 | ||
|
|
c9e1c01b98 | ||
|
|
9cc54de4a9 | ||
|
|
1d60321263 | ||
|
|
c14341fb3e | ||
|
|
c3e8536f42 | ||
|
|
cd38968a0d | ||
|
|
f4dc8b7402 | ||
|
|
8725c45023 | ||
|
|
7946f8b87c | ||
|
|
7bc827d8b8 | ||
|
|
921bed6bf3 | ||
|
|
0eac198bf2 | ||
|
|
54c5fe9bac | ||
|
|
118fa5848e | ||
|
|
55301ff06d | ||
|
|
fd97f13fde | ||
|
|
4f171a2fce | ||
|
|
59cfea51bd | ||
|
|
d6c44db96f | ||
|
|
be6d994c1a | ||
|
|
bf459fb17e | ||
|
|
2a5333bd3b | ||
|
|
48f30d684e | ||
|
|
a2d9c8d079 |
43
mozilla/LEGAL
Normal file
43
mozilla/LEGAL
Normal file
@@ -0,0 +1,43 @@
|
||||
Please be apprised of the following Legal Notices:
|
||||
|
||||
A) The U.S. District Court for the Eastern District of Virginia has
|
||||
ruled that the Netscape Navigator code does not infringe Wang's U.S.
|
||||
Patent No. 4,751,669 ("the '669 Patent") because: 1) HTML is not
|
||||
Videotex as defined by the '669 patent; 2) web servers are not central
|
||||
suppliers; and 3) Navigator does not "connect," as defined by the '669
|
||||
Patent, to web servers on the Internet. Wang may appeal this decision to
|
||||
the Federal Circuit. Wang contended that its Patent disclosing a
|
||||
"Videotext" system, is infringed by the following functionality in the
|
||||
Netscape Navigator code: 1) the animated logo and status line indicators
|
||||
--See Claims 1,8 and 9; 2) the "File Save As" function --See Claims
|
||||
23-27; 3) Bookmarks and Rename Bookmarks in the Properties window --See
|
||||
Claims 20-22; 4) storing HTML, GIF, and JPEG files and adding filename
|
||||
extensions --See Claim 38
|
||||
|
||||
B) Intermind owns pending U.S. patent applications on communications
|
||||
systems which employ metadata ("channel objects") to define a control
|
||||
structure for information transfer. The Netscape code does not infringe
|
||||
as released; however, modifications which utilize channel objects as
|
||||
described by Intermind should be considered carefully. The following is
|
||||
a statement from Intermind: "Intermind's claims fundamentally involve
|
||||
the use of a control structure to automate communications. ...The
|
||||
essence of Intermind's top claim is that two devices sender and
|
||||
receiver have persistent storage, communicate over a network,
|
||||
and exchange a control structure including metadata which describes: 1)
|
||||
what information is to be updated, 2) when to update this information,
|
||||
and 3) how to transfer the updated information. In addition, at least
|
||||
the receiving device must be able to process the metadata in order to
|
||||
perform the update determination and transfer. Any digital
|
||||
communications system which incorporates all of these elements will be
|
||||
covered by Intermind's patents." See Intermind.com.
|
||||
|
||||
C) Stac, Inc., and its licensing agent Hi/fn, own several patents which
|
||||
disclose data compression methods implementing an LZS compression
|
||||
algorithm, including U.S. Patent Nos. 4,701,745 and 5,016, 009 ("the
|
||||
Stac Patents"). The Netscape Communicator code does not perform
|
||||
compression. If you modify the Netscape source code to perform
|
||||
compression, please take notice of the Stac Patents.
|
||||
|
||||
D) Netscape Communications Corporation ("Netscape") does not guarantee
|
||||
that any source code or executable code available from the mozilla.org
|
||||
domain is Year 2000 compliant.
|
||||
567
mozilla/LICENSE
Normal file
567
mozilla/LICENSE
Normal file
@@ -0,0 +1,567 @@
|
||||
MOZILLA PUBLIC LICENSE
|
||||
Version 1.1
|
||||
|
||||
---------------
|
||||
|
||||
1. Definitions.
|
||||
|
||||
1.0.1. "Commercial Use" means distribution or otherwise making the
|
||||
Covered Code available to a third party.
|
||||
|
||||
1.1. "Contributor" means each entity that creates or contributes to
|
||||
the creation of Modifications.
|
||||
|
||||
1.2. "Contributor Version" means the combination of the Original
|
||||
Code, prior Modifications used by a Contributor, and the Modifications
|
||||
made by that particular Contributor.
|
||||
|
||||
1.3. "Covered Code" means the Original Code or Modifications or the
|
||||
combination of the Original Code and Modifications, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.4. "Electronic Distribution Mechanism" means a mechanism generally
|
||||
accepted in the software development community for the electronic
|
||||
transfer of data.
|
||||
|
||||
1.5. "Executable" means Covered Code in any form other than Source
|
||||
Code.
|
||||
|
||||
1.6. "Initial Developer" means the individual or entity identified
|
||||
as the Initial Developer in the Source Code notice required by Exhibit
|
||||
A.
|
||||
|
||||
1.7. "Larger Work" means a work which combines Covered Code or
|
||||
portions thereof with code not governed by the terms of this License.
|
||||
|
||||
1.8. "License" means this document.
|
||||
|
||||
1.8.1. "Licensable" means having the right to grant, to the maximum
|
||||
extent possible, whether at the time of the initial grant or
|
||||
subsequently acquired, any and all of the rights conveyed herein.
|
||||
|
||||
1.9. "Modifications" means any addition to or deletion from the
|
||||
substance or structure of either the Original Code or any previous
|
||||
Modifications. When Covered Code is released as a series of files, a
|
||||
Modification is:
|
||||
A. Any addition to or deletion from the contents of a file
|
||||
containing Original Code or previous Modifications.
|
||||
|
||||
B. Any new file that contains any part of the Original Code or
|
||||
previous Modifications.
|
||||
|
||||
1.10. "Original Code" means Source Code of computer software code
|
||||
which is described in the Source Code notice required by Exhibit A as
|
||||
Original Code, and which, at the time of its release under this
|
||||
License is not already Covered Code governed by this License.
|
||||
|
||||
1.10.1. "Patent Claims" means any patent claim(s), now owned or
|
||||
hereafter acquired, including without limitation, method, process,
|
||||
and apparatus claims, in any patent Licensable by grantor.
|
||||
|
||||
1.11. "Source Code" means the preferred form of the Covered Code for
|
||||
making modifications to it, including all modules it contains, plus
|
||||
any associated interface definition files, scripts used to control
|
||||
compilation and installation of an Executable, or source code
|
||||
differential comparisons against either the Original Code or another
|
||||
well known, available Covered Code of the Contributor's choice. The
|
||||
Source Code can be in a compressed or archival form, provided the
|
||||
appropriate decompression or de-archiving software is widely available
|
||||
for no charge.
|
||||
|
||||
1.12. "You" (or "Your") means an individual or a legal entity
|
||||
exercising rights under, and complying with all of the terms of, this
|
||||
License or a future version of this License issued under Section 6.1.
|
||||
For legal entities, "You" includes any entity which controls, is
|
||||
controlled by, or is under common control with You. For purposes of
|
||||
this definition, "control" means (a) the power, direct or indirect,
|
||||
to cause the direction or management of such entity, whether by
|
||||
contract or otherwise, or (b) ownership of more than fifty percent
|
||||
(50%) of the outstanding shares or beneficial ownership of such
|
||||
entity.
|
||||
|
||||
2. Source Code License.
|
||||
|
||||
2.1. The Initial Developer Grant.
|
||||
The Initial Developer hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license, subject to third party intellectual property
|
||||
claims:
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Initial Developer to use, reproduce,
|
||||
modify, display, perform, sublicense and distribute the Original
|
||||
Code (or portions thereof) with or without Modifications, and/or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patents Claims infringed by the making, using or
|
||||
selling of Original Code, to make, have made, use, practice,
|
||||
sell, and offer for sale, and/or otherwise dispose of the
|
||||
Original Code (or portions thereof).
|
||||
|
||||
(c) the licenses granted in this Section 2.1(a) and (b) are
|
||||
effective on the date Initial Developer first distributes
|
||||
Original Code under the terms of this License.
|
||||
|
||||
(d) Notwithstanding Section 2.1(b) above, no patent license is
|
||||
granted: 1) for code that You delete from the Original Code; 2)
|
||||
separate from the Original Code; or 3) for infringements caused
|
||||
by: i) the modification of the Original Code or ii) the
|
||||
combination of the Original Code with other software or devices.
|
||||
|
||||
2.2. Contributor Grant.
|
||||
Subject to third party intellectual property claims, each Contributor
|
||||
hereby grants You a world-wide, royalty-free, non-exclusive license
|
||||
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Contributor, to use, reproduce, modify,
|
||||
display, perform, sublicense and distribute the Modifications
|
||||
created by such Contributor (or portions thereof) either on an
|
||||
unmodified basis, with other Modifications, as Covered Code
|
||||
and/or as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims infringed by the making, using, or
|
||||
selling of Modifications made by that Contributor either alone
|
||||
and/or in combination with its Contributor Version (or portions
|
||||
of such combination), to make, use, sell, offer for sale, have
|
||||
made, and/or otherwise dispose of: 1) Modifications made by that
|
||||
Contributor (or portions thereof); and 2) the combination of
|
||||
Modifications made by that Contributor with its Contributor
|
||||
Version (or portions of such combination).
|
||||
|
||||
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
|
||||
effective on the date Contributor first makes Commercial Use of
|
||||
the Covered Code.
|
||||
|
||||
(d) Notwithstanding Section 2.2(b) above, no patent license is
|
||||
granted: 1) for any code that Contributor has deleted from the
|
||||
Contributor Version; 2) separate from the Contributor Version;
|
||||
3) for infringements caused by: i) third party modifications of
|
||||
Contributor Version or ii) the combination of Modifications made
|
||||
by that Contributor with other software (except as part of the
|
||||
Contributor Version) or other devices; or 4) under Patent Claims
|
||||
infringed by Covered Code in the absence of Modifications made by
|
||||
that Contributor.
|
||||
|
||||
3. Distribution Obligations.
|
||||
|
||||
3.1. Application of License.
|
||||
The Modifications which You create or to which You contribute are
|
||||
governed by the terms of this License, including without limitation
|
||||
Section 2.2. The Source Code version of Covered Code may be
|
||||
distributed only under the terms of this License or a future version
|
||||
of this License released under Section 6.1, and You must include a
|
||||
copy of this License with every copy of the Source Code You
|
||||
distribute. You may not offer or impose any terms on any Source Code
|
||||
version that alters or restricts the applicable version of this
|
||||
License or the recipients' rights hereunder. However, You may include
|
||||
an additional document offering the additional rights described in
|
||||
Section 3.5.
|
||||
|
||||
3.2. Availability of Source Code.
|
||||
Any Modification which You create or to which You contribute must be
|
||||
made available in Source Code form under the terms of this License
|
||||
either on the same media as an Executable version or via an accepted
|
||||
Electronic Distribution Mechanism to anyone to whom you made an
|
||||
Executable version available; and if made available via Electronic
|
||||
Distribution Mechanism, must remain available for at least twelve (12)
|
||||
months after the date it initially became available, or at least six
|
||||
(6) months after a subsequent version of that particular Modification
|
||||
has been made available to such recipients. You are responsible for
|
||||
ensuring that the Source Code version remains available even if the
|
||||
Electronic Distribution Mechanism is maintained by a third party.
|
||||
|
||||
3.3. Description of Modifications.
|
||||
You must cause all Covered Code to which You contribute to contain a
|
||||
file documenting the changes You made to create that Covered Code and
|
||||
the date of any change. You must include a prominent statement that
|
||||
the Modification is derived, directly or indirectly, from Original
|
||||
Code provided by the Initial Developer and including the name of the
|
||||
Initial Developer in (a) the Source Code, and (b) in any notice in an
|
||||
Executable version or related documentation in which You describe the
|
||||
origin or ownership of the Covered Code.
|
||||
|
||||
3.4. Intellectual Property Matters
|
||||
(a) Third Party Claims.
|
||||
If Contributor has knowledge that a license under a third party's
|
||||
intellectual property rights is required to exercise the rights
|
||||
granted by such Contributor under Sections 2.1 or 2.2,
|
||||
Contributor must include a text file with the Source Code
|
||||
distribution titled "LEGAL" which describes the claim and the
|
||||
party making the claim in sufficient detail that a recipient will
|
||||
know whom to contact. If Contributor obtains such knowledge after
|
||||
the Modification is made available as described in Section 3.2,
|
||||
Contributor shall promptly modify the LEGAL file in all copies
|
||||
Contributor makes available thereafter and shall take other steps
|
||||
(such as notifying appropriate mailing lists or newsgroups)
|
||||
reasonably calculated to inform those who received the Covered
|
||||
Code that new knowledge has been obtained.
|
||||
|
||||
(b) Contributor APIs.
|
||||
If Contributor's Modifications include an application programming
|
||||
interface and Contributor has knowledge of patent licenses which
|
||||
are reasonably necessary to implement that API, Contributor must
|
||||
also include this information in the LEGAL file.
|
||||
|
||||
(c) Representations.
|
||||
Contributor represents that, except as disclosed pursuant to
|
||||
Section 3.4(a) above, Contributor believes that Contributor's
|
||||
Modifications are Contributor's original creation(s) and/or
|
||||
Contributor has sufficient rights to grant the rights conveyed by
|
||||
this License.
|
||||
|
||||
3.5. Required Notices.
|
||||
You must duplicate the notice in Exhibit A in each file of the Source
|
||||
Code. If it is not possible to put such notice in a particular Source
|
||||
Code file due to its structure, then You must include such notice in a
|
||||
location (such as a relevant directory) where a user would be likely
|
||||
to look for such a notice. If You created one or more Modification(s)
|
||||
You may add your name as a Contributor to the notice described in
|
||||
Exhibit A. You must also duplicate this License in any documentation
|
||||
for the Source Code where You describe recipients' rights or ownership
|
||||
rights relating to Covered Code. You may choose to offer, and to
|
||||
charge a fee for, warranty, support, indemnity or liability
|
||||
obligations to one or more recipients of Covered Code. However, You
|
||||
may do so only on Your own behalf, and not on behalf of the Initial
|
||||
Developer or any Contributor. You must make it absolutely clear than
|
||||
any such warranty, support, indemnity or liability obligation is
|
||||
offered by You alone, and You hereby agree to indemnify the Initial
|
||||
Developer and every Contributor for any liability incurred by the
|
||||
Initial Developer or such Contributor as a result of warranty,
|
||||
support, indemnity or liability terms You offer.
|
||||
|
||||
3.6. Distribution of Executable Versions.
|
||||
You may distribute Covered Code in Executable form only if the
|
||||
requirements of Section 3.1-3.5 have been met for that Covered Code,
|
||||
and if You include a notice stating that the Source Code version of
|
||||
the Covered Code is available under the terms of this License,
|
||||
including a description of how and where You have fulfilled the
|
||||
obligations of Section 3.2. The notice must be conspicuously included
|
||||
in any notice in an Executable version, related documentation or
|
||||
collateral in which You describe recipients' rights relating to the
|
||||
Covered Code. You may distribute the Executable version of Covered
|
||||
Code or ownership rights under a license of Your choice, which may
|
||||
contain terms different from this License, provided that You are in
|
||||
compliance with the terms of this License and that the license for the
|
||||
Executable version does not attempt to limit or alter the recipient's
|
||||
rights in the Source Code version from the rights set forth in this
|
||||
License. If You distribute the Executable version under a different
|
||||
license You must make it absolutely clear that any terms which differ
|
||||
from this License are offered by You alone, not by the Initial
|
||||
Developer or any Contributor. You hereby agree to indemnify the
|
||||
Initial Developer and every Contributor for any liability incurred by
|
||||
the Initial Developer or such Contributor as a result of any such
|
||||
terms You offer.
|
||||
|
||||
3.7. Larger Works.
|
||||
You may create a Larger Work by combining Covered Code with other code
|
||||
not governed by the terms of this License and distribute the Larger
|
||||
Work as a single product. In such a case, You must make sure the
|
||||
requirements of this License are fulfilled for the Covered Code.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation.
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Code due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description
|
||||
must be included in the LEGAL file described in Section 3.4 and must
|
||||
be included with all distributions of the Source Code. Except to the
|
||||
extent prohibited by statute or regulation, such description must be
|
||||
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||
understand it.
|
||||
|
||||
5. Application of this License.
|
||||
|
||||
This License applies to code to which the Initial Developer has
|
||||
attached the notice in Exhibit A and to related Covered Code.
|
||||
|
||||
6. Versions of the License.
|
||||
|
||||
6.1. New Versions.
|
||||
Netscape Communications Corporation ("Netscape") may publish revised
|
||||
and/or new versions of the License from time to time. Each version
|
||||
will be given a distinguishing version number.
|
||||
|
||||
6.2. Effect of New Versions.
|
||||
Once Covered Code has been published under a particular version of the
|
||||
License, You may always continue to use it under the terms of that
|
||||
version. You may also choose to use such Covered Code under the terms
|
||||
of any subsequent version of the License published by Netscape. No one
|
||||
other than Netscape has the right to modify the terms applicable to
|
||||
Covered Code created under this License.
|
||||
|
||||
6.3. Derivative Works.
|
||||
If You create or use a modified version of this License (which you may
|
||||
only do in order to apply it to code which is not already Covered Code
|
||||
governed by this License), You must (a) rename Your license so that
|
||||
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
|
||||
"MPL", "NPL" or any confusingly similar phrase do not appear in your
|
||||
license (except to note that your license differs from this License)
|
||||
and (b) otherwise make it clear that Your version of the license
|
||||
contains terms which differ from the Mozilla Public License and
|
||||
Netscape Public License. (Filling in the name of the Initial
|
||||
Developer, Original Code or Contributor in the notice described in
|
||||
Exhibit A shall not of themselves be deemed to be modifications of
|
||||
this License.)
|
||||
|
||||
7. DISCLAIMER OF WARRANTY.
|
||||
|
||||
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
|
||||
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
|
||||
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
|
||||
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
|
||||
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
|
||||
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
|
||||
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
|
||||
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||
|
||||
8. TERMINATION.
|
||||
|
||||
8.1. This License and the rights granted hereunder will terminate
|
||||
automatically if You fail to comply with terms herein and fail to cure
|
||||
such breach within 30 days of becoming aware of the breach. All
|
||||
sublicenses to the Covered Code which are properly granted shall
|
||||
survive any termination of this License. Provisions which, by their
|
||||
nature, must remain in effect beyond the termination of this License
|
||||
shall survive.
|
||||
|
||||
8.2. If You initiate litigation by asserting a patent infringement
|
||||
claim (excluding declatory judgment actions) against Initial Developer
|
||||
or a Contributor (the Initial Developer or Contributor against whom
|
||||
You file such action is referred to as "Participant") alleging that:
|
||||
|
||||
(a) such Participant's Contributor Version directly or indirectly
|
||||
infringes any patent, then any and all rights granted by such
|
||||
Participant to You under Sections 2.1 and/or 2.2 of this License
|
||||
shall, upon 60 days notice from Participant terminate prospectively,
|
||||
unless if within 60 days after receipt of notice You either: (i)
|
||||
agree in writing to pay Participant a mutually agreeable reasonable
|
||||
royalty for Your past and future use of Modifications made by such
|
||||
Participant, or (ii) withdraw Your litigation claim with respect to
|
||||
the Contributor Version against such Participant. If within 60 days
|
||||
of notice, a reasonable royalty and payment arrangement are not
|
||||
mutually agreed upon in writing by the parties or the litigation claim
|
||||
is not withdrawn, the rights granted by Participant to You under
|
||||
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
|
||||
the 60 day notice period specified above.
|
||||
|
||||
(b) any software, hardware, or device, other than such Participant's
|
||||
Contributor Version, directly or indirectly infringes any patent, then
|
||||
any rights granted to You by such Participant under Sections 2.1(b)
|
||||
and 2.2(b) are revoked effective as of the date You first made, used,
|
||||
sold, distributed, or had made, Modifications made by that
|
||||
Participant.
|
||||
|
||||
8.3. If You assert a patent infringement claim against Participant
|
||||
alleging that such Participant's Contributor Version directly or
|
||||
indirectly infringes any patent where such claim is resolved (such as
|
||||
by license or settlement) prior to the initiation of patent
|
||||
infringement litigation, then the reasonable value of the licenses
|
||||
granted by such Participant under Sections 2.1 or 2.2 shall be taken
|
||||
into account in determining the amount or value of any payment or
|
||||
license.
|
||||
|
||||
8.4. In the event of termination under Sections 8.1 or 8.2 above,
|
||||
all end user license agreements (excluding distributors and resellers)
|
||||
which have been validly granted by You or any distributor hereunder
|
||||
prior to termination shall survive termination.
|
||||
|
||||
9. LIMITATION OF LIABILITY.
|
||||
|
||||
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
|
||||
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
|
||||
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
|
||||
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
|
||||
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
||||
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
|
||||
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
|
||||
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
|
||||
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
|
||||
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
|
||||
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
|
||||
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
10. U.S. GOVERNMENT END USERS.
|
||||
|
||||
The Covered Code is a "commercial item," as that term is defined in
|
||||
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
|
||||
software" and "commercial computer software documentation," as such
|
||||
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
|
||||
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
|
||||
all U.S. Government End Users acquire Covered Code with only those
|
||||
rights set forth herein.
|
||||
|
||||
11. MISCELLANEOUS.
|
||||
|
||||
This License represents the complete agreement concerning subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. This License shall be governed by
|
||||
California law provisions (except to the extent applicable law, if
|
||||
any, provides otherwise), excluding its conflict-of-law provisions.
|
||||
With respect to disputes in which at least one party is a citizen of,
|
||||
or an entity chartered or registered to do business in the United
|
||||
States of America, any litigation relating to this License shall be
|
||||
subject to the jurisdiction of the Federal Courts of the Northern
|
||||
District of California, with venue lying in Santa Clara County,
|
||||
California, with the losing party responsible for costs, including
|
||||
without limitation, court costs and reasonable attorneys' fees and
|
||||
expenses. The application of the United Nations Convention on
|
||||
Contracts for the International Sale of Goods is expressly excluded.
|
||||
Any law or regulation which provides that the language of a contract
|
||||
shall be construed against the drafter shall not apply to this
|
||||
License.
|
||||
|
||||
12. RESPONSIBILITY FOR CLAIMS.
|
||||
|
||||
As between Initial Developer and the Contributors, each party is
|
||||
responsible for claims and damages arising, directly or indirectly,
|
||||
out of its utilization of rights under this License and You agree to
|
||||
work with Initial Developer and Contributors to distribute such
|
||||
responsibility on an equitable basis. Nothing herein is intended or
|
||||
shall be deemed to constitute any admission of liability.
|
||||
|
||||
13. MULTIPLE-LICENSED CODE.
|
||||
|
||||
Initial Developer may designate portions of the Covered Code as
|
||||
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
||||
Developer permits you to utilize portions of the Covered Code under
|
||||
Your choice of the NPL or the alternative licenses, if any, specified
|
||||
by the Initial Developer in the file described in Exhibit A.
|
||||
|
||||
EXHIBIT A -Mozilla Public License.
|
||||
|
||||
``The contents of this file are subject to the Mozilla Public License
|
||||
Version 1.1 (the "License"); you may not use this file except in
|
||||
compliance with the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS"
|
||||
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing rights and limitations
|
||||
under the License.
|
||||
|
||||
The Original Code is ______________________________________.
|
||||
|
||||
The Initial Developer of the Original Code is ________________________.
|
||||
Portions created by ______________________ are Copyright (C) ______
|
||||
_______________________. All Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms
|
||||
of the _____ license (the "[___] License"), in which case the
|
||||
provisions of [______] License are applicable instead of those
|
||||
above. If you wish to allow use of your version of this file only
|
||||
under the terms of the [____] License and not to allow others to use
|
||||
your version of this file under the MPL, indicate your decision by
|
||||
deleting the provisions above and replace them with the notice and
|
||||
other provisions required by the [___] License. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file
|
||||
under either the MPL or the [___] License."
|
||||
|
||||
[NOTE: The text of this Exhibit A may differ slightly from the text of
|
||||
the notices in the Source Code files of the Original Code. You should
|
||||
use the text of this Exhibit A rather than the text found in the
|
||||
Original Code Source Code for Your Modifications.]
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
AMENDMENTS
|
||||
|
||||
The Netscape Public License Version 1.1 ("NPL") consists of the
|
||||
Mozilla Public License Version 1.1 with the following Amendments,
|
||||
including Exhibit A-Netscape Public License. Files identified with
|
||||
"Exhibit A-Netscape Public License" are governed by the Netscape
|
||||
Public License Version 1.1.
|
||||
|
||||
Additional Terms applicable to the Netscape Public License.
|
||||
I. Effect.
|
||||
These additional terms described in this Netscape Public
|
||||
License -- Amendments shall apply to the Mozilla Communicator
|
||||
client code and to all Covered Code under this License.
|
||||
|
||||
II. "Netscape's Branded Code" means Covered Code that Netscape
|
||||
distributes and/or permits others to distribute under one or more
|
||||
trademark(s) which are controlled by Netscape but which are not
|
||||
licensed for use under this License.
|
||||
|
||||
III. Netscape and logo.
|
||||
This License does not grant any rights to use the trademarks
|
||||
"Netscape", the "Netscape N and horizon" logo or the "Netscape
|
||||
lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
|
||||
"Smart Browsing" even if such marks are included in the Original
|
||||
Code or Modifications.
|
||||
|
||||
IV. Inability to Comply Due to Contractual Obligation.
|
||||
Prior to licensing the Original Code under this License, Netscape
|
||||
has licensed third party code for use in Netscape's Branded Code.
|
||||
To the extent that Netscape is limited contractually from making
|
||||
such third party code available under this License, Netscape may
|
||||
choose to reintegrate such code into Covered Code without being
|
||||
required to distribute such code in Source Code form, even if
|
||||
such code would otherwise be considered "Modifications" under
|
||||
this License.
|
||||
|
||||
V. Use of Modifications and Covered Code by Initial Developer.
|
||||
V.1. In General.
|
||||
The obligations of Section 3 apply to Netscape, except to
|
||||
the extent specified in this Amendment, Section V.2 and V.3.
|
||||
|
||||
V.2. Other Products.
|
||||
Netscape may include Covered Code in products other than the
|
||||
Netscape's Branded Code which are released by Netscape
|
||||
during the two (2) years following the release date of the
|
||||
Original Code, without such additional products becoming
|
||||
subject to the terms of this License, and may license such
|
||||
additional products on different terms from those contained
|
||||
in this License.
|
||||
|
||||
V.3. Alternative Licensing.
|
||||
Netscape may license the Source Code of Netscape's Branded
|
||||
Code, including Modifications incorporated therein, without
|
||||
such Netscape Branded Code becoming subject to the terms of
|
||||
this License, and may license such Netscape Branded Code on
|
||||
different terms from those contained in this License.
|
||||
|
||||
VI. Litigation.
|
||||
Notwithstanding the limitations of Section 11 above, the
|
||||
provisions regarding litigation in Section 11(a), (b) and (c) of
|
||||
the License shall apply to all disputes relating to this License.
|
||||
|
||||
EXHIBIT A-Netscape Public License.
|
||||
|
||||
"The contents of this file are subject to the Netscape Public
|
||||
License Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License. You may obtain a copy of
|
||||
the License at http://www.mozilla.org/NPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS
|
||||
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
implied. See the License for the specific language governing
|
||||
rights and limitations under the License.
|
||||
|
||||
The Original Code is Mozilla Communicator client code, released
|
||||
March 31, 1998.
|
||||
|
||||
The Initial Developer of the Original Code is Netscape
|
||||
Communications Corporation. Portions created by Netscape are
|
||||
Copyright (C) 1998-1999 Netscape Communications Corporation. All
|
||||
Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
|
||||
Alternatively, the contents of this file may be used under the
|
||||
terms of the _____ license (the "[___] License"), in which case
|
||||
the provisions of [______] License are applicable instead of
|
||||
those above. If you wish to allow use of your version of this
|
||||
file only under the terms of the [____] License and not to allow
|
||||
others to use your version of this file under the NPL, indicate
|
||||
your decision by deleting the provisions above and replace them
|
||||
with the notice and other provisions required by the [___]
|
||||
License. If you do not delete the provisions above, a recipient
|
||||
may use your version of this file under either the NPL or the
|
||||
[___] License."
|
||||
194
mozilla/Makefile.in
Normal file
194
mozilla/Makefile.in
Normal file
@@ -0,0 +1,194 @@
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
DEPTH = .
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
include $(topsrcdir)/build/unix/modules.mk
|
||||
|
||||
ifneq ($(BUILD_MODULES),all)
|
||||
|
||||
DIRS = $(BUILD_MODULE_DIRS)
|
||||
EXPORT_DIRS = $(BUILD_MODULE_DEP_DIRS)
|
||||
|
||||
else
|
||||
|
||||
DIRS = config build
|
||||
|
||||
ifdef MOZ_JAVA_SUPPLEMENT
|
||||
DIRS += \
|
||||
java/util \
|
||||
java/webclient \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
# boehm needs to be built before XPCOM
|
||||
ifdef GC_LEAK_DETECTOR
|
||||
DIRS += gc/boehm
|
||||
endif
|
||||
|
||||
DIRS += $(NSPRPUB_DIR)
|
||||
|
||||
DIRS += dbm modules/libreg js string xpcom js/src/xpconnect
|
||||
|
||||
ifdef MOZ_OJI
|
||||
DIRS += js/src/liveconnect
|
||||
endif
|
||||
|
||||
ifdef MOZ_JSDEBUGGER
|
||||
DIRS += js/jsd
|
||||
endif
|
||||
|
||||
ifndef MOZ_NATIVE_ZLIB
|
||||
DIRS += modules/zlib
|
||||
endif
|
||||
|
||||
ifndef MOZ_NATIVE_JPEG
|
||||
DIRS += jpeg
|
||||
endif
|
||||
|
||||
ifdef MOZ_ENABLE_XLIB
|
||||
DIRS += gfx/src/xlibrgb widget/src/xlibxtbin
|
||||
endif
|
||||
|
||||
ifdef MOZ_ENABLE_GTK
|
||||
DIRS += widget/src/gtksuperwin widget/src/gtkxtbin
|
||||
endif
|
||||
|
||||
# Linux and Solaris installer needs standalone libjar, hence standalone zlib
|
||||
ifneq (,$(filter Linux SunOS,$(OS_ARCH)))
|
||||
DIRS += modules/zlib/standalone
|
||||
endif
|
||||
|
||||
DIRS += \
|
||||
widget/timer \
|
||||
include \
|
||||
modules/libutil \
|
||||
netwerk \
|
||||
modules/mpfilelocprovider \
|
||||
uriloader \
|
||||
intl \
|
||||
modules/libpref \
|
||||
modules/libimg \
|
||||
modules/oji \
|
||||
modules/libjar \
|
||||
caps \
|
||||
rdf \
|
||||
expat \
|
||||
htmlparser \
|
||||
gfx \
|
||||
$(NULL)
|
||||
|
||||
ifdef USE_IMG2
|
||||
DIRS += gfx2 modules/libpr0n
|
||||
endif
|
||||
|
||||
DIRS += \
|
||||
modules/plugin \
|
||||
dom \
|
||||
view \
|
||||
widget \
|
||||
content \
|
||||
layout \
|
||||
db \
|
||||
docshell \
|
||||
webshell \
|
||||
embedding \
|
||||
editor \
|
||||
sun-java \
|
||||
profile \
|
||||
themes \
|
||||
accessible \
|
||||
$(NULL)
|
||||
|
||||
# This must preceed xpfe
|
||||
ifdef MOZ_JPROF
|
||||
DIRS += tools/jprof
|
||||
endif
|
||||
|
||||
ifdef MOZ_BUILD_XPFE
|
||||
DIRS += xpfe
|
||||
endif
|
||||
|
||||
DIRS += xpinstall
|
||||
|
||||
ifdef MOZ_PSM
|
||||
ifdef MOZ_NSS_AUTOCONF
|
||||
DIRS += security/nss
|
||||
endif
|
||||
DIRS += security/manager
|
||||
endif
|
||||
|
||||
ifdef MOZ_EXTENSIONS
|
||||
DIRS += extensions
|
||||
endif
|
||||
|
||||
ifdef MOZ_MAIL_NEWS
|
||||
DIRS += mailnews
|
||||
endif
|
||||
|
||||
ifdef MOZ_LEAKY
|
||||
DIRS += tools/leaky
|
||||
endif
|
||||
|
||||
ifdef ENABLE_TESTS
|
||||
DIRS += xpcom/tests
|
||||
endif
|
||||
|
||||
ifdef MOZ_LDAP_XPCOM
|
||||
DIRS += directory/c-sdk/ldap directory/xpcom
|
||||
endif
|
||||
|
||||
DIRS += l10n
|
||||
|
||||
ifdef MOZ_STATIC_COMPONENTS
|
||||
DIRS += modules/staticmod
|
||||
endif
|
||||
|
||||
DIRS += xpfe/bootstrap
|
||||
|
||||
endif # BUILD_MODULES == all
|
||||
|
||||
STATIC_MAKEFILES := $(NSPRPUB_DIR) directory/c-sdk/ldap
|
||||
|
||||
ifdef MOZ_PSM
|
||||
STATIC_MAKEFILES += security/nss
|
||||
endif
|
||||
|
||||
GARBAGE_DIRS += dist
|
||||
DIST_GARBAGE = config.cache config.log config.status config-defs.h \
|
||||
dependencies.beos config/autoconf.mk config/myrules.mk config/myconfig.mk \
|
||||
unallmakefiles \
|
||||
$(topsrcdir)/.mozconfig.mk $(topsrcdir)/.mozconfig.out
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
export::
|
||||
+$(LOOP_OVER_EXPORT_DIRS)
|
||||
|
||||
distclean::
|
||||
cat unallmakefiles | $(XARGS) rm -f
|
||||
rm -f unallmakefiles $(DIST_GARBAGE)
|
||||
|
||||
2
mozilla/README/IBMChangeLog
Normal file
2
mozilla/README/IBMChangeLog
Normal file
@@ -0,0 +1,2 @@
|
||||
Pursuant to section 3.3 of the MPL, this file will contain a list of the files
|
||||
that have been modified by IBM Corporation.
|
||||
3
mozilla/README/mozilla/README.build
Normal file
3
mozilla/README/mozilla/README.build
Normal file
@@ -0,0 +1,3 @@
|
||||
For mozilla-the-client build instructions, please read:
|
||||
http://www.mozilla.org/build/
|
||||
|
||||
32
mozilla/accessible/Makefile.in
Normal file
32
mozilla/accessible/Makefile.in
Normal file
@@ -0,0 +1,32 @@
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
DEPTH = ..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
DIRS = public src build
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
165
mozilla/accessible/accessible-docs.html
Normal file
165
mozilla/accessible/accessible-docs.html
Normal file
@@ -0,0 +1,165 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
How the Accessible Module works
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>How the Accessible module (accessibility.dll) works</h1>
|
||||
<ul>
|
||||
<p>
|
||||
The <a href="http://lxr.mozilla.org/seamonkey/source/accessible/">Accessible module</a> is where we implement support for the <a href="http://www.microsoft.com/enable/msaa/">Microsoft Active Accessibility (MSAA) API</a>
|
||||
(<a href="http://bugzilla.mozilla.org/show_bug.cgi?id=12952">bug 12952</a>).
|
||||
Support for Sun's <a href="http://www.sun.com/access/gnome/">Gnome Accessibility API</a> is part of our future plans as well.
|
||||
</p>
|
||||
</ul>
|
||||
<h2>What is MSAA?</h2>
|
||||
<ul>
|
||||
<p>
|
||||
A 3rd part accessibility aid, such as a screen reader, wants to track what's happening inside Mozilla. It needs to know about
|
||||
focus changes and other events, and it needs to know whtat data nodes there are in the layout tree.
|
||||
Using this information,
|
||||
the screen reader will speak out loud important changes to the document or UI, and allow the user to track
|
||||
where they navigate. Some screen readers also magnify text and images in the currently focused area, and others
|
||||
show information on a <a href="http://www.audiodata.de/e/produkte/pc/lapbraille/">refreshable braille display</a>.
|
||||
</p>
|
||||
<p>
|
||||
In Windows, accesibility aids acquires the necessary information to do this using hacks and MSAA. MSAA is supposed
|
||||
to be the "right way" for accessibility aids to get information, but sometimes the hacks are more effective.
|
||||
For example, screen readers look for screen draws of a vertical blinking line, to determine the location of the caret.
|
||||
Without doing this, screen readers would not be able to let the user know where there caret has moved to in most programs,
|
||||
because so many applications do not use the system caret (ours is an example). This is so commonly done, that
|
||||
no one even bothers to support the MSAA caret, because the hack works.
|
||||
</p>
|
||||
<p>
|
||||
MSAA provides information in two different ways:
|
||||
<ol>
|
||||
<li>a COM interface (IAccessible) that allows applications to expose the tree of data nodes that make up
|
||||
each window in the user interface currently being interacted with and</li>
|
||||
<li> a set of system messages
|
||||
that confer accessibility-related events such as focus changes, changes to document content and alerts.</li>
|
||||
</ol>
|
||||
</p>
|
||||
<p>
|
||||
To really learn about MSAA, you need to download
|
||||
the entire <a href="http://www.microsoft.com/enable/msaa/download.htm">MSAA SDK</a>.
|
||||
Without downloading the SDK, you won't get the complete documentation.
|
||||
The SDK also contains some very useful tools, such as the Accessible Event Watcher, which shows what accessible
|
||||
events are being generated by a given piece of software. The Accessible Explorer and Inspect Object tools
|
||||
show the tree of data nodes the Accessible object is exposing through COM.
|
||||
</p>
|
||||
</ul>
|
||||
<h2>IAccessible Interface</h2>
|
||||
<ul>
|
||||
<p>
|
||||
The IAccessible interface is used in a tree of IAccessible's, each one representing a data node, similar to a DOM.
|
||||
</p>
|
||||
<p>
|
||||
Here are the methods supported in IAccessible:
|
||||
<ul>
|
||||
<li>get_accParent: Get the parent of an IAccessible.</li>
|
||||
<li>get_accChildCount: Get the number of children of an IAccesible.</li>
|
||||
<li>get_accChild: Get the child of an Iaccessible.</li>
|
||||
<li>get_accName: Get the "name" of the IAccessible, for example the name of a button, checkbox or menuitem.</li>
|
||||
<li>get_accValue: Get the "value" of the IAccessible, for example a number in a slider, a URL for a link, the text a user entered in a field.</li>
|
||||
<li>get_accDescription: Get a long description of the current IAccessible. This is not really too useful.</li>
|
||||
<li>get_accRole: Get an enumerated value representing what this IAccessible is used for, for example.</li>
|
||||
is it a link, static text, editable text, a checkbox, or a table cell, etc.</li>
|
||||
<li>get_accState: a 32 bit field representing possible on/off states, such as focused, fousable, selected, selectable, visible, protected (for passwords),
|
||||
checked, etc. </li>
|
||||
<li>get_accHelp: Get context sensitive help for the IAccessible.</li>
|
||||
<li>get_accHelpTopic: We don't use this, it's only if the Windows help system is used.</li>
|
||||
<li>get_accKeyboardShortcut: What is the keyboard shortcut for this IAccessible.</li>
|
||||
<li>get_accFocus: Not sure, why aren't states used for this.</li>
|
||||
<li>get_accSelection: Hmm...</li>
|
||||
<li>get_accDefaultAction: Get a description or name of the default action for this component, such as "jump" for links.</li>
|
||||
|
||||
<li>accSelect: Select the item associated with this IAccessible.</li>
|
||||
<li>accLocation: Get the x,y coordinates, and the height and width of this IAccessible node.</li>
|
||||
<li>accNavigate: Navigate up, down, left or right from this IAccessible.</li>
|
||||
<li>accHitTest: Find out what IAccessible exists and a specific coordinate.</li>
|
||||
<li>accDoDefaultAction: Perform the action described by get_accDefaultAction.</li>
|
||||
<li>put_accName: Change the name.</li>
|
||||
<li>put_accValue: Change the value.</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
Rather than directly implement IAccessible with an Accessible class, we have chosen to proxy to our own interface,
|
||||
called nsIAccessible, which is more robust. It has the capability of supporting other new accessibility API's such
|
||||
as Sun's Gnome Accessiblity API. Our nsIAccessible implementation can proxy further to a variety of classes, each specialized for a particular kind of
|
||||
widget or data node.
|
||||
</p>
|
||||
<ul>
|
||||
<li>IAccessible (MSAA) is implemented by Accessible, which proxies to nsIAccessible (Mozilla's API)</li>
|
||||
<li>IAccessible is also implemented by RootAccessible, representing the root IAccessible for a window,
|
||||
and also proxies to an nsIAccessible. In this case nsIAccessible will be implemented by nsRootAccessible.</li>
|
||||
</ul>
|
||||
<p>
|
||||
The first thing that happens when an accessibility aid wants to watch our application is it sends the main application
|
||||
window a <a href="http://lxr.mozilla.org/seamonkey/search?string=WM_GETOBJECT">WM_GETOBJECT</a> message requesting an IAccessible for the window. This event is received in mozilla/widget/src/windows/nsWindow.cpp.
|
||||
We send back an IAccessible interface that represents that root window. The accessibility aid will use
|
||||
that IAccessible to get at the rest of the tree, by asking for it's children IAccessibles, asking the children for the
|
||||
grandchildren IAccessibles, and so on. Until this WM_GETOBJECT message is processed, the accessibility.dll is not loaded,
|
||||
so there is almost zero overhead for accessibility in Mozilla.
|
||||
</p>
|
||||
<p>
|
||||
To create a RootAccessible IAccessible for the window we get a <a href="http://lxr.mozilla.org/seamonkey/search?string=WM_GETOBJECT">WM_GETOBJECT</a> message in, nsWindow.cpp first generates an internal event
|
||||
called <a href="http://lxr.mozilla.org/seamonkey/search?string=NS_GETACCESSIBLE">NS_GETACCESSIBLE</a>, which is handled in nsFrame.cpp via the creation of an nsRootAccessible implementation of the nsIAccessible interface.
|
||||
Next the new RootAccessible is created. RootAccessible and Accessible are both implemented
|
||||
in <a href="http://lxr.mozilla.org/seamonkey/source/widget/source/windows/Accessible.cpp">
|
||||
mozilla/widget/src/windows/Accessible.cpp</a>).
|
||||
</P>
|
||||
|
||||
<p>
|
||||
The impementation for nsIAccessible knows how
|
||||
to walk Mozilla's content DOM and frame tree, exposing only the objects that are needed for accessibility.
|
||||
Essentially, nsAccessible knows what it needs to expose by QueryInterfacing the DOM node's primary frame for
|
||||
an nsIAccessible. If it gets one, it's considered an accessible object. A frame that wishes to return
|
||||
an nsIAccessible when QI'd for it, creates one of the correct type on the fly using nsIAccessibilityService.
|
||||
</p>
|
||||
<p>
|
||||
The specific implementations
|
||||
of nsIAccessible for each widget or content type inherit from nsGenericAccessible, which simply returns
|
||||
NS_ERROR_NOT_IMPLEMENTED for every method. The specific implementation then overrides those methods
|
||||
it wishes to implement, and does nothing for those methods it wants the default behavior for.
|
||||
For example, the default behavior for nsIAccessible::getAccFirstChild is to
|
||||
instantial a nsDOMTreeWalker, and ask it for the first child. It doesn't need to do this, however, for images,
|
||||
because an implementation exists for nsHTMLImageAccessible::getAccFirstChild (returns the first image map area
|
||||
for the image if one exists).
|
||||
</p>
|
||||
|
||||
</ul>
|
||||
<h2>MSAA Events</h2>
|
||||
<ul>
|
||||
<p>
|
||||
When an accessibility-related event occurs within an application such as Mozilla, it must use NotifyWinEvent from
|
||||
the Win32 API. NotifyWinEvent is passed arguments for the window the event occured in, and the number of the child
|
||||
within that window. Accessibility aids use a WIN32 call to register as a listener for these events.
|
||||
</p>
|
||||
<p>
|
||||
The accessibility aid is choose which events it is interested in learning more about by sending a window a WM_????
|
||||
event requesting the IAccessible to the node corresponding to the
|
||||
child number that had been indicated from NotifyWinEvent. In Mozilla, this creates a problem. We cannot
|
||||
keep track of a child number for every important accessible node in a document. We deal with this by generating fake
|
||||
child IDs for the most recent accessibile events that we have generated, in a circular array.
|
||||
</p>
|
||||
<p>
|
||||
Since there is a RootAccessible for each top level window that might generate MSAA events, that's where we do the bookkeeping
|
||||
for these events and their nsIAccessible's. Whenever NotifyWinEvent is called, a new fake ID is generated (We use
|
||||
negative numbers for the fake IDs). When the callback comes to request the IAccessible for that child number,
|
||||
we check the circular array for that ID, and voila, we have the corresponding nsIAccessible to proxy.
|
||||
</p>
|
||||
<p>
|
||||
Every RootAccessible has an nsRootAccessible which is an nsIAccessibleEventReceiver. The RootAccessible
|
||||
uses this to register itself as an nsIAccessibleEventListener. In the end, nsRootAccessible registers itself as a listener
|
||||
of Mozilla's internal and DOM events. It's HandleEvent routine translates these events into MSAA events, and passes them along to
|
||||
with an nsIAccessible to the original RootAccessible::HandleEvent
|
||||
which turns that nsIAccessible into a NotifyWinEvent call, complete with a fake child ID.
|
||||
</p>
|
||||
<p>
|
||||
Most MSAA events aren't utilized by accessibility aids. Therefore we implement only the handful that matter.
|
||||
The most important event is the focus event, followed by name, state and value change events.
|
||||
</p>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
51
mozilla/accessible/build/Makefile.in
Normal file
51
mozilla/accessible/build/Makefile.in
Normal file
@@ -0,0 +1,51 @@
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = accessibility
|
||||
LIBRARY_NAME = accessibility
|
||||
EXPORT_LIBRARY = 1
|
||||
SHORT_LIBNAME = access
|
||||
IS_COMPONENT = 1
|
||||
REQUIRES = xpcom string dom
|
||||
|
||||
CPPSRCS = nsAccessibilityFactory.cpp
|
||||
|
||||
LOCAL_INCLUDES = -I$(srcdir)/../src
|
||||
|
||||
SHARED_LIBRARY_LIBS = \
|
||||
$(DIST)/lib/libaccessibility_s.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/libchrome_s.$(LIB_SUFFIX) \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_DSO_LDOPTS = \
|
||||
$(MOZ_COMPONENT_LIBS) \
|
||||
-lgkgfx \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
47
mozilla/accessible/build/makefile.win
Normal file
47
mozilla/accessible/build/makefile.win
Normal file
@@ -0,0 +1,47 @@
|
||||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
DEPTH=..\..
|
||||
MODULE=accessibility
|
||||
|
||||
MAKE_OBJ_TYPE=DLL
|
||||
DLLNAME=accessibility
|
||||
DLL=.\$(OBJDIR)\$(DLLNAME).dll
|
||||
|
||||
CPP_OBJS=\
|
||||
.\$(OBJDIR)\nsAccessibilityFactory.obj \
|
||||
$(NULL)
|
||||
|
||||
LINCS = $(LINCS) -I..\src # for implementation headers
|
||||
|
||||
LLIBS=\
|
||||
$(DIST)\lib\xpcom.lib \
|
||||
$(DIST)\lib\accessibility_s.lib \
|
||||
$(DIST)\lib\timer_s.lib \
|
||||
$(DIST)\lib\gkgfxwin.lib \
|
||||
$(LIBNSPR)
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
|
||||
install:: $(DLL)
|
||||
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin\components
|
||||
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).lib $(DIST)\lib
|
||||
|
||||
60
mozilla/accessible/build/nsAccessibilityFactory.cpp
Normal file
60
mozilla/accessible/build/nsAccessibilityFactory.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIModule.h"
|
||||
#include "nsIGenericFactory.h"
|
||||
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIComponentManager.h"
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nscore.h"
|
||||
|
||||
static NS_IMETHODIMP
|
||||
NS_ConstructAccessibilityService(nsISupports *aOuter, REFNSIID aIID, void **aResult)
|
||||
{
|
||||
nsresult rv;
|
||||
NS_ASSERTION(aOuter == nsnull, "no aggregation");
|
||||
nsIAccessibilityService* accessibility;
|
||||
rv = NS_NewAccessibilityService(&accessibility);
|
||||
if (NS_FAILED(rv)) {
|
||||
NS_ERROR("Unable to construct chrome registry");
|
||||
return rv;
|
||||
}
|
||||
rv = accessibility->QueryInterface(aIID, aResult);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to find correct interface");
|
||||
NS_RELEASE(accessibility);
|
||||
return rv;
|
||||
}
|
||||
|
||||
// The list of components we register
|
||||
static nsModuleComponentInfo components[] =
|
||||
{
|
||||
{ "AccessibilityService",
|
||||
NS_ACCESSIBILITY_SERVICE_CID,
|
||||
"@mozilla.org/accessibilityService;1",
|
||||
NS_ConstructAccessibilityService
|
||||
},
|
||||
};
|
||||
|
||||
NS_IMPL_NSGETMODULE(nsAccessibilityModule, components);
|
||||
|
||||
BIN
mozilla/accessible/macbuild/accessible.mcp
Normal file
BIN
mozilla/accessible/macbuild/accessible.mcp
Normal file
Binary file not shown.
BIN
mozilla/accessible/macbuild/accessibleIDL.mcp
Normal file
BIN
mozilla/accessible/macbuild/accessibleIDL.mcp
Normal file
Binary file not shown.
26
mozilla/accessible/makefile.win
Normal file
26
mozilla/accessible/makefile.win
Normal file
@@ -0,0 +1,26 @@
|
||||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
DEPTH=..
|
||||
|
||||
DIRS= public src build
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
2
mozilla/accessible/public/MANIFEST
Normal file
2
mozilla/accessible/public/MANIFEST
Normal file
@@ -0,0 +1,2 @@
|
||||
nsIAccessibilityService.idl
|
||||
nsIAccessible.idl
|
||||
40
mozilla/accessible/public/Makefile.in
Normal file
40
mozilla/accessible/public/Makefile.in
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = accessibility
|
||||
XPIDL_MODULE= accessibility
|
||||
|
||||
XPIDLSRCS = \
|
||||
nsIAccessibilityService.idl \
|
||||
nsIAccessible.idl \
|
||||
nsIAccessibleEventReceiver.idl \
|
||||
nsIAccessibleEventListener.idl \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
33
mozilla/accessible/public/makefile.win
Normal file
33
mozilla/accessible/public/makefile.win
Normal file
@@ -0,0 +1,33 @@
|
||||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
DEPTH=..\..
|
||||
MODULE=accessibility
|
||||
XPIDL_MODULE=accessibility
|
||||
|
||||
XPIDLSRCS = \
|
||||
.\nsIAccessibilityService.idl \
|
||||
.\nsIAccessible.idl \
|
||||
.\nsIAccessibleEventReceiver.idl \
|
||||
.\nsIAccessibleEventListener.idl \
|
||||
$(NULL)
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
59
mozilla/accessible/public/nsIAccessibilityService.idl
Normal file
59
mozilla/accessible/public/nsIAccessibilityService.idl
Normal file
@@ -0,0 +1,59 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: Eric Vaughan (evaughan@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
#include "domstubs.idl"
|
||||
#include "nsIAtom.idl"
|
||||
#include "domstubs.idl"
|
||||
#include "nsIAccessible.idl"
|
||||
|
||||
[scriptable, uuid(68D9720A-0984-42b6-A3F5-8237ED925727)]
|
||||
interface nsIAccessibilityService : nsISupports
|
||||
{
|
||||
nsIAccessible createRootAccessible(in nsISupports aPresContext, in nsISupports aFrame);
|
||||
nsIAccessible createHTMLSelectAccessible(in nsIAtom aAccessible, in nsIDOMNode aNode, in nsISupports aPresShell);
|
||||
nsIAccessible createHTMLCheckboxAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLRadioButtonAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLButtonAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTML4ButtonAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLTextAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLImageAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLAreaAccessible(in nsISupports aPresShell, in nsIDOMNode aDOMNode, in nsIAccessible aAccParent);
|
||||
nsIAccessible createHTMLTableAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLTableCellAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLTextFieldAccessible(in nsISupports aFrame);
|
||||
nsIAccessible createHTMLIFrameAccessible(in nsIDOMNode aNode, in nsISupports aPresContext);
|
||||
};
|
||||
|
||||
|
||||
%{ C++
|
||||
|
||||
// for component registration
|
||||
// {DE401C37-9A7F-4278-A6F8-3DE2833989EF}
|
||||
#define NS_ACCESSIBILITY_SERVICE_CID \
|
||||
{ 0xde401c37, 0x9a7f, 0x4278, { 0xa6, 0xf8, 0x3d, 0xe2, 0x83, 0x39, 0x89, 0xef } }
|
||||
|
||||
extern nsresult
|
||||
NS_NewAccessibilityService(nsIAccessibilityService** aResult);
|
||||
%}
|
||||
190
mozilla/accessible/public/nsIAccessible.idl
Normal file
190
mozilla/accessible/public/nsIAccessible.idl
Normal file
@@ -0,0 +1,190 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: Eric D Vaughan (evaughan@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
* Aaron Leventhal
|
||||
* John Gaunt
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
#include "nsIDOMNode.idl"
|
||||
|
||||
[scriptable, uuid(B26FBE47-9A5F-42a1-822B-082461AE4D6D)]
|
||||
interface nsIAccessible : nsISupports
|
||||
{
|
||||
nsIAccessible getAccParent();
|
||||
nsIAccessible getAccNextSibling();
|
||||
nsIAccessible getAccPreviousSibling();
|
||||
nsIAccessible getAccFirstChild();
|
||||
nsIAccessible getAccLastChild();
|
||||
|
||||
long getAccChildCount();
|
||||
wstring getAccName();
|
||||
wstring getAccValue();
|
||||
void setAccName(in wstring name);
|
||||
void setAccValue(in wstring value);
|
||||
|
||||
wstring getAccDescription();
|
||||
unsigned long getAccRole();
|
||||
unsigned long getAccState();
|
||||
unsigned long getAccExtState();
|
||||
|
||||
wstring getAccHelp();
|
||||
nsIAccessible getAccFocused();
|
||||
|
||||
nsIAccessible accGetAt(in long x, in long y);
|
||||
|
||||
nsIAccessible accNavigateRight();
|
||||
nsIAccessible accNavigateLeft();
|
||||
nsIAccessible accNavigateUp();
|
||||
nsIAccessible accNavigateDown();
|
||||
|
||||
void accGetBounds(out long x,
|
||||
out long y,
|
||||
out long width,
|
||||
out long height);
|
||||
|
||||
void accAddSelection();
|
||||
void accRemoveSelection();
|
||||
void accExtendSelection();
|
||||
void accTakeSelection();
|
||||
void accTakeFocus();
|
||||
|
||||
PRUint8 getAccNumActions();
|
||||
wstring getAccActionName(in PRUint8 index);
|
||||
void accDoAction(in PRUint8 index); // Action number 0 is the default action
|
||||
|
||||
nsIDOMNode accGetDOMNode();
|
||||
|
||||
// MSAA State flags - used for bitfield. More than 1 allowed.
|
||||
const unsigned long STATE_UNAVAILABLE = 0x00000001; // Disabled, maps to opposite of Java ENABLED, Gnome/ATK SENSITIVE?
|
||||
const unsigned long STATE_SELECTED = 0x00000002;
|
||||
const unsigned long STATE_FOCUSED = 0x00000004;
|
||||
const unsigned long STATE_PRESSED = 0x00000008;
|
||||
const unsigned long STATE_CHECKED = 0x00000010;
|
||||
const unsigned long STATE_MIXED = 0x00000020; // 3-state checkbox or toolbar button
|
||||
const unsigned long STATE_READONLY = 0x00000040; // Maps to opposite of Java/Gnome/ATK EDITABLE state
|
||||
const unsigned long STATE_HOTTRACKED = 0x00000080;
|
||||
const unsigned long STATE_DEFAULT = 0x00000100;
|
||||
const unsigned long STATE_EXPANDED = 0x00000200;
|
||||
const unsigned long STATE_COLLAPSED = 0x00000400;
|
||||
const unsigned long STATE_BUSY = 0x00000800;
|
||||
const unsigned long STATE_FLOATING = 0x00001000; // Children "owned" not "contained" by parent
|
||||
const unsigned long STATE_MARQUEED = 0x00002000;
|
||||
const unsigned long STATE_ANIMATED = 0x00004000;
|
||||
const unsigned long STATE_INVISIBLE = 0x00008000;
|
||||
const unsigned long STATE_OFFSCREEN = 0x00010000;
|
||||
const unsigned long STATE_SIZEABLE = 0x00020000;
|
||||
const unsigned long STATE_MOVEABLE = 0x00040000;
|
||||
const unsigned long STATE_SELFVOICING = 0x00080000;
|
||||
const unsigned long STATE_FOCUSABLE = 0x00100000;
|
||||
const unsigned long STATE_SELECTABLE = 0x00200000;
|
||||
const unsigned long STATE_LINKED = 0x00400000;
|
||||
const unsigned long STATE_TRAVERSED = 0x00800000;
|
||||
const unsigned long STATE_MULTISELECTABLE = 0x01000000; // Supports multiple selection
|
||||
const unsigned long STATE_EXTSELECTABLE = 0x02000000; // Supports extended selection
|
||||
const unsigned long STATE_ALERT_LOW = 0x04000000; // This information is of low priority
|
||||
const unsigned long STATE_ALERT_MEDIUM = 0x08000000; // This information is of medium priority
|
||||
const unsigned long STATE_ALERT_HIGH = 0x10000000; // This information is of high priority
|
||||
const unsigned long STATE_PROTECTED = 0x20000000; // Maps to Gnome's *Role* ATK_ROLE_PASSWD_TEXT, nothing for Java?
|
||||
const unsigned long STATE_HASPOPUP = 0x40000000; // New in MSAA 2.0
|
||||
|
||||
// Extended state flags (for now non-MSAA, for Java and Gnome/ATK support)
|
||||
// This is only the states that there isn't already a mapping for in MSAA
|
||||
// See www.accessmozilla.org/article.php?sid=11 for information on the mappings between accessibility API states
|
||||
const unsigned long STATE_INVALID = 0x00200000; // No explanation given
|
||||
const unsigned long STATE_ACTIVE = 0x00400000; // This window is currently the active window
|
||||
const unsigned long STATE_EXPANDABLE = 0x00800000; // An item that can be expanded, such as a tree item with children
|
||||
const unsigned long STATE_MODAL = 0x01000000; // Must do something with control before leaving it
|
||||
const unsigned long STATE_MULTI_LINE = 0x02000000; // Edit control that can take multiple lines
|
||||
const unsigned long STATE_SENSITIVE = 0x04000000; // No explanation given
|
||||
const unsigned long STATE_RESIZABLE = 0x08000000; // Object can be resized
|
||||
const unsigned long STATE_SHOWING = 0x10000000; // This object and all of it's ancestors are visible
|
||||
const unsigned long STATE_SINGLE_LINE = 0x20000000; // This text object can only contain 1 line of text
|
||||
const unsigned long STATE_TRANSIENT = 0x40000000; // Tells accessibility aid "Don't add event listener - this object doesn't generate any". For example, could be used with higher level containers.
|
||||
const unsigned long STATE_VERTICAL = 0x80000000; // Especially used for sliders and scrollbars
|
||||
|
||||
|
||||
// MSAA Roles - only one per nsIAccessible or IAccessible
|
||||
const unsigned long ROLE_TITLEBAR = 0x00000001;
|
||||
const unsigned long ROLE_MENUBAR = 0x00000002;
|
||||
const unsigned long ROLE_SCROLLBAR = 0x00000003;
|
||||
const unsigned long ROLE_GRIP = 0x00000004;
|
||||
const unsigned long ROLE_SOUND = 0x00000005;
|
||||
const unsigned long ROLE_CURSOR = 0x00000006;
|
||||
const unsigned long ROLE_CARET = 0x00000007;
|
||||
const unsigned long ROLE_ALERT = 0x00000008;
|
||||
const unsigned long ROLE_WINDOW = 0x00000009;
|
||||
const unsigned long ROLE_CLIENT = 0x0000000A;
|
||||
const unsigned long ROLE_MENUPOPUP = 0x0000000B;
|
||||
const unsigned long ROLE_MENUITEM = 0x0000000C;
|
||||
const unsigned long ROLE_TOOLTIP = 0x0000000D;
|
||||
const unsigned long ROLE_APPLICATION = 0x0000000E;
|
||||
const unsigned long ROLE_DOCUMENT = 0x0000000F;
|
||||
const unsigned long ROLE_PANE = 0x00000010;
|
||||
const unsigned long ROLE_CHART = 0x00000011;
|
||||
const unsigned long ROLE_DIALOG = 0x00000012;
|
||||
const unsigned long ROLE_BORDER = 0x00000013;
|
||||
const unsigned long ROLE_GROUPING = 0x00000014;
|
||||
const unsigned long ROLE_SEPARATOR = 0x00000015;
|
||||
const unsigned long ROLE_TOOLBAR = 0x00000016;
|
||||
const unsigned long ROLE_STATUSBAR = 0x00000017;
|
||||
const unsigned long ROLE_TABLE = 0x00000018;
|
||||
const unsigned long ROLE_COLUMNHEADER = 0x00000019;
|
||||
const unsigned long ROLE_ROWHEADER = 0x0000001A;
|
||||
const unsigned long ROLE_COLUMN = 0x0000001B;
|
||||
const unsigned long ROLE_ROW = 0x0000001C;
|
||||
const unsigned long ROLE_CELL = 0x0000001D;
|
||||
const unsigned long ROLE_LINK = 0x0000001E;
|
||||
const unsigned long ROLE_HELPBALLOON = 0x0000001F;
|
||||
const unsigned long ROLE_CHARACTER = 0x00000020;
|
||||
const unsigned long ROLE_LIST = 0x00000021;
|
||||
const unsigned long ROLE_LISTITEM = 0x00000022;
|
||||
const unsigned long ROLE_OUTLINE = 0x00000023;
|
||||
const unsigned long ROLE_OUTLINEITEM = 0x00000024;
|
||||
const unsigned long ROLE_PAGETAB = 0x00000025;
|
||||
const unsigned long ROLE_PROPERTYPAGE = 0x00000026;
|
||||
const unsigned long ROLE_INDICATOR = 0x00000027;
|
||||
const unsigned long ROLE_GRAPHIC = 0x00000028;
|
||||
const unsigned long ROLE_STATICTEXT = 0x00000029;
|
||||
const unsigned long ROLE_TEXT = 0x0000002A; // Editable, selectable, etc.
|
||||
const unsigned long ROLE_PUSHBUTTON = 0x0000002B;
|
||||
const unsigned long ROLE_CHECKBUTTON = 0x0000002C;
|
||||
const unsigned long ROLE_RADIOBUTTON = 0x0000002D;
|
||||
const unsigned long ROLE_COMBOBOX = 0x0000002E;
|
||||
const unsigned long ROLE_DROPLIST = 0x0000002F;
|
||||
const unsigned long ROLE_PROGRESSBAR = 0x00000030;
|
||||
const unsigned long ROLE_DIAL = 0x00000031;
|
||||
const unsigned long ROLE_HOTKEYFIELD = 0x00000032;
|
||||
const unsigned long ROLE_SLIDER = 0x00000033;
|
||||
const unsigned long ROLE_SPINBUTTON = 0x00000034;
|
||||
const unsigned long ROLE_DIAGRAM = 0x00000035;
|
||||
const unsigned long ROLE_ANIMATION = 0x00000036;
|
||||
const unsigned long ROLE_EQUATION = 0x00000037;
|
||||
const unsigned long ROLE_BUTTONDROPDOWN = 0x00000038;
|
||||
const unsigned long ROLE_BUTTONMENU = 0x00000039;
|
||||
const unsigned long ROLE_BUTTONDROPDOWNGRID = 0x0000003A;
|
||||
const unsigned long ROLE_WHITESPACE = 0x0000003B;
|
||||
const unsigned long ROLE_PAGETABLIST = 0x0000003C;
|
||||
const unsigned long ROLE_CLOCK = 0x0000003D;
|
||||
const unsigned long ROLE_SPLITBUTTON = 0x0000003E; // New in MSAA 2.0
|
||||
const unsigned long ROLE_IPADDRESS = 0x0000003F; // New in MSAA 2.0
|
||||
};
|
||||
41
mozilla/accessible/public/nsIAccessibleEventListener.idl
Normal file
41
mozilla/accessible/public/nsIAccessibleEventListener.idl
Normal file
@@ -0,0 +1,41 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: Eric D Vaughan (evaughan@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
#include "nsIAccessible.idl"
|
||||
|
||||
[scriptable, uuid(BEE49E7D-9D06-49bf-8984-1694C697D74F)]
|
||||
interface nsIAccessibleEventListener : nsISupports
|
||||
{
|
||||
// these are set to the values given by MSAA
|
||||
const unsigned long EVENT_FOCUS = 0x8005;
|
||||
const unsigned long EVENT_STATE_CHANGE = 0x800A;
|
||||
const unsigned long EVENT_NAME_CHANGE = 0x800C;
|
||||
const unsigned long EVENT_SELECTION = 0x8006;
|
||||
const unsigned long EVENT_SELECTION_ADD = 0x8007;
|
||||
const unsigned long EVENT_SELECTION_REMOVE = 0x8008;
|
||||
const unsigned long EVENT_SELECTION_WITHIN = 0x8009;
|
||||
|
||||
void handleEvent(in unsigned long aEvent, in nsIAccessible aTarget);
|
||||
};
|
||||
32
mozilla/accessible/public/nsIAccessibleEventReceiver.idl
Normal file
32
mozilla/accessible/public/nsIAccessibleEventReceiver.idl
Normal file
@@ -0,0 +1,32 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: Eric D Vaughan (evaughan@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsIAccessibleEventListener.idl"
|
||||
|
||||
[scriptable, uuid(AB331E47-4FAA-4a12-9480-9B480DD78B39)]
|
||||
interface nsIAccessibleEventReceiver : nsISupports
|
||||
{
|
||||
void addAccessibleEventListener(in nsIAccessibleEventListener aListener);
|
||||
void removeAccessibleEventListener(in nsIAccessibleEventListener aListener);
|
||||
};
|
||||
1
mozilla/accessible/src/MANIFEST
Normal file
1
mozilla/accessible/src/MANIFEST
Normal file
@@ -0,0 +1 @@
|
||||
accessible.properties
|
||||
53
mozilla/accessible/src/Makefile.in
Normal file
53
mozilla/accessible/src/Makefile.in
Normal file
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = accessibility
|
||||
LIBRARY_NAME = accessibility_s
|
||||
REQUIRES = xpcom string layout widget dom view locale gfx2 js intl docshell webshell necko uriloader htmlparser
|
||||
|
||||
CPPSRCS = \
|
||||
nsAccessible.cpp \
|
||||
nsAccessibilityService.cpp \
|
||||
nsRootAccessible.cpp \
|
||||
nsHTMLIFrameRootAccessible.cpp \
|
||||
nsHTMLFormControlAccessible.cpp \
|
||||
nsHTMLTextAccessible.cpp \
|
||||
nsHTMLTableAccessible.cpp \
|
||||
nsHTMLImageAccessible.cpp \
|
||||
nsHTMLAreaAccessible.cpp \
|
||||
nsHTMLLinkAccessible.cpp \
|
||||
nsSelectAccessible.cpp \
|
||||
nsGenericAccessible.cpp \
|
||||
$(NULL)
|
||||
|
||||
# we don't want the shared lib, but we want to force the creation of a static lib.
|
||||
override NO_SHARED_LIB=1
|
||||
override NO_STATIC_LIB=
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
5
mozilla/accessible/src/accessible.properties
Normal file
5
mozilla/accessible/src/accessible.properties
Normal file
@@ -0,0 +1,5 @@
|
||||
jump = Jump
|
||||
press = Press
|
||||
check = Check
|
||||
uncheck = Uncheck
|
||||
select = Select
|
||||
1
mozilla/accessible/src/base/MANIFEST
Normal file
1
mozilla/accessible/src/base/MANIFEST
Normal file
@@ -0,0 +1 @@
|
||||
accessible.properties
|
||||
5
mozilla/accessible/src/base/accessible.properties
Normal file
5
mozilla/accessible/src/base/accessible.properties
Normal file
@@ -0,0 +1,5 @@
|
||||
jump = Jump
|
||||
press = Press
|
||||
check = Check
|
||||
uncheck = Uncheck
|
||||
select = Select
|
||||
3
mozilla/accessible/src/base/jar.mn
Normal file
3
mozilla/accessible/src/base/jar.mn
Normal file
@@ -0,0 +1,3 @@
|
||||
en-US.jar:
|
||||
locale/en-US/global/accessible.properties
|
||||
|
||||
393
mozilla/accessible/src/base/nsAccessibilityService.cpp
Normal file
393
mozilla/accessible/src/base/nsAccessibilityService.cpp
Normal file
@@ -0,0 +1,393 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: David W. Hyatt (hyatt@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nsAccessibilityService.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsHTMLFormControlAccessible.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
#include "nsSelectAccessible.h"
|
||||
#include "nsHTMLTextAccessible.h"
|
||||
#include "nsHTMLTableAccessible.h"
|
||||
#include "nsHTMLImageAccessible.h"
|
||||
#include "nsHTMLAreaAccessible.h"
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
|
||||
// IFrame
|
||||
#include "nsIDocShell.h"
|
||||
#include "nsHTMLIFrameRootAccessible.h"
|
||||
|
||||
//--------------------
|
||||
|
||||
|
||||
nsAccessibilityService::nsAccessibilityService()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
//printf("################################## nsAccessibilityService\n");
|
||||
}
|
||||
|
||||
nsAccessibilityService::~nsAccessibilityService()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_THREADSAFE_ISUPPORTS1(nsAccessibilityService, nsIAccessibilityService);
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsIAccessibilityService methods:
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAccessibilityService::CreateRootAccessible(nsISupports* aPresContext, nsISupports* aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* f = NS_STATIC_CAST(nsIFrame*, aFrame);
|
||||
|
||||
nsCOMPtr<nsIPresContext> c(do_QueryInterface(aPresContext));
|
||||
NS_ASSERTION(c,"Error non prescontext passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresShell> s;
|
||||
c->GetShell(getter_AddRefs(s));
|
||||
|
||||
NS_ASSERTION(s,"Error not presshell!!");
|
||||
|
||||
nsCOMPtr<nsIWeakReference> wr (getter_AddRefs(NS_GetWeakReference(s)));
|
||||
|
||||
//printf("################################## CreateRootAccessible\n");
|
||||
*_retval = new nsRootAccessible(wr);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAccessibilityService::CreateHTMLSelectAccessible(nsIAtom* aPopupAtom, nsIDOMNode* node, nsISupports* aPresContext, nsIAccessible **_retval)
|
||||
{
|
||||
/*
|
||||
nsCOMPtr<nsIContent> n(do_QueryInterface(node));
|
||||
NS_ASSERTION(n,"Error non nsIContent passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresContext> c(do_QueryInterface(aPresContext));
|
||||
NS_ASSERTION(c,"Error non prescontext passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresShell> s;
|
||||
c->GetShell(getter_AddRefs(s));
|
||||
|
||||
nsCOMPtr<nsIWeakReference> wr = getter_AddRefs(NS_GetWeakReference(s));
|
||||
|
||||
*_retval = new nsSelectAccessible(aPopupAtom, nsnull, node, wr);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
*/
|
||||
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLCheckboxAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLCheckboxAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLCheckboxAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMRadioButtonAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLRadioButtonAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLRadioButtonAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLButtonAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLButtonAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLButtonAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTML4ButtonAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTML4ButtonAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTML4ButtonAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLTextAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTextAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
//printf("################################## CreateHTMLTextAccessible\n");
|
||||
*_retval = new nsHTMLTextAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible createHTMLTableAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTableAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLTableAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLTableCellAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTableCellAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLTableCellAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLImageAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLImageAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr<nsIImageFrame> imageFrame(do_QueryInterface(aFrame));
|
||||
if (!imageFrame)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
*_retval = new nsHTMLImageAccessible(shell, node, imageFrame);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLAreaAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLAreaAccessible(nsISupports *aShell, nsIDOMNode *aDOMNode, nsIAccessible *aAccParent,
|
||||
nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryInterface(aShell));
|
||||
|
||||
*_retval = new nsHTMLAreaAccessible(shell, aDOMNode, aAccParent);
|
||||
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLTextFieldAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTextFieldAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLTextFieldAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAccessibilityService::GetInfo(nsISupports* aFrame, nsIFrame** aRealFrame, nsIPresShell** aShell, nsIDOMNode** aNode)
|
||||
{
|
||||
*aRealFrame = NS_STATIC_CAST(nsIFrame*, aFrame);
|
||||
nsCOMPtr<nsIContent> content;
|
||||
(*aRealFrame)->GetContent(getter_AddRefs(content));
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
*aNode = node;
|
||||
NS_ADDREF(*aNode);
|
||||
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
content->GetDocument(*getter_AddRefs(document));
|
||||
if (!document)
|
||||
return NS_ERROR_FAILURE;
|
||||
if (!document)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
#ifdef DEBUG
|
||||
PRInt32 shells = document->GetNumberOfShells();
|
||||
NS_ASSERTION(shells > 0,"Error no shells!");
|
||||
#endif
|
||||
|
||||
*aShell = document->GetShellAt(0);
|
||||
NS_IF_ADDREF(*aShell);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAccessibilityService::CreateHTMLIFrameAccessible(nsIDOMNode* node, nsISupports* aPresContext, nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(node));
|
||||
NS_ASSERTION(content,"Error non nsIContent passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresContext> presContext(do_QueryInterface(aPresContext));
|
||||
NS_ASSERTION(presContext,"Error non prescontext passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresShell> presShell;
|
||||
presContext->GetShell(getter_AddRefs(presShell));
|
||||
NS_ASSERTION(presShell,"Error non PresShell passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIWeakReference> weakRef (getter_AddRefs(NS_GetWeakReference(presShell)));
|
||||
|
||||
nsCOMPtr<nsIDocument> doc;
|
||||
if (NS_SUCCEEDED(content->GetDocument(*getter_AddRefs(doc))) && doc) {
|
||||
nsCOMPtr<nsIPresShell> presShell = getter_AddRefs(doc->GetShellAt(0));
|
||||
if (presShell) {
|
||||
nsCOMPtr<nsISupports> supps;
|
||||
presShell->GetSubShellFor(content, getter_AddRefs(supps));
|
||||
if (supps) {
|
||||
nsCOMPtr<nsIDocShell> docShell(do_QueryInterface(supps));
|
||||
if (docShell) {
|
||||
nsCOMPtr<nsIPresShell> ps;
|
||||
docShell->GetPresShell(getter_AddRefs(ps));
|
||||
if (ps) {
|
||||
nsCOMPtr<nsIWeakReference> wr (getter_AddRefs(NS_GetWeakReference(ps)));
|
||||
//printf("################################## CreateHTMLIFrameAccessible\n");
|
||||
|
||||
nsCOMPtr<nsIAccessible> root = new nsHTMLIFrameRootAccessible(wr,node);
|
||||
*_retval = new nsHTMLIFrameAccessible(presShell, node, root);
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsresult
|
||||
NS_NewAccessibilityService(nsIAccessibilityService** aResult)
|
||||
{
|
||||
NS_PRECONDITION(aResult != nsnull, "null ptr");
|
||||
if (! aResult)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
nsAccessibilityService* a = new nsAccessibilityService();
|
||||
if (a == nsnull)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
NS_ADDREF(a);
|
||||
*aResult = a;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
53
mozilla/accessible/src/base/nsAccessibilityService.h
Normal file
53
mozilla/accessible/src/base/nsAccessibilityService.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
*
|
||||
* Original Author: David W. Hyatt (hyatt@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef __nsAccessibilityService_h__
|
||||
#define __nsAccessibilityService_h__
|
||||
|
||||
#include "nsIAccessibilityService.h"
|
||||
class nsIFrame;
|
||||
class nsIPresShell;
|
||||
class nsIDOMNode;
|
||||
|
||||
class nsAccessibilityService : public nsIAccessibilityService
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
// nsIAccessibilityService methods:
|
||||
NS_DECL_NSIACCESSIBILITYSERVICE
|
||||
|
||||
// nsAccessibilityService methods:
|
||||
nsAccessibilityService();
|
||||
virtual ~nsAccessibilityService();
|
||||
|
||||
public:
|
||||
|
||||
private:
|
||||
NS_IMETHOD GetInfo(nsISupports* aFrame, nsIFrame** aRealFrame, nsIPresShell** aShell, nsIDOMNode** aContent);
|
||||
|
||||
};
|
||||
|
||||
#endif /* __nsIccessibilityService_h__ */
|
||||
1782
mozilla/accessible/src/base/nsAccessible.cpp
Normal file
1782
mozilla/accessible/src/base/nsAccessible.cpp
Normal file
File diff suppressed because it is too large
Load Diff
114
mozilla/accessible/src/base/nsAccessible.h
Normal file
114
mozilla/accessible/src/base/nsAccessible.h
Normal file
@@ -0,0 +1,114 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsAccessible_H_
|
||||
#define _nsAccessible_H_
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIFocusController.h"
|
||||
#include "nsRect.h"
|
||||
#include "nsPoint.h"
|
||||
|
||||
#define ACCESSIBLE_BUNDLE_URL "chrome://global/locale/accessible.properties"
|
||||
|
||||
class nsIFrame;
|
||||
class nsIDocShell;
|
||||
class nsIWebShell;
|
||||
class nsIContent;
|
||||
|
||||
class nsAccessible : public nsIAccessible
|
||||
// public nsIAccessibleWidgetAccess
|
||||
{
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
// nsIAccessibilityService methods:
|
||||
NS_DECL_NSIACCESSIBLE
|
||||
|
||||
public:
|
||||
nsAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual ~nsAccessible();
|
||||
|
||||
virtual void GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList) { aList = nsnull; }
|
||||
|
||||
// Helper Routines for Sub-Docs
|
||||
static nsresult GetDocShellFromPS(nsIPresShell* aPresShell, nsIDocShell** aDocShell);
|
||||
static nsresult GetDocShellObjects(nsIDocShell* aDocShell,
|
||||
nsIPresShell** aPresShell,
|
||||
nsIPresContext** aPresContext,
|
||||
nsIContent** aContent);
|
||||
static nsresult GetDocShells(nsIPresShell* aPresShell,
|
||||
nsIDocShell** aDocShell,
|
||||
nsIDocShell** aParentDocShell);
|
||||
static nsresult GetParentPresShellAndContent(nsIPresShell* aPresShell,
|
||||
nsIPresShell** aParentPresShell,
|
||||
nsIContent** aSubShellContent);
|
||||
|
||||
static PRBool FindContentForWebShell(nsIPresShell* aParentPresShell,
|
||||
nsIContent* aParentContent,
|
||||
nsIWebShell* aWebShell,
|
||||
nsIContent** aFoundContent);
|
||||
nsresult CalcOffset(nsIFrame* aFrame,
|
||||
nsIPresContext * aPresContext,
|
||||
nsRect& aRect);
|
||||
nsresult GetAbsPosition(nsIPresShell* aPresShell, nsPoint& aPoint);
|
||||
nsresult GetAbsoluteFramePosition(nsIPresContext* aPresContext,
|
||||
nsIFrame *aFrame,
|
||||
nsRect& aAbsoluteTwipsRect,
|
||||
nsRect& aAbsolutePixelRect);
|
||||
static nsresult GetTranslatedString(PRUnichar *aKey, nsAWritableString *aStringOut);
|
||||
protected:
|
||||
virtual nsIFrame* GetFrame();
|
||||
virtual nsIFrame* GetBoundsFrame();
|
||||
virtual void GetBounds(nsRect& aRect, nsIFrame** aRelativeFrame);
|
||||
virtual void GetPresContext(nsCOMPtr<nsIPresContext>& aContext);
|
||||
virtual nsIAccessible* CreateNewNextAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewPreviousAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewParentAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewLastAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
|
||||
// Data Members
|
||||
nsCOMPtr<nsIDOMNode> mDOMNode;
|
||||
nsCOMPtr<nsIWeakReference> mPresShell;
|
||||
nsCOMPtr<nsIAccessible> mAccessible;
|
||||
nsCOMPtr<nsIFocusController> mFocusController;
|
||||
};
|
||||
|
||||
/* Special Accessible that knows how to handle hit detection for flowing text */
|
||||
class nsHTMLBlockAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLBlockAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
NS_IMETHOD AccGetAt(PRInt32 x, PRInt32 y, nsIAccessible **_retval);
|
||||
protected:
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aFrame, nsIWeakReference* aShell);
|
||||
};
|
||||
|
||||
#endif
|
||||
596
mozilla/accessible/src/base/nsGenericAccessible.cpp
Normal file
596
mozilla/accessible/src/base/nsGenericAccessible.cpp
Normal file
@@ -0,0 +1,596 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsIEventStateManager.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIWeakReference.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsILink.h"
|
||||
|
||||
#include "nsIContent.h"
|
||||
#include "nsITextContent.h"
|
||||
#include "nsIDOMComment.h"
|
||||
#include "nsIStyleContext.h"
|
||||
#include "nsStyleConsts.h"
|
||||
#include "nsIDOMHTMLImageElement.h"
|
||||
#include "nsIDOMHTMLInputElement.h"
|
||||
#include "nsIDOMHTMLBRElement.h"
|
||||
#include "nsIAtom.h"
|
||||
#include "nsHTMLAtoms.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsGUIEvent.h"
|
||||
|
||||
/* Implementation file */
|
||||
NS_IMPL_ISUPPORTS1(nsGenericAccessible, nsIAccessible)
|
||||
|
||||
nsGenericAccessible::nsGenericAccessible()
|
||||
{
|
||||
NS_INIT_ISUPPORTS();
|
||||
/* member initializers and constructor code */
|
||||
}
|
||||
|
||||
nsGenericAccessible::~nsGenericAccessible()
|
||||
{
|
||||
/* destructor code */
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccParent (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccNextSibling (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccPreviousSibling (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccValue (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void setAccName (in wstring name); */
|
||||
NS_IMETHODIMP nsGenericAccessible::SetAccName(const PRUnichar *name)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void setAccValue (in wstring value); */
|
||||
NS_IMETHODIMP nsGenericAccessible::SetAccValue(const PRUnichar *value)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccDescription (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccDescription(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccState (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFocused(); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccFocused(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccHelp (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccHelp(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accGetAt (in long x, in long y); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccGetAt(PRInt32 x, PRInt32 y, nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateRight (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateRight(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateLeft (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateLeft(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateUp (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateUp(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateDown (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateDown(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accGetBounds (out long x, out long y, out long width, out long height); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accAddSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccAddSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accRemoveSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccRemoveSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accExtendSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccExtendSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accTakeSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccTakeSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accTakeFocus (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccTakeFocus()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccExtState (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccExtState(PRUint32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsGenericAccessible::AccGetDOMNode(nsIDOMNode **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
//-------------
|
||||
// nsDOMAccessible
|
||||
//-------------
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDOMAccessible::QueryInterface(REFNSIID aIID, void** aResult)
|
||||
{
|
||||
if (!aResult)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
if (aIID.Equals(NS_GET_IID(nsIDOMNode))) {
|
||||
nsIDOMNode* node = mNode;
|
||||
*aResult = (void*) node;
|
||||
NS_ADDREF(node);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsGenericAccessible::QueryInterface(aIID, aResult);
|
||||
}
|
||||
|
||||
nsDOMAccessible::nsDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode)
|
||||
{
|
||||
mPresShell = do_GetWeakReference(aShell);
|
||||
mNode = aNode;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsDOMAccessible::AccGetDOMNode(nsIDOMNode **_retval)
|
||||
{
|
||||
*_retval = mNode;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void accRemoveSelection (); */
|
||||
NS_IMETHODIMP nsDOMAccessible::AccRemoveSelection()
|
||||
{
|
||||
nsCOMPtr<nsISelectionController> control(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsISelection> selection;
|
||||
nsresult rv = control->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
nsCOMPtr<nsIDOMNode> parent;
|
||||
rv = mNode->GetParentNode(getter_AddRefs(parent));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
rv = selection->Collapse(parent, 0);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void accTakeSelection (); */
|
||||
NS_IMETHODIMP nsDOMAccessible::AccTakeSelection()
|
||||
{
|
||||
nsCOMPtr<nsISelectionController> control(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsISelection> selection;
|
||||
nsresult rv = control->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
nsCOMPtr<nsIDOMNode> parent;
|
||||
rv = mNode->GetParentNode(getter_AddRefs(parent));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
PRInt32 offsetInParent = 0;
|
||||
nsCOMPtr<nsIDOMNode> child;
|
||||
rv = parent->GetFirstChild(getter_AddRefs(child));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
nsCOMPtr<nsIDOMNode> next;
|
||||
|
||||
while(child)
|
||||
{
|
||||
if (child == mNode) {
|
||||
// Collapse selection to just before desired element,
|
||||
rv = selection->Collapse(parent, offsetInParent);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
// then extend it to just after
|
||||
rv = selection->Extend(parent, offsetInParent+1);
|
||||
return rv;
|
||||
}
|
||||
|
||||
child->GetNextSibling(getter_AddRefs(next));
|
||||
child = next;
|
||||
offsetInParent++;
|
||||
}
|
||||
|
||||
// didn't find a child
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
/* void accTakeFocus (); */
|
||||
NS_IMETHODIMP nsDOMAccessible::AccTakeFocus()
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
content->SetFocus(context);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsDOMAccessible::AppendFlatStringFromContentNode(nsIContent *aContent, nsAWritableString *aFlatString)
|
||||
{
|
||||
nsCOMPtr<nsITextContent> textContent(do_QueryInterface(aContent));
|
||||
if (textContent) {
|
||||
nsCOMPtr<nsIDOMComment> commentNode(do_QueryInterface(aContent));
|
||||
if (!commentNode) {
|
||||
PRBool isHTMLBlock = PR_FALSE;
|
||||
nsIFrame *frame;
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIContent> parentContent;
|
||||
aContent->GetParent(*getter_AddRefs(parentContent));
|
||||
if (parentContent) {
|
||||
nsresult rv = shell->GetPrimaryFrameFor(parentContent, &frame);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
// If this text is inside a block level frame (as opposed to span level), we need to add spaces around that
|
||||
// block's text, so we don't get words jammed together in final name
|
||||
// Extra spaces will be trimmed out later
|
||||
nsCOMPtr<nsIStyleContext> styleContext;
|
||||
frame->GetStyleContext(getter_AddRefs(styleContext));
|
||||
if (styleContext) {
|
||||
const nsStyleDisplay* display = (const nsStyleDisplay*)styleContext->GetStyleData(eStyleStruct_Display);
|
||||
if (display->IsBlockLevel() || display->mDisplay == NS_STYLE_DISPLAY_TABLE_CELL) {
|
||||
isHTMLBlock = PR_TRUE;
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
nsAutoString text;
|
||||
textContent->CopyText(text);
|
||||
if (text.Length()>0)
|
||||
aFlatString->Append(text);
|
||||
if (isHTMLBlock)
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
nsCOMPtr<nsIDOMHTMLBRElement> brElement(do_QueryInterface(aContent));
|
||||
if (brElement) {
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIDOMHTMLImageElement> imageContent(do_QueryInterface(aContent));
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> inputContent(do_QueryInterface(aContent));
|
||||
if (imageContent || inputContent) {
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(aContent));
|
||||
nsAutoString textEquivalent;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("alt"), textEquivalent);
|
||||
if (textEquivalent.IsEmpty())
|
||||
elt->GetAttribute(NS_LITERAL_STRING("title"), textEquivalent);
|
||||
if (textEquivalent.IsEmpty())
|
||||
elt->GetAttribute(NS_LITERAL_STRING("name"), textEquivalent);
|
||||
if (textEquivalent.IsEmpty())
|
||||
elt->GetAttribute(NS_LITERAL_STRING("src"), textEquivalent);
|
||||
if (!textEquivalent.IsEmpty()) {
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
aFlatString->Append(textEquivalent);
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsDOMAccessible::AppendFlatStringFromSubtree(nsIContent *aContent, nsAWritableString *aFlatString)
|
||||
{
|
||||
// Depth first search for all text nodes that are decendants of content node.
|
||||
// Append all the text into one flat string
|
||||
|
||||
PRInt32 numChildren = 0;
|
||||
|
||||
aContent->ChildCount(numChildren);
|
||||
if (numChildren == 0) {
|
||||
nsAutoString contentText;
|
||||
AppendFlatStringFromContentNode(aContent, aFlatString);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIContent *contentWalker;
|
||||
PRInt32 index;
|
||||
for (index = 0; index < numChildren; index++) {
|
||||
aContent->ChildAt(index, contentWalker);
|
||||
AppendFlatStringFromSubtree(contentWalker, aFlatString);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//-------------
|
||||
// nsLeafFrameAccessible
|
||||
//-------------
|
||||
|
||||
nsLeafDOMAccessible::nsLeafDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsDOMAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsLeafDOMAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsLeafDOMAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsLeafDOMAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------
|
||||
// nsLinkableAccessible
|
||||
//----------------
|
||||
|
||||
nsLinkableAccessible::nsLinkableAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsDOMAccessible(aShell, aDomNode), mIsALinkCached(PR_FALSE), mLinkContent(nsnull), mIsLinkVisited(PR_FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
/* long GetAccState (); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval |= STATE_READONLY | STATE_SELECTABLE;
|
||||
if (IsALink()) {
|
||||
*_retval |= STATE_FOCUSABLE | STATE_LINKED;
|
||||
if (mIsLinkVisited)
|
||||
*_retval |= STATE_TRAVERSED;
|
||||
}
|
||||
|
||||
// Get current selection and find out if current node is in it
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
nsIFrame *frame;
|
||||
if (content && NS_SUCCEEDED(shell->GetPrimaryFrameFor(content, &frame))) {
|
||||
nsCOMPtr<nsISelectionController> selCon;
|
||||
frame->GetSelectionController(context,getter_AddRefs(selCon));
|
||||
if (selCon) {
|
||||
nsCOMPtr<nsISelection> domSel;
|
||||
selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(domSel));
|
||||
if (domSel) {
|
||||
PRBool isSelected = PR_FALSE, isCollapsed = PR_TRUE;
|
||||
domSel->ContainsNode(mNode, PR_TRUE, &isSelected);
|
||||
domSel->GetIsCollapsed(&isCollapsed);
|
||||
if (isSelected && !isCollapsed)
|
||||
*_retval |=STATE_SELECTED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Focused? Do we implement that here or up the chain?
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
if (IsALink()) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("jump"));
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
if (IsALink()) {
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> presContext;
|
||||
shell->GetPresContext(getter_AddRefs(presContext));
|
||||
if (presContext) {
|
||||
nsMouseEvent linkClickEvent;
|
||||
linkClickEvent.eventStructType = NS_EVENT;
|
||||
linkClickEvent.message = NS_MOUSE_LEFT_CLICK;
|
||||
linkClickEvent.isShift = PR_FALSE;
|
||||
linkClickEvent.isControl = PR_FALSE;
|
||||
linkClickEvent.isAlt = PR_FALSE;
|
||||
linkClickEvent.isMeta = PR_FALSE;
|
||||
linkClickEvent.clickCount = 0;
|
||||
linkClickEvent.widget = nsnull;
|
||||
|
||||
nsEventStatus eventStatus = nsEventStatus_eIgnore;
|
||||
mLinkContent->HandleDOMEvent(presContext, &linkClickEvent,
|
||||
nsnull, NS_EVENT_FLAG_INIT, &eventStatus);
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
PRBool nsLinkableAccessible::IsALink()
|
||||
{
|
||||
if (mIsALinkCached) // Cached answer?
|
||||
return mLinkContent? PR_TRUE: PR_FALSE;
|
||||
|
||||
nsCOMPtr<nsIContent> walkUpContent(do_QueryInterface(mNode));
|
||||
if (walkUpContent) {
|
||||
nsCOMPtr<nsIContent> tempContent = walkUpContent;
|
||||
while (walkUpContent) {
|
||||
nsCOMPtr<nsILink> link(do_QueryInterface(walkUpContent));
|
||||
if (link) {
|
||||
mLinkContent = tempContent;
|
||||
mIsALinkCached = PR_TRUE;
|
||||
nsLinkState linkState;
|
||||
link->GetLinkState(linkState);
|
||||
if (linkState == eLinkState_Visited)
|
||||
mIsLinkVisited = PR_TRUE;
|
||||
return PR_TRUE;
|
||||
}
|
||||
walkUpContent->GetParent(*getter_AddRefs(tempContent));
|
||||
walkUpContent = tempContent;
|
||||
}
|
||||
}
|
||||
mIsALinkCached = PR_TRUE; // Cached that there is no link
|
||||
return PR_FALSE;
|
||||
}
|
||||
107
mozilla/accessible/src/base/nsGenericAccessible.h
Normal file
107
mozilla/accessible/src/base/nsGenericAccessible.h
Normal file
@@ -0,0 +1,107 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric D Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsGenericAccessible_H_
|
||||
#define _nsGenericAccessible_H_
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIAccessible.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIWeakReference.h"
|
||||
|
||||
/**
|
||||
* Basic implementation
|
||||
* supports nothing
|
||||
*/
|
||||
class nsGenericAccessible : public nsIAccessible
|
||||
{
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIACCESSIBLE
|
||||
|
||||
public:
|
||||
nsGenericAccessible();
|
||||
virtual ~nsGenericAccessible();
|
||||
};
|
||||
|
||||
/**
|
||||
* And accessible that observes a dom node
|
||||
* supports:
|
||||
* - selection
|
||||
* - focus
|
||||
*/
|
||||
class nsDOMAccessible : public nsGenericAccessible
|
||||
{
|
||||
public:
|
||||
nsDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
|
||||
NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr);
|
||||
|
||||
NS_IMETHOD AccTakeSelection(void);
|
||||
NS_IMETHOD AccTakeFocus(void);
|
||||
NS_IMETHOD AccRemoveSelection(void);
|
||||
NS_IMETHOD AccGetDOMNode(nsIDOMNode **_retval);
|
||||
|
||||
protected:
|
||||
NS_IMETHOD AppendFlatStringFromSubtree(nsIContent *aContent, nsAWritableString *aFlatString);
|
||||
NS_IMETHOD AppendFlatStringFromContentNode(nsIContent *aContent, nsAWritableString *aFlatString);
|
||||
nsCOMPtr<nsIWeakReference> mPresShell;
|
||||
nsCOMPtr<nsIDOMNode> mNode;
|
||||
};
|
||||
|
||||
/* Leaf version of DOM Accessible
|
||||
* has no children
|
||||
*/
|
||||
class nsLeafDOMAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsLeafDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
};
|
||||
|
||||
|
||||
class nsLinkableAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsLinkableAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
|
||||
protected:
|
||||
nsCOMPtr<nsIDOMNode> mDomNode;
|
||||
PRBool IsALink();
|
||||
PRBool mIsALinkCached; // -1 = unknown, 0 = not a link, 1 = is a link
|
||||
nsCOMPtr<nsIContent> mLinkContent;
|
||||
PRBool mIsLinkVisited;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
308
mozilla/accessible/src/base/nsRootAccessible.cpp
Normal file
308
mozilla/accessible/src/base/nsRootAccessible.cpp
Normal file
@@ -0,0 +1,308 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIDOMEventTarget.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMEventReceiver.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsILink.h"
|
||||
#include "nsHTMLFormControlAccessible.h"
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsRootAccessible)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIAccessibleEventReceiver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMFocusListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMFormListener)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMFormListener)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMFormListener)
|
||||
NS_INTERFACE_MAP_END_INHERITING(nsAccessible)
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(nsRootAccessible, nsAccessible);
|
||||
NS_IMPL_RELEASE_INHERITED(nsRootAccessible, nsAccessible);
|
||||
|
||||
//-----------------------------------------------------
|
||||
// construction
|
||||
//-----------------------------------------------------
|
||||
nsRootAccessible::nsRootAccessible(nsIWeakReference* aShell):nsAccessible(nsnull,nsnull,aShell)
|
||||
{
|
||||
mListener = nsnull;
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
shell->GetDocument(getter_AddRefs(mDocument));
|
||||
mDOMNode = do_QueryInterface(mDocument);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// destruction
|
||||
//-----------------------------------------------------
|
||||
nsRootAccessible::~nsRootAccessible()
|
||||
{
|
||||
RemoveAccessibleEventListener(mListener);
|
||||
}
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccName(PRUnichar * *aAccName)
|
||||
{
|
||||
const nsString* docTitle = mDocument->GetDocumentTitle();
|
||||
if (docTitle && !docTitle->IsEmpty())
|
||||
*aAccName = docTitle->ToNewUnicode();
|
||||
else *aAccName = ToNewUnicode(NS_LITERAL_STRING("Document"));
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// helpers
|
||||
nsIFrame* nsRootAccessible::GetFrame()
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsIFrame* root = nsnull;
|
||||
if (shell)
|
||||
shell->GetRootFrame(&root);
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
void nsRootAccessible::GetBounds(nsRect& aBounds, nsIFrame** aRelativeFrame)
|
||||
{
|
||||
*aRelativeFrame = GetFrame();
|
||||
(*aRelativeFrame)->GetRect(aBounds);
|
||||
}
|
||||
|
||||
nsIAccessible* nsRootAccessible::CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell)
|
||||
{
|
||||
return new nsHTMLBlockAccessible(aAccessible, aNode, aShell);
|
||||
}
|
||||
|
||||
/* readonly attribute nsIAccessible accParent; */
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccParent(nsIAccessible * *aAccParent)
|
||||
{
|
||||
*aAccParent = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute unsigned long accRole; */
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccRole(PRUint32 *aAccRole)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsISupports> container;
|
||||
context->GetContainer(getter_AddRefs(container));
|
||||
if (container) {
|
||||
nsCOMPtr<nsIDocShellTreeItem> parentTreeItem, docTreeItem(do_QueryInterface(container));
|
||||
if (docTreeItem) {
|
||||
docTreeItem->GetSameTypeParent(getter_AddRefs(parentTreeItem));
|
||||
// Basically, if this docshell has a parent of the same type, it's a frame
|
||||
if (parentTreeItem) {
|
||||
*aAccRole = ROLE_PANE;
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*aAccRole = ROLE_CLIENT;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccValue(PRUnichar * *aAccValue)
|
||||
{
|
||||
nsCOMPtr<nsIURI> pURI(mDocument->GetDocumentURL());
|
||||
char *path;
|
||||
pURI->GetSpec(&path);
|
||||
*aAccValue = ToNewUnicode(nsLiteralCString(path));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void addAccessibleEventListener (in nsIAccessibleEventListener aListener); */
|
||||
NS_IMETHODIMP nsRootAccessible::AddAccessibleEventListener(nsIAccessibleEventListener *aListener)
|
||||
{
|
||||
if (!mListener)
|
||||
{
|
||||
// add an event listener to the document
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
shell->GetDocument(getter_AddRefs(document));
|
||||
|
||||
// use AddEventListener from the nsIDOMEventTarget interface
|
||||
nsCOMPtr<nsIDOMEventTarget> target;
|
||||
if (NS_SUCCEEDED(document->QueryInterface(NS_GET_IID(nsIDOMEventTarget), getter_AddRefs(target))) && target)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
// we're a DOMEventListener now!!
|
||||
nsCOMPtr<nsIDOMEventListener> listener;
|
||||
rv = this->QueryInterface( NS_GET_IID(nsIDOMEventListener), getter_AddRefs(listener) );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to QI");
|
||||
// capture DOM focus events
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("focus") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
// capture Form change events
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("change") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
// add ourself as a CheckboxStateChange listener ( custom event fired in nsHTMLInputElement.cpp )
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("CheckboxStateChange") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
// add ourself as a RadiobuttonStateChange listener ( custom event fired in nsHTMLInputElement.cpp )
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("RadiobuttonStateChange") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
}
|
||||
}
|
||||
|
||||
// create a weak reference to the listener
|
||||
mListener = aListener;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void removeAccessibleEventListener (in nsIAccessibleEventListener aListener); */
|
||||
NS_IMETHODIMP nsRootAccessible::RemoveAccessibleEventListener(nsIAccessibleEventListener *aListener)
|
||||
{
|
||||
if (mListener)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
if (!shell)
|
||||
return NS_OK;
|
||||
|
||||
shell->GetDocument(getter_AddRefs(document));
|
||||
|
||||
nsCOMPtr<nsIDOMEventReceiver> erP;
|
||||
if (NS_SUCCEEDED(document->QueryInterface(NS_GET_IID(nsIDOMEventReceiver), getter_AddRefs(erP))) && erP)
|
||||
{
|
||||
nsresult rv = erP->RemoveEventListenerByIID(NS_STATIC_CAST(nsIDOMFocusListener *, this), NS_GET_IID(nsIDOMFocusListener));
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
}
|
||||
}
|
||||
|
||||
mListener = nsnull;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// --------------- nsIDOMEventListener Methods (3) ------------------------
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::HandleEvent(nsIDOMEvent* aEvent)
|
||||
{
|
||||
if (mListener) {
|
||||
nsCOMPtr<nsIDOMEventTarget> t;
|
||||
aEvent->GetOriginalTarget(getter_AddRefs(t));
|
||||
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(t));
|
||||
if (!content)
|
||||
return NS_OK;
|
||||
|
||||
nsAutoString eventType;
|
||||
aEvent->GetType(eventType);
|
||||
|
||||
// the "focus" type is pulled from nsDOMEvent.cpp
|
||||
if ( eventType.EqualsIgnoreCase("focus") ) {
|
||||
if (mCurrentFocus == content)
|
||||
return NS_OK;
|
||||
mCurrentFocus = content;
|
||||
}
|
||||
|
||||
nsIFrame* frame = nsnull;
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
shell->GetPrimaryFrameFor(content, &frame);
|
||||
if (!frame)
|
||||
return NS_OK;
|
||||
|
||||
nsCOMPtr<nsIAccessible> a(do_QueryInterface(frame));
|
||||
if (!a)
|
||||
a = do_QueryInterface(content);
|
||||
|
||||
if (!a) {
|
||||
// is it a link?
|
||||
nsCOMPtr<nsILink> link(do_QueryInterface(content));
|
||||
if (link) {
|
||||
#ifdef DEBUG
|
||||
printf("focus link!\n");
|
||||
#endif
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
if (node)
|
||||
a = new nsHTMLLinkAccessible(shell, node);
|
||||
}
|
||||
}
|
||||
|
||||
if (a) {
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
nsCOMPtr<nsIAccessible> na(CreateNewAccessible(a, node, mPresShell));
|
||||
if ( !na )
|
||||
return NS_OK;
|
||||
|
||||
if ( eventType.EqualsIgnoreCase("focus") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_FOCUS, na);
|
||||
}
|
||||
else if ( eventType.EqualsIgnoreCase("change") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_STATE_CHANGE, na);
|
||||
}
|
||||
else if ( eventType.EqualsIgnoreCase("CheckboxStateChange") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_STATE_CHANGE, na);
|
||||
}
|
||||
else if ( eventType.EqualsIgnoreCase("RadiobuttonStateChange") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_STATE_CHANGE, na);
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// ------- nsIDOMFocusListener Methods (2) -------------
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Focus(nsIDOMEvent* aEvent)
|
||||
{
|
||||
return HandleEvent(aEvent);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Blur(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
// ------- nsIDOMFormListener Methods (5) -------------
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Submit(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Reset(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Change(nsIDOMEvent* aEvent)
|
||||
{
|
||||
// get change events when the form elements changes its state, checked->not,
|
||||
// deleted text, new text, change in selection for list/combo boxes
|
||||
// this may be the event that we have the individual Accessible objects
|
||||
// handle themselves -- have list/combos figure out the change in selection
|
||||
// have textareas and inputs fire a change of state etc...
|
||||
return HandleEvent(aEvent);
|
||||
}
|
||||
|
||||
// gets Select events when text is selected in a textarea or input
|
||||
NS_IMETHODIMP nsRootAccessible::Select(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
// gets Input events when text is entered or deleted in a textarea or input
|
||||
NS_IMETHODIMP nsRootAccessible::Input(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
|
||||
|
||||
85
mozilla/accessible/src/base/nsRootAccessible.h
Normal file
85
mozilla/accessible/src/base/nsRootAccessible.h
Normal file
@@ -0,0 +1,85 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsRootAccessible_H_
|
||||
#define _nsRootAccessible_H_
|
||||
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIAccessibleEventReceiver.h"
|
||||
#include "nsIAccessibleEventListener.h"
|
||||
#include "nsIDOMFormListener.h"
|
||||
#include "nsIDOMFocusListener.h"
|
||||
#include "nsIDocument.h"
|
||||
|
||||
class nsRootAccessible : public nsAccessible,
|
||||
public nsIAccessibleEventReceiver,
|
||||
public nsIDOMFocusListener,
|
||||
public nsIDOMFormListener
|
||||
|
||||
{
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
public:
|
||||
nsRootAccessible(nsIWeakReference* aShell);
|
||||
virtual ~nsRootAccessible();
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHOD GetAccName(PRUnichar * *aAccName);
|
||||
NS_IMETHOD GetAccValue(PRUnichar * *aAccValue);
|
||||
NS_IMETHOD GetAccParent(nsIAccessible * *aAccParent);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *aAccRole);
|
||||
|
||||
// ----- nsIAccessibleEventReceiver -------------------
|
||||
|
||||
NS_IMETHOD AddAccessibleEventListener(nsIAccessibleEventListener *aListener);
|
||||
NS_IMETHOD RemoveAccessibleEventListener(nsIAccessibleEventListener *aListener);
|
||||
|
||||
// ----- nsIDOMEventListener --------------------------
|
||||
NS_IMETHOD HandleEvent(nsIDOMEvent* anEvent);
|
||||
|
||||
// ----- nsIDOMFocusListener --------------------------
|
||||
NS_IMETHOD Focus(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Blur(nsIDOMEvent* aEvent);
|
||||
|
||||
// ----- nsIDOMFormListener ---------------------------
|
||||
NS_IMETHOD Submit(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Reset(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Change(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Select(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Input(nsIDOMEvent* aEvent);
|
||||
|
||||
protected:
|
||||
virtual void GetBounds(nsRect& aRect, nsIFrame** aRelativeFrame);
|
||||
virtual nsIFrame* GetFrame();
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
|
||||
// not a com pointer. We don't own the listener
|
||||
// it is the callers responsibility to remove the listener
|
||||
// otherwise we will get into circular referencing problems
|
||||
nsIAccessibleEventListener* mListener;
|
||||
nsCOMPtr<nsIContent> mCurrentFocus;
|
||||
nsCOMPtr<nsIDocument> mDocument;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
722
mozilla/accessible/src/base/nsSelectAccessible.cpp
Normal file
722
mozilla/accessible/src/base/nsSelectAccessible.cpp
Normal file
@@ -0,0 +1,722 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: Eric Vaughan (evaughan@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsSelectAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
//#include "nsMutableAccessible.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
#include "nsIDOMMenuListener.h"
|
||||
#include "nsIDOMEventReceiver.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
#if 0
|
||||
class nsSelectChildAccessible : public nsAccessible,
|
||||
public nsIDOMMenuListener
|
||||
{
|
||||
public:
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
nsSelectChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsSelectChildAccessible();
|
||||
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
|
||||
virtual nsIAccessible* CreateNewNextAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewPreviousAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
// popup listener
|
||||
NS_IMETHOD Create(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Close(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Destroy(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Action(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD Broadcast(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD CommandUpdate(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
nsCOMPtr<nsIContent> mSelectContent;
|
||||
PRBool mRegistered;
|
||||
PRBool mOpen;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS_INHERITED(nsSelectChildAccessible, nsAccessible, nsIDOMMenuListener)
|
||||
|
||||
class nsSelectWindowAccessible : public nsAccessible,
|
||||
public nsIDOMMenuListener
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
nsSelectWindowAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aPrev, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsSelectWindowAccessible();
|
||||
|
||||
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccExtState(PRUint32 *_retval);
|
||||
|
||||
// popup listener
|
||||
NS_IMETHOD Create(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Close(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Destroy(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Action(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD Broadcast(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD CommandUpdate(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
// helpers
|
||||
virtual nsIFrame* GetBoundsFrame();
|
||||
|
||||
nsCOMPtr<nsIAccessible> mParent;
|
||||
nsCOMPtr<nsIAccessible> mPrev;
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
PRBool mRegistered;
|
||||
PRBool mOpen;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS_INHERITED(nsSelectWindowAccessible, nsAccessible, nsIDOMMenuListener)
|
||||
|
||||
class nsSelectListAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
|
||||
nsSelectListAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsSelectListAccessible() {}
|
||||
|
||||
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height);
|
||||
|
||||
virtual void GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList);
|
||||
virtual nsIAccessible* CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
nsCOMPtr<nsIAccessible> mParent;
|
||||
};
|
||||
|
||||
class nsListChildAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
|
||||
nsListChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsListChildAccessible() {}
|
||||
|
||||
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
|
||||
virtual void GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList);
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
|
||||
nsCOMPtr<nsIAccessible> mParent;
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
nsCOMPtr<nsIContent> mSelectContent;
|
||||
};
|
||||
|
||||
//---------
|
||||
|
||||
nsSelectAccessible::nsSelectAccessible(nsIAtom* aPopupAtom,
|
||||
nsIAccessible* aAccessible,
|
||||
nsIContent* aContent,
|
||||
nsIWeakReference* aShell)
|
||||
:nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mPopupAtom = aPopupAtom;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
// our value is our first child's value. Which is the combo boxes text.
|
||||
nsCOMPtr<nsIAccessible> text;
|
||||
nsresult rv = GetAccFirstChild(getter_AddRefs(text));
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
*_retval = nsnull;
|
||||
return rv;
|
||||
}
|
||||
|
||||
if (!text) {
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// look at our role
|
||||
return text->GetAccValue(_retval);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_COMBOBOX;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
// get the last child. Wrap it with a connector that connects it to the window accessible
|
||||
nsCOMPtr<nsIAccessible> last;
|
||||
nsresult rv = nsAccessible::GetAccLastChild(getter_AddRefs(last));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
if (!last) {
|
||||
// we have a parent but not previous
|
||||
*_retval = new nsSelectWindowAccessible(mPopupAtom, this, nsnull, nsnull, mContent, mPresShell);
|
||||
} else {
|
||||
*_retval = last;
|
||||
}
|
||||
|
||||
NS_ADDREF(*_retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
// get the last child. Wrap it with a connector that connects it to the window accessible
|
||||
nsCOMPtr<nsIAccessible> first;
|
||||
nsresult rv = nsAccessible::GetAccFirstChild(getter_AddRefs(first));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
if (!first) {
|
||||
*_retval = new nsSelectWindowAccessible(mPopupAtom, this, nsnull, nsnull, mContent, mPresShell);
|
||||
} else {
|
||||
*_retval = first;
|
||||
}
|
||||
|
||||
NS_ADDREF(*_retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectAccessible::CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
return CreateNewLastAccessible(aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectAccessible::CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsSelectChildAccessible(mPopupAtom, mContent, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
nsresult rv = nsAccessible::GetAccChildCount(_retval);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
// always have one more that is our window child
|
||||
(*_retval)++;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//--------------------
|
||||
|
||||
nsSelectChildAccessible::nsSelectChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell):
|
||||
nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mPopupAtom = aPopupAtom;
|
||||
mSelectContent = aSelectContent;
|
||||
mRegistered = PR_FALSE;
|
||||
mOpen = PR_FALSE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
PRUint32 role = 0;
|
||||
|
||||
// look at our role
|
||||
rv = nsAccessible::GetAccRole(&role);
|
||||
if (NS_FAILED(rv)) {
|
||||
*_retval = nsnull;
|
||||
return rv;
|
||||
}
|
||||
|
||||
// if its the text in the combo box then
|
||||
// its value should be its name.
|
||||
if (role == ROLE_TEXT) {
|
||||
rv = nsAccessible::GetAccName(_retval);
|
||||
} else {
|
||||
rv = nsAccessible::GetAccValue(_retval);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
PRUint32 role = 0;
|
||||
|
||||
// look at our role
|
||||
rv = nsAccessible::GetAccRole(&role);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
// any text in the combo box is static
|
||||
if (role == ROLE_STATICTEXT) {
|
||||
// if it the comboboxes text. Make it static
|
||||
*_retval = role;
|
||||
} else {
|
||||
rv = nsAccessible::GetAccRole(_retval);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
PRUint32 role = 0;
|
||||
|
||||
// look at our role
|
||||
nsAccessible::GetAccRole(&role);
|
||||
|
||||
// if button then we need to make the name be open or close
|
||||
if (role == ROLE_PUSHBUTTON) {
|
||||
{
|
||||
// if its a button and not already registered,
|
||||
// register ourselves as a popup listener
|
||||
if (!mRegistered) {
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mSelectContent));
|
||||
if (!eventReceiver) {
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
eventReceiver->AddEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
|
||||
mRegistered = PR_TRUE;
|
||||
}
|
||||
|
||||
// get the current state open or closed
|
||||
// set _retval to it.
|
||||
// notice its supposed to be reversed. Close if opened
|
||||
// and Open if closed.
|
||||
|
||||
if (mOpen)
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("Close"));
|
||||
else
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("Open"));
|
||||
|
||||
} else {
|
||||
/*rv = nsAccessible::GetAccName(_retval);*/
|
||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||
*_retval = nsnull;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
nsSelectChildAccessible::~nsSelectChildAccessible()
|
||||
{
|
||||
if (mRegistered) {
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mSelectContent));
|
||||
if (eventReceiver)
|
||||
eventReceiver->RemoveEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::Create(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_TRUE;
|
||||
#ifdef DEBUG
|
||||
printf("Open\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::Destroy(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::Close(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectChildAccessible::CreateNewNextAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
return CreateNewPreviousAccessible(aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectChildAccessible::CreateNewPreviousAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsSelectChildAccessible(mPopupAtom, mSelectContent, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> next;
|
||||
nsresult rv = nsAccessible::GetAccNextSibling(getter_AddRefs(next));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
if (!next) {
|
||||
// ok no more siblings. Lets create our window
|
||||
nsCOMPtr<nsIAccessible> parent;
|
||||
GetAccParent(getter_AddRefs(parent));
|
||||
|
||||
*_retval = new nsSelectWindowAccessible(mPopupAtom, parent, nsnull, nsnull, mSelectContent, mPresShell);
|
||||
} else {
|
||||
*_retval = next;
|
||||
}
|
||||
|
||||
NS_ADDREF(*_retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//---------------------
|
||||
|
||||
|
||||
nsSelectWindowAccessible::nsSelectWindowAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aPrev, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
:nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mParent = aParent;
|
||||
mPrev = aPrev;
|
||||
mPopupAtom = aPopupAtom;
|
||||
mRegistered = PR_FALSE;
|
||||
mOpen = PR_FALSE;
|
||||
}
|
||||
|
||||
nsSelectWindowAccessible::~nsSelectWindowAccessible()
|
||||
{
|
||||
if (mRegistered) {
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mContent));
|
||||
if (eventReceiver)
|
||||
eventReceiver->RemoveEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::Create(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_TRUE;
|
||||
#ifdef DEBUG
|
||||
printf("Open\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::Destroy(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::Close(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
// not not already one register ourselves as a popup listener
|
||||
|
||||
if (!mRegistered) {
|
||||
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mContent));
|
||||
if (!eventReceiver) {
|
||||
*_retval = 0;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
nsresult rv = eventReceiver->AddEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
*_retval = 0;
|
||||
return rv;
|
||||
}
|
||||
|
||||
mRegistered = PR_TRUE;
|
||||
}
|
||||
|
||||
// if open we are visible if closed we are invisible
|
||||
// set _retval to it.
|
||||
if (mOpen)
|
||||
*_retval |= STATE_DEFAULT;
|
||||
else
|
||||
*_retval |= STATE_INVISIBLE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccExtState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval=0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_WINDOW;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mParent;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mPrev;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = new nsSelectListAccessible(mPopupAtom, this, nsnull, mContent, mPresShell);
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = new nsSelectListAccessible(mPopupAtom, this, nsnull, mContent, mPresShell);
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
*x = *y = *width = *height = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
*/
|
||||
|
||||
nsIFrame* nsSelectWindowAccessible::GetBoundsFrame()
|
||||
{
|
||||
// get our frame
|
||||
nsIFrame* frame = GetFrame();
|
||||
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
GetPresContext(context);
|
||||
|
||||
// get its first popup child that should be the window
|
||||
frame->FirstChild(context, mPopupAtom, &frame);
|
||||
|
||||
return frame;
|
||||
}
|
||||
|
||||
//----------
|
||||
|
||||
|
||||
nsSelectListAccessible::nsSelectListAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
:nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mPopupAtom = aPopupAtom;
|
||||
mParent = aParent;
|
||||
}
|
||||
|
||||
void nsSelectListAccessible::GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsIFrame* frame = nsnull;
|
||||
shell->GetPrimaryFrameFor(mContent, &frame);
|
||||
if (aFrame == frame)
|
||||
aList = mPopupAtom;
|
||||
else
|
||||
aList = nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
return mParent->AccGetBounds(x,y,width,height);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mParent;
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LIST;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectListAccessible::CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsListChildAccessible(mPopupAtom, mContent, this, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectListAccessible::CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsListChildAccessible(mPopupAtom, mContent, this, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
//--------
|
||||
|
||||
nsListChildAccessible::nsListChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell):
|
||||
nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mParent = aParent;
|
||||
mPopupAtom = aPopupAtom;
|
||||
mSelectContent = aSelectContent;
|
||||
}
|
||||
|
||||
nsIAccessible* nsListChildAccessible::CreateNewAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsListChildAccessible(mPopupAtom, mSelectContent, mParent, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
void nsListChildAccessible::GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsIFrame* frame = nsnull;
|
||||
shell->GetPrimaryFrameFor(mSelectContent, &frame);
|
||||
if (aFrame == frame)
|
||||
aList = mPopupAtom;
|
||||
else
|
||||
aList = nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsListChildAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LISTITEM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsListChildAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mParent;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
52
mozilla/accessible/src/base/nsSelectAccessible.h
Normal file
52
mozilla/accessible/src/base/nsSelectAccessible.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: David W. Hyatt (hyatt@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
#ifndef __nsSelectAccessible_h__
|
||||
#define __nsSelectAccessible_h__
|
||||
|
||||
#include "nsAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIAtom.h"
|
||||
|
||||
/*
|
||||
class nsSelectAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
|
||||
nsSelectAccessible(nsIAtom* aPopupAtom, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
|
||||
virtual ~nsSelectAccessible() {}
|
||||
virtual nsIAccessible* CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
};
|
||||
*/
|
||||
|
||||
#endif
|
||||
218
mozilla/accessible/src/html/nsHTMLAreaAccessible.cpp
Normal file
218
mozilla/accessible/src/html/nsHTMLAreaAccessible.cpp
Normal file
@@ -0,0 +1,218 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsHTMLAreaAccessible.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMHTMLAreaElement.h"
|
||||
|
||||
|
||||
// --- area -----
|
||||
|
||||
nsHTMLAreaAccessible::nsHTMLAreaAccessible(nsIPresShell *aPresShell, nsIDOMNode *aDomNode, nsIAccessible *aAccParent):
|
||||
nsGenericAccessible(), mPresShell(aPresShell), mDOMNode(aDomNode), mAccParent(aAccParent)
|
||||
{
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
|
||||
if (elt) {
|
||||
nsAutoString hrefString;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("title"), hrefString);
|
||||
if (!hrefString.IsEmpty()) {
|
||||
*_retval = hrefString.ToNewUnicode();
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LINK;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccValue (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
|
||||
if (elt) {
|
||||
nsAutoString hrefString;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("href"), hrefString);
|
||||
*_retval = hrefString.ToNewUnicode();
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccDescription (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccDescription(PRUnichar **_retval)
|
||||
{
|
||||
// Still to do - follow IE's standard here
|
||||
*_retval = 0;
|
||||
nsAutoString shapeString;
|
||||
nsCOMPtr<nsIDOMHTMLAreaElement> area(do_QueryInterface(mDOMNode));
|
||||
if (area) {
|
||||
area->GetShape(shapeString);
|
||||
if (!shapeString.IsEmpty())
|
||||
*_retval = ToNewUnicode(shapeString);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("jump"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIPresContext> presContext;
|
||||
mPresShell->GetPresContext(getter_AddRefs(presContext));
|
||||
if (presContext) {
|
||||
nsMouseEvent linkClickEvent;
|
||||
linkClickEvent.eventStructType = NS_EVENT;
|
||||
linkClickEvent.message = NS_MOUSE_LEFT_CLICK;
|
||||
linkClickEvent.isShift = PR_FALSE;
|
||||
linkClickEvent.isControl = PR_FALSE;
|
||||
linkClickEvent.isAlt = PR_FALSE;
|
||||
linkClickEvent.isMeta = PR_FALSE;
|
||||
linkClickEvent.clickCount = 0;
|
||||
linkClickEvent.widget = nsnull;
|
||||
|
||||
nsEventStatus eventStatus = nsEventStatus_eIgnore;
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
|
||||
content->HandleDOMEvent(presContext, &linkClickEvent,
|
||||
nsnull, NS_EVENT_FLAG_INIT, &eventStatus);
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = STATE_LINKED | STATE_FOCUSABLE | STATE_READONLY;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccParent(nsIAccessible * *aAccParent)
|
||||
{
|
||||
*aAccParent = mAccParent;
|
||||
NS_IF_ADDREF(*aAccParent);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible *nsHTMLAreaAccessible::CreateAreaAccessible(nsIDOMNode *aDOMNode)
|
||||
{
|
||||
nsresult rv;
|
||||
NS_WITH_SERVICE(nsIAccessibilityService, accService, "@mozilla.org/accessibilityService;1", &rv);
|
||||
if (accService) {
|
||||
nsIAccessible* acc = nsnull;
|
||||
accService->CreateHTMLAreaAccessible(mPresShell, aDOMNode, mAccParent, &acc);
|
||||
return acc;
|
||||
}
|
||||
return nsnull;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccNextSibling(nsIAccessible * *aAccNextSibling)
|
||||
{
|
||||
*aAccNextSibling = nsnull;
|
||||
nsCOMPtr<nsIDOMNode> nextNode;
|
||||
mDOMNode->GetNextSibling(getter_AddRefs(nextNode));
|
||||
if (nextNode)
|
||||
*aAccNextSibling = CreateAreaAccessible(nextNode);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute nsIAccessible accPreviousSibling; */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccPreviousSibling(nsIAccessible * *aAccPrevSibling)
|
||||
{
|
||||
*aAccPrevSibling = nsnull;
|
||||
nsCOMPtr<nsIDOMNode> prevNode;
|
||||
mDOMNode->GetPreviousSibling(getter_AddRefs(prevNode));
|
||||
if (prevNode)
|
||||
*aAccPrevSibling = CreateAreaAccessible(prevNode);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* void accGetBounds (out long x, out long y, out long width, out long height); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
//nsIFrame *frame;
|
||||
// Do a better job on this later - need to use GetRect on mAreas of nsImageMap from nsImageFrame
|
||||
//return mAccParent->nsAccessible::AccGetBounds(x,y,width,height);
|
||||
|
||||
*x = *y = *width = *height = 0;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
61
mozilla/accessible/src/html/nsHTMLAreaAccessible.h
Normal file
61
mozilla/accessible/src/html/nsHTMLAreaAccessible.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLAreaAccessible_H_
|
||||
#define _nsHTMLAreaAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
|
||||
/* Accessible for image map areas - must be child of image
|
||||
*/
|
||||
|
||||
class nsHTMLAreaAccessible : public nsGenericAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLAreaAccessible(nsIPresShell *presShell, nsIDOMNode *domNode, nsIAccessible *accParent);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
NS_IMETHOD GetAccParent(nsIAccessible * *aAccParent);
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible * *aAccNextSibling);
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible * *aAccPreviousSibling);
|
||||
NS_IMETHOD GetAccDescription(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
NS_IMETHOD AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height);
|
||||
|
||||
protected:
|
||||
nsIAccessible *CreateAreaAccessible(nsIDOMNode *aDOMNode);
|
||||
nsCOMPtr<nsIDOMNode> mDOMNode;
|
||||
nsCOMPtr<nsIAccessible> mAccParent;
|
||||
nsCOMPtr<nsIPresShell> mPresShell;
|
||||
};
|
||||
|
||||
#endif
|
||||
454
mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
Normal file
454
mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
Normal file
@@ -0,0 +1,454 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLFormControlAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIDOMHTMLInputElement.h"
|
||||
#include "nsIDOMHTMLTextAreaElement.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsHTMLAtoms.h"
|
||||
#include "nsIDOMHTMLButtonElement.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIDOMHTMLLabelElement.h"
|
||||
#include "nsIDOMHTMLFormElement.h"
|
||||
|
||||
nsHTMLFormControlAccessible::nsHTMLFormControlAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsLeafDOMAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLFormControlAccessible::AppendLabelFor(nsIContent *aLookNode, nsAReadableString *aId, nsAWritableString *aLabel)
|
||||
{
|
||||
PRInt32 numChildren = 0;
|
||||
|
||||
nsCOMPtr<nsIDOMHTMLLabelElement> labelElement(do_QueryInterface(aLookNode));
|
||||
if (labelElement) {
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(aLookNode));
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
if (elt) {
|
||||
nsAutoString labelIsFor;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("for"),labelIsFor);
|
||||
if (labelIsFor.Equals(*aId))
|
||||
rv = AppendFlatStringFromSubtree(aLookNode, aLabel);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
aLookNode->ChildCount(numChildren);
|
||||
nsIContent *contentWalker;
|
||||
PRInt32 index;
|
||||
for (index = 0; index < numChildren; index++) {
|
||||
aLookNode->ChildAt(index, contentWalker);
|
||||
if (contentWalker)
|
||||
AppendLabelFor(contentWalker, aId, aLabel);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLFormControlAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIContent> walkUpContent(do_QueryInterface(mNode));
|
||||
nsCOMPtr<nsIDOMHTMLLabelElement> labelElement;
|
||||
nsCOMPtr<nsIDOMHTMLFormElement> formElement;
|
||||
nsAutoString nameString;
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
|
||||
// go up tree get name of ancestor label if there is one. Don't go up farther than form element
|
||||
while (walkUpContent && nameString.IsEmpty() && !formElement) {
|
||||
labelElement = do_QueryInterface(walkUpContent);
|
||||
if (labelElement)
|
||||
rv = AppendFlatStringFromSubtree(walkUpContent, &nameString);
|
||||
formElement = do_QueryInterface(walkUpContent); // reached top ancestor in form
|
||||
nsCOMPtr<nsIContent> nextParent;
|
||||
walkUpContent->GetParent(*getter_AddRefs(nextParent));
|
||||
walkUpContent = nextParent;
|
||||
}
|
||||
|
||||
|
||||
// There can be a label targeted at this control using the for="control_id" attribute
|
||||
// To save computing time, only look for those inside of a form element
|
||||
walkUpContent = do_QueryInterface(formElement);
|
||||
|
||||
if (walkUpContent) {
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mNode));
|
||||
nsAutoString forId;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("id"), forId);
|
||||
// Actually we'll be walking down the content this time, with a depth first search
|
||||
if (!forId.IsEmpty())
|
||||
AppendLabelFor(walkUpContent,&forId,&nameString);
|
||||
}
|
||||
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccState (); */
|
||||
NS_IMETHODIMP nsHTMLFormControlAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
// can be
|
||||
// focusable, focused, checked, protected, unavailable
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
|
||||
*_retval = STATE_FOCUSABLE;
|
||||
|
||||
PRBool checked = PR_FALSE;
|
||||
element->GetChecked(&checked);
|
||||
if (checked) *_retval |= STATE_CHECKED;
|
||||
|
||||
PRBool disabled = PR_FALSE;
|
||||
element->GetDisabled(&disabled);
|
||||
if (disabled)
|
||||
*_retval |= STATE_UNAVAILABLE;
|
||||
|
||||
nsAutoString typeString;
|
||||
element->GetType(typeString);
|
||||
if (typeString.EqualsIgnoreCase("password"))
|
||||
*_retval |= STATE_PROTECTED;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// --- checkbox -----
|
||||
|
||||
nsHTMLCheckboxAccessible::nsHTMLCheckboxAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_CHECKBUTTON;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
// check or uncheck
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
|
||||
PRBool checked = PR_FALSE;
|
||||
if (element)
|
||||
element->GetChecked(&checked);
|
||||
|
||||
if (checked)
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("uncheck"));
|
||||
else
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("check"));
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
PRBool checked = PR_FALSE;
|
||||
element->GetChecked(&checked);
|
||||
element->SetChecked(checked ? PR_FALSE : PR_TRUE);
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
//------ Radio button -------
|
||||
|
||||
nsHTMLRadioButtonAccessible::nsHTMLRadioButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("select"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
element->Click();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_RADIOBUTTON;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// ----- Button -----
|
||||
|
||||
nsHTMLButtonAccessible::nsHTMLButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("press"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
element->Click();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PUSHBUTTON;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> button(do_QueryInterface(mNode));
|
||||
|
||||
if (!button)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsAutoString name;
|
||||
button->GetValue(name);
|
||||
name.CompressWhitespace();
|
||||
|
||||
*_retval = name.ToNewUnicode();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
// ----- HTML 4 Button: can contain arbitrary HTML content -----
|
||||
|
||||
nsHTML4ButtonAccessible::nsHTML4ButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsDOMAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("press"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
element->Click();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PUSHBUTTON;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccState (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval |= STATE_FOCUSABLE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
nsAutoString name;
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
|
||||
if (content)
|
||||
rv = AppendFlatStringFromSubtree(content, &name);
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
name.CompressWhitespace();
|
||||
*_retval = name.ToNewUnicode();
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
// --- textfield -----
|
||||
|
||||
nsHTMLTextFieldAccessible::nsHTMLTextFieldAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_TEXT;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccValue (); */
|
||||
NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIDOMHTMLTextAreaElement> textArea(do_QueryInterface(mNode));
|
||||
if (textArea) {
|
||||
nsAutoString valueString;
|
||||
textArea->GetValue(valueString);
|
||||
*_retval = ToNewUnicode(valueString);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* long getAccState (); */
|
||||
NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
// can be
|
||||
// focusable, focused, protected. readonly, unavailable, selected
|
||||
|
||||
*_retval = STATE_FOCUSABLE;
|
||||
|
||||
nsCOMPtr<nsIDOMHTMLTextAreaElement> textArea(do_QueryInterface(mNode));
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> inputElement(do_QueryInterface(mNode));
|
||||
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mNode));
|
||||
PRBool isReadOnly = PR_FALSE;
|
||||
elt->HasAttribute(NS_LITERAL_STRING("readonly"), &isReadOnly);
|
||||
if (isReadOnly)
|
||||
*_retval |= STATE_READONLY;
|
||||
|
||||
// Get current selection and find out if current node is in it
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
nsIFrame *frame;
|
||||
if (content && NS_SUCCEEDED(shell->GetPrimaryFrameFor(content, &frame))) {
|
||||
nsCOMPtr<nsISelectionController> selCon;
|
||||
frame->GetSelectionController(context,getter_AddRefs(selCon));
|
||||
if (selCon) {
|
||||
nsCOMPtr<nsISelection> domSel;
|
||||
selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(domSel));
|
||||
if (domSel) {
|
||||
PRBool isCollapsed = PR_TRUE;
|
||||
domSel->GetIsCollapsed(&isCollapsed);
|
||||
if (!isCollapsed)
|
||||
*_retval |=STATE_SELECTED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!textArea) {
|
||||
if (inputElement) {
|
||||
/////// ====== Must be a password field, so it uses nsIDOMHTMLFormControl ==== ///////
|
||||
PRUint32 moreStates = 0;
|
||||
nsresult rv = nsHTMLFormControlAccessible::GetAccState(&moreStates);
|
||||
*_retval |= moreStates;
|
||||
return rv;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
PRBool disabled = PR_FALSE;
|
||||
textArea->GetDisabled(&disabled);
|
||||
if (disabled)
|
||||
*_retval |= STATE_UNAVAILABLE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
105
mozilla/accessible/src/html/nsHTMLFormControlAccessible.h
Normal file
105
mozilla/accessible/src/html/nsHTMLFormControlAccessible.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric D Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLFormControlAccessible_H_
|
||||
#define _nsHTMLFormControlAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsICheckboxControlFrame;
|
||||
|
||||
/* Accessible for supporting for controls
|
||||
* supports:
|
||||
* - walking up to get name from label
|
||||
* - support basic state
|
||||
*/
|
||||
class nsHTMLFormControlAccessible : public nsLeafDOMAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLFormControlAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
|
||||
protected:
|
||||
NS_IMETHODIMP AppendLabelFor(nsIContent *aLookNode, nsAReadableString *aId, nsAWritableString *aLabel);
|
||||
};
|
||||
|
||||
class nsHTMLCheckboxAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLCheckboxAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
class nsHTMLRadioButtonAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLRadioButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
class nsHTMLButtonAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
class nsHTML4ButtonAccessible : public nsDOMAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTML4ButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
|
||||
class nsHTMLTextFieldAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLTextFieldAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
};
|
||||
|
||||
#endif
|
||||
216
mozilla/accessible/src/html/nsHTMLIFrameRootAccessible.cpp
Normal file
216
mozilla/accessible/src/html/nsHTMLIFrameRootAccessible.cpp
Normal file
@@ -0,0 +1,216 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLIFrameRootAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIDocShell.h"
|
||||
#include "nsIWebShell.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
|
||||
nsHTMLIFrameAccessible::nsHTMLIFrameAccessible(nsIPresShell* aShell, nsIDOMNode* aNode, nsIAccessible* aRoot):
|
||||
nsDOMAccessible(aShell, aNode)
|
||||
{
|
||||
mRootAccessible = aRoot;
|
||||
}
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccName(PRUnichar * *aAccName)
|
||||
{
|
||||
return mRootAccessible->GetAccName(aAccName);
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccFirstChild(_retval);
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccLastChild(_retval);
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccChildCount(_retval);
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccRole(_retval);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// construction
|
||||
//-----------------------------------------------------
|
||||
nsHTMLIFrameRootAccessible::nsHTMLIFrameRootAccessible(nsIWeakReference* aShell, nsIDOMNode* aNode):
|
||||
nsRootAccessible(aShell)
|
||||
{
|
||||
mRealDOMNode = aNode;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// destruction
|
||||
//-----------------------------------------------------
|
||||
nsHTMLIFrameRootAccessible::~nsHTMLIFrameRootAccessible()
|
||||
{
|
||||
}
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccName(PRUnichar * *aAccName)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
if (shell)
|
||||
shell->GetDocument(getter_AddRefs(document));
|
||||
if (document) {
|
||||
const nsString* docTitle = document->GetDocumentTitle();
|
||||
if (docTitle && !docTitle->IsEmpty()) {
|
||||
*aAccName = docTitle->ToNewUnicode();
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
*aAccName = ToNewUnicode(NS_LITERAL_STRING("Frame"));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute nsIAccessible accParent; */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccParent(nsIAccessible * *_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> accessible;
|
||||
if (NS_SUCCEEDED(GetHTMLIFrameAccessible(getter_AddRefs(accessible))))
|
||||
return accessible->GetAccParent(_retval);
|
||||
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccNextSibling (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> accessible;
|
||||
|
||||
if (NS_SUCCEEDED(GetHTMLIFrameAccessible(getter_AddRefs(accessible))))
|
||||
return accessible->GetAccNextSibling(_retval);
|
||||
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccPreviousSibling (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> accessible;
|
||||
|
||||
if (NS_SUCCEEDED(GetHTMLIFrameAccessible(getter_AddRefs(accessible))))
|
||||
return accessible->GetAccPreviousSibling(_retval);
|
||||
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PANE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetHTMLIFrameAccessible(nsIAccessible** aAcc)
|
||||
{
|
||||
// Start by finding our PresShell and from that
|
||||
// we get our nsIDocShell in order to walk the DocShell tree
|
||||
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocShell> docShell;
|
||||
if (NS_SUCCEEDED(GetDocShellFromPS(presShell, getter_AddRefs(docShell)))) {
|
||||
// Now that we have the DocShell QI
|
||||
// it to a tree item to find it's parent
|
||||
nsCOMPtr<nsIDocShellTreeItem> item(do_QueryInterface(docShell));
|
||||
if (item) {
|
||||
nsCOMPtr<nsIDocShellTreeItem> itemParent;
|
||||
item->GetParent(getter_AddRefs(itemParent));
|
||||
// QI to get the WebShell for the parent document
|
||||
nsCOMPtr<nsIDocShell> parentDocShell(do_QueryInterface(itemParent));
|
||||
if (parentDocShell) {
|
||||
// Get the PresShell/Content and
|
||||
// Root Content Node of the parent document
|
||||
nsCOMPtr<nsIPresShell> parentPresShell;
|
||||
nsCOMPtr<nsIPresContext> parentPresContext;
|
||||
nsCOMPtr<nsIContent> rootContent;
|
||||
if (NS_SUCCEEDED(GetDocShellObjects(parentDocShell,
|
||||
getter_AddRefs(parentPresShell),
|
||||
getter_AddRefs(parentPresContext),
|
||||
getter_AddRefs(rootContent)))) {
|
||||
// QI the DocShell (of this sub-doc) to a webshell
|
||||
nsCOMPtr<nsIWebShell> webShell(do_QueryInterface(docShell));
|
||||
if (webShell && parentPresShell && parentPresContext && rootContent) {
|
||||
// Now, find the Content in the parent document
|
||||
// that represents this sub-doc,
|
||||
// we do that matching webshells
|
||||
nsCOMPtr<nsIContent> content;
|
||||
if (FindContentForWebShell(parentPresShell,
|
||||
rootContent,
|
||||
webShell,
|
||||
getter_AddRefs(content))) {
|
||||
// OK, we found the content node in the parent doc
|
||||
// that corresponds to this sub-doc
|
||||
// Get the frame for that content
|
||||
nsCOMPtr<nsIWeakReference> wr(getter_AddRefs(NS_GetWeakReference(parentPresShell)));
|
||||
nsIFrame* frame = nsnull;
|
||||
parentPresShell->GetPrimaryFrameFor(content, &frame);
|
||||
#ifdef NS_DEBUG_X
|
||||
printf("** Found: Con:%p Fr:%p", content, frame);
|
||||
char * name;
|
||||
if (GetNameForFrame(frame, &name)) {
|
||||
printf(" Name:[%s]", name);
|
||||
nsMemory::Free(name);
|
||||
}
|
||||
printf("\n");
|
||||
#endif
|
||||
|
||||
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
nsCOMPtr<nsIAccessible> acc(do_QueryInterface(frame));
|
||||
|
||||
*aAcc = CreateNewAccessible(acc, node, wr);
|
||||
NS_IF_ADDREF(*aAcc);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
74
mozilla/accessible/src/html/nsHTMLIFrameRootAccessible.h
Normal file
74
mozilla/accessible/src/html/nsHTMLIFrameRootAccessible.h
Normal file
@@ -0,0 +1,74 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsIFrameRootAccessible_H_
|
||||
#define _nsIFrameRootAccessible_H_
|
||||
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsIWebShell;
|
||||
|
||||
class nsHTMLIFrameAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLIFrameAccessible(nsIPresShell* aShell, nsIDOMNode* aNode, nsIAccessible* aRoot);
|
||||
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar * *aAccName);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *aAccRole);
|
||||
|
||||
protected:
|
||||
nsCOMPtr<nsIAccessible> mRootAccessible;
|
||||
};
|
||||
|
||||
class nsHTMLIFrameRootAccessible : public nsRootAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLIFrameRootAccessible(nsIWeakReference* aShell, nsIDOMNode* aNode);
|
||||
virtual ~nsHTMLIFrameRootAccessible();
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHOD GetAccParent(nsIAccessible * *aAccParent);
|
||||
|
||||
/* nsIAccessible getAccNextSibling (); */
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
|
||||
/* nsIAccessible getAccPreviousSibling (); */
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
|
||||
|
||||
NS_IMETHOD GetAccName(PRUnichar * *aAccName);
|
||||
|
||||
NS_IMETHOD GetAccRole(PRUint32 *aAccRole);
|
||||
|
||||
protected:
|
||||
|
||||
NS_IMETHOD GetHTMLIFrameAccessible(nsIAccessible** aAcc);
|
||||
|
||||
nsCOMPtr<nsIDOMNode> mRealDOMNode;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
146
mozilla/accessible/src/html/nsHTMLImageAccessible.cpp
Normal file
146
mozilla/accessible/src/html/nsHTMLImageAccessible.cpp
Normal file
@@ -0,0 +1,146 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsHTMLImageAccessible.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIHTMLDocument.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDOMHTMLCollection.h"
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
|
||||
// --- image -----
|
||||
|
||||
nsHTMLImageAccessible::nsHTMLImageAccessible(nsIPresShell* aShell, nsIDOMNode* aDOMNode, nsIImageFrame *aImageFrame):
|
||||
nsLinkableAccessible(aShell, aDOMNode), mPresShell(aShell)
|
||||
{
|
||||
nsCOMPtr<nsIDOMElement> element(do_QueryInterface(aDOMNode));
|
||||
nsCOMPtr<nsIDocument> doc;
|
||||
aShell->GetDocument(getter_AddRefs(doc));
|
||||
nsAutoString mapElementName;
|
||||
|
||||
if (doc && element) {
|
||||
nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(doc));
|
||||
element->GetAttribute(NS_LITERAL_STRING("usemap"),mapElementName);
|
||||
if (htmlDoc && !mapElementName.IsEmpty()) {
|
||||
if (mapElementName.CharAt(0) == '#')
|
||||
mapElementName.Cut(0,1);
|
||||
htmlDoc->GetImageMap(mapElementName, getter_AddRefs(mMapElement));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIContent> imageContent(do_QueryInterface(mNode));
|
||||
if (imageContent) {
|
||||
nsAutoString nameString;
|
||||
nsresult rv = AppendFlatStringFromContentNode(imageContent, &nameString);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_GRAPHIC;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsIAccessible *nsHTMLImageAccessible::CreateAreaAccessible(PRUint32 areaNum)
|
||||
{
|
||||
if (!mMapElement)
|
||||
return nsnull;
|
||||
|
||||
if (areaNum == -1) {
|
||||
PRInt32 numAreaMaps;
|
||||
GetAccChildCount(&numAreaMaps);
|
||||
if (numAreaMaps<=0)
|
||||
return nsnull;
|
||||
areaNum = NS_STATIC_CAST(PRUint32,numAreaMaps-1);
|
||||
}
|
||||
|
||||
nsIDOMHTMLCollection *mapAreas;
|
||||
mMapElement->GetAreas(&mapAreas);
|
||||
if (!mapAreas)
|
||||
return nsnull;
|
||||
|
||||
nsIDOMNode *domNode = nsnull;
|
||||
mapAreas->Item(areaNum,&domNode);
|
||||
if (!domNode)
|
||||
return nsnull;
|
||||
|
||||
nsresult rv;
|
||||
NS_WITH_SERVICE(nsIAccessibilityService, accService, "@mozilla.org/accessibilityService;1", &rv);
|
||||
if (accService) {
|
||||
nsIAccessible* acc = nsnull;
|
||||
nsCOMPtr<nsISupports> presShell(do_QueryInterface(mPresShell));
|
||||
accService->CreateHTMLAreaAccessible(presShell, domNode, this, &acc);
|
||||
return acc;
|
||||
}
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = CreateAreaAccessible(0);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = CreateAreaAccessible(-1);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
if (mMapElement) {
|
||||
nsIDOMHTMLCollection *mapAreas;
|
||||
mMapElement->GetAreas(&mapAreas);
|
||||
if (mapAreas) {
|
||||
PRUint32 length;
|
||||
mapAreas->GetLength(&length);
|
||||
*_retval = NS_STATIC_CAST(PRInt32, length);
|
||||
}
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
54
mozilla/accessible/src/html/nsHTMLImageAccessible.h
Normal file
54
mozilla/accessible/src/html/nsHTMLImageAccessible.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLImageAccessible_H_
|
||||
#define _nsHTMLImageAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIImageFrame.h"
|
||||
#include "nsIDOMHTMLMapElement.h"
|
||||
|
||||
/* Accessible for supporting images
|
||||
* supports:
|
||||
* - gets name, role
|
||||
* - support basic state
|
||||
*/
|
||||
class nsHTMLImageAccessible : public nsLinkableAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLImageAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode, nsIImageFrame *imageFrame);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
|
||||
protected:
|
||||
nsIAccessible *CreateAreaAccessible(PRUint32 areaNum);
|
||||
nsCOMPtr<nsIDOMHTMLMapElement> mMapElement;
|
||||
nsCOMPtr<nsIPresShell> mPresShell;
|
||||
};
|
||||
|
||||
#endif
|
||||
71
mozilla/accessible/src/html/nsHTMLLinkAccessible.cpp
Normal file
71
mozilla/accessible/src/html/nsHTMLLinkAccessible.cpp
Normal file
@@ -0,0 +1,71 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsILink.h"
|
||||
#include "nsILinkHandler.h"
|
||||
#include "nsISelection.h"
|
||||
#include "nsISelectionController.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsIDOMElement.h"
|
||||
|
||||
nsHTMLLinkAccessible::nsHTMLLinkAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsLinkableAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
if (!IsALink()) // Also initializes private data members
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsAutoString nameString;
|
||||
nsresult rv = AppendFlatStringFromSubtree(mLinkContent, &nameString);
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LINK;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mNode));
|
||||
if (elt) {
|
||||
nsAutoString hrefString;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("href"), hrefString);
|
||||
*_retval = hrefString.ToNewUnicode();
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
41
mozilla/accessible/src/html/nsHTMLLinkAccessible.h
Normal file
41
mozilla/accessible/src/html/nsHTMLLinkAccessible.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLLinkAccessible_H_
|
||||
#define _nsHTMLLinkAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsHTMLLinkAccessible : public nsLinkableAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLLinkAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
#endif
|
||||
51
mozilla/accessible/src/html/nsHTMLTableAccessible.cpp
Normal file
51
mozilla/accessible/src/html/nsHTMLTableAccessible.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLTableAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
nsHTMLTableCellAccessible::nsHTMLTableCellAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsDOMAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTableCellAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_CELL;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsHTMLTableAccessible::nsHTMLTableAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsDOMAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTableAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_TABLE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
44
mozilla/accessible/src/html/nsHTMLTableAccessible.h
Normal file
44
mozilla/accessible/src/html/nsHTMLTableAccessible.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLTableAccessible_H_
|
||||
#define _nsHTMLTableAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsHTMLTableCellAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLTableCellAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
};
|
||||
|
||||
|
||||
class nsHTMLTableAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLTableAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
};
|
||||
|
||||
#endif
|
||||
83
mozilla/accessible/src/html/nsHTMLTextAccessible.cpp
Normal file
83
mozilla/accessible/src/html/nsHTMLTextAccessible.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLTextAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsILink.h"
|
||||
#include "nsILinkHandler.h"
|
||||
#include "nsISelection.h"
|
||||
#include "nsISelectionController.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
nsHTMLTextAccessible::nsHTMLTextAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsLinkableAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
|
||||
nsAutoString nameString;
|
||||
nsresult rv = NS_OK;
|
||||
//if (IsALink()) {
|
||||
// rv = AppendFlatStringFromSubtree(mLinkContent, &nameString);
|
||||
//}
|
||||
//else
|
||||
mNode->GetNodeValue(nameString);
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_STATICTEXT;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
43
mozilla/accessible/src/html/nsHTMLTextAccessible.h
Normal file
43
mozilla/accessible/src/html/nsHTMLTextAccessible.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLTextAccessible_H_
|
||||
#define _nsHTMLTextAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsIWeakReference;
|
||||
class nsITextControlFrame;
|
||||
|
||||
class nsHTMLTextAccessible : public nsLinkableAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLTextAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
};
|
||||
|
||||
#endif
|
||||
3
mozilla/accessible/src/jar.mn
Normal file
3
mozilla/accessible/src/jar.mn
Normal file
@@ -0,0 +1,3 @@
|
||||
en-US.jar:
|
||||
locale/en-US/global/accessible.properties
|
||||
|
||||
58
mozilla/accessible/src/makefile.win
Normal file
58
mozilla/accessible/src/makefile.win
Normal file
@@ -0,0 +1,58 @@
|
||||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
DEPTH=..\..
|
||||
MODULE=accessibility
|
||||
LIBRARY_NAME=accessibility_s
|
||||
|
||||
CPP_OBJS=\
|
||||
.\$(OBJDIR)\nsAccessible.obj \
|
||||
.\$(OBJDIR)\nsRootAccessible.obj \
|
||||
.\$(OBJDIR)\nsHTMLIFrameRootAccessible.obj \
|
||||
.\$(OBJDIR)\nsAccessibilityService.obj \
|
||||
.\$(OBJDIR)\nsSelectAccessible.obj \
|
||||
.\$(OBJDIR)\nsGenericAccessible.obj \
|
||||
.\$(OBJDIR)\nsHTMLFormControlAccessible.obj \
|
||||
.\$(OBJDIR)\nsHTMLTextAccessible.obj \
|
||||
.\$(OBJDIR)\nsHTMLImageAccessible.obj \
|
||||
.\$(OBJDIR)\nsHTMLAreaAccessible.obj \
|
||||
.\$(OBJDIR)\nsHTMLTableAccessible.obj \
|
||||
.\$(OBJDIR)\nsHTMLLinkAccessible.obj \
|
||||
$(NULL)
|
||||
|
||||
LINCS= \
|
||||
-I..\..\layout\html\forms\public \
|
||||
-I..\..\layout\html\forms\src \
|
||||
-I..\..\layout\html\base\src \
|
||||
$(NULL)
|
||||
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
|
||||
install:: $(LIBRARY)
|
||||
$(MAKE_INSTALL) $(LIBRARY) $(DIST)\lib
|
||||
|
||||
clobber::
|
||||
rm -f $(DIST)\lib\$(LIBRARY_NAME).lib
|
||||
|
||||
|
||||
|
||||
|
||||
393
mozilla/accessible/src/nsAccessibilityService.cpp
Normal file
393
mozilla/accessible/src/nsAccessibilityService.cpp
Normal file
@@ -0,0 +1,393 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: David W. Hyatt (hyatt@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nsAccessibilityService.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsHTMLFormControlAccessible.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
#include "nsSelectAccessible.h"
|
||||
#include "nsHTMLTextAccessible.h"
|
||||
#include "nsHTMLTableAccessible.h"
|
||||
#include "nsHTMLImageAccessible.h"
|
||||
#include "nsHTMLAreaAccessible.h"
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
|
||||
// IFrame
|
||||
#include "nsIDocShell.h"
|
||||
#include "nsHTMLIFrameRootAccessible.h"
|
||||
|
||||
//--------------------
|
||||
|
||||
|
||||
nsAccessibilityService::nsAccessibilityService()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
//printf("################################## nsAccessibilityService\n");
|
||||
}
|
||||
|
||||
nsAccessibilityService::~nsAccessibilityService()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_THREADSAFE_ISUPPORTS1(nsAccessibilityService, nsIAccessibilityService);
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsIAccessibilityService methods:
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAccessibilityService::CreateRootAccessible(nsISupports* aPresContext, nsISupports* aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* f = NS_STATIC_CAST(nsIFrame*, aFrame);
|
||||
|
||||
nsCOMPtr<nsIPresContext> c(do_QueryInterface(aPresContext));
|
||||
NS_ASSERTION(c,"Error non prescontext passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresShell> s;
|
||||
c->GetShell(getter_AddRefs(s));
|
||||
|
||||
NS_ASSERTION(s,"Error not presshell!!");
|
||||
|
||||
nsCOMPtr<nsIWeakReference> wr (getter_AddRefs(NS_GetWeakReference(s)));
|
||||
|
||||
//printf("################################## CreateRootAccessible\n");
|
||||
*_retval = new nsRootAccessible(wr);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAccessibilityService::CreateHTMLSelectAccessible(nsIAtom* aPopupAtom, nsIDOMNode* node, nsISupports* aPresContext, nsIAccessible **_retval)
|
||||
{
|
||||
/*
|
||||
nsCOMPtr<nsIContent> n(do_QueryInterface(node));
|
||||
NS_ASSERTION(n,"Error non nsIContent passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresContext> c(do_QueryInterface(aPresContext));
|
||||
NS_ASSERTION(c,"Error non prescontext passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresShell> s;
|
||||
c->GetShell(getter_AddRefs(s));
|
||||
|
||||
nsCOMPtr<nsIWeakReference> wr = getter_AddRefs(NS_GetWeakReference(s));
|
||||
|
||||
*_retval = new nsSelectAccessible(aPopupAtom, nsnull, node, wr);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
*/
|
||||
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLCheckboxAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLCheckboxAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLCheckboxAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMRadioButtonAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLRadioButtonAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLRadioButtonAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLButtonAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLButtonAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLButtonAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTML4ButtonAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTML4ButtonAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTML4ButtonAccessible(shell,node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLTextAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTextAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
//printf("################################## CreateHTMLTextAccessible\n");
|
||||
*_retval = new nsHTMLTextAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible createHTMLTableAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTableAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLTableAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLTableCellAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTableCellAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLTableCellAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLImageAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLImageAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr<nsIImageFrame> imageFrame(do_QueryInterface(aFrame));
|
||||
if (!imageFrame)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
*_retval = new nsHTMLImageAccessible(shell, node, imageFrame);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLAreaAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLAreaAccessible(nsISupports *aShell, nsIDOMNode *aDOMNode, nsIAccessible *aAccParent,
|
||||
nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryInterface(aShell));
|
||||
|
||||
*_retval = new nsHTMLAreaAccessible(shell, aDOMNode, aAccParent);
|
||||
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
}
|
||||
|
||||
/* nsIAccessible createHTMLTextFieldAccessible (in nsISupports aPresShell, in nsISupports aFrame); */
|
||||
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTextFieldAccessible(nsISupports *aFrame, nsIAccessible **_retval)
|
||||
{
|
||||
nsIFrame* frame;
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
nsresult rv = GetInfo(aFrame, &frame, getter_AddRefs(shell), getter_AddRefs(node));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
*_retval = new nsHTMLTextFieldAccessible(shell, node);
|
||||
if (*_retval) {
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
} else
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAccessibilityService::GetInfo(nsISupports* aFrame, nsIFrame** aRealFrame, nsIPresShell** aShell, nsIDOMNode** aNode)
|
||||
{
|
||||
*aRealFrame = NS_STATIC_CAST(nsIFrame*, aFrame);
|
||||
nsCOMPtr<nsIContent> content;
|
||||
(*aRealFrame)->GetContent(getter_AddRefs(content));
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
*aNode = node;
|
||||
NS_ADDREF(*aNode);
|
||||
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
content->GetDocument(*getter_AddRefs(document));
|
||||
if (!document)
|
||||
return NS_ERROR_FAILURE;
|
||||
if (!document)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
#ifdef DEBUG
|
||||
PRInt32 shells = document->GetNumberOfShells();
|
||||
NS_ASSERTION(shells > 0,"Error no shells!");
|
||||
#endif
|
||||
|
||||
*aShell = document->GetShellAt(0);
|
||||
NS_IF_ADDREF(*aShell);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAccessibilityService::CreateHTMLIFrameAccessible(nsIDOMNode* node, nsISupports* aPresContext, nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(node));
|
||||
NS_ASSERTION(content,"Error non nsIContent passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresContext> presContext(do_QueryInterface(aPresContext));
|
||||
NS_ASSERTION(presContext,"Error non prescontext passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIPresShell> presShell;
|
||||
presContext->GetShell(getter_AddRefs(presShell));
|
||||
NS_ASSERTION(presShell,"Error non PresShell passed to accessible factory!!!");
|
||||
|
||||
nsCOMPtr<nsIWeakReference> weakRef (getter_AddRefs(NS_GetWeakReference(presShell)));
|
||||
|
||||
nsCOMPtr<nsIDocument> doc;
|
||||
if (NS_SUCCEEDED(content->GetDocument(*getter_AddRefs(doc))) && doc) {
|
||||
nsCOMPtr<nsIPresShell> presShell = getter_AddRefs(doc->GetShellAt(0));
|
||||
if (presShell) {
|
||||
nsCOMPtr<nsISupports> supps;
|
||||
presShell->GetSubShellFor(content, getter_AddRefs(supps));
|
||||
if (supps) {
|
||||
nsCOMPtr<nsIDocShell> docShell(do_QueryInterface(supps));
|
||||
if (docShell) {
|
||||
nsCOMPtr<nsIPresShell> ps;
|
||||
docShell->GetPresShell(getter_AddRefs(ps));
|
||||
if (ps) {
|
||||
nsCOMPtr<nsIWeakReference> wr (getter_AddRefs(NS_GetWeakReference(ps)));
|
||||
//printf("################################## CreateHTMLIFrameAccessible\n");
|
||||
|
||||
nsCOMPtr<nsIAccessible> root = new nsHTMLIFrameRootAccessible(wr,node);
|
||||
*_retval = new nsHTMLIFrameAccessible(presShell, node, root);
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsresult
|
||||
NS_NewAccessibilityService(nsIAccessibilityService** aResult)
|
||||
{
|
||||
NS_PRECONDITION(aResult != nsnull, "null ptr");
|
||||
if (! aResult)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
nsAccessibilityService* a = new nsAccessibilityService();
|
||||
if (a == nsnull)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
NS_ADDREF(a);
|
||||
*aResult = a;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
53
mozilla/accessible/src/nsAccessibilityService.h
Normal file
53
mozilla/accessible/src/nsAccessibilityService.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
*
|
||||
* Original Author: David W. Hyatt (hyatt@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef __nsAccessibilityService_h__
|
||||
#define __nsAccessibilityService_h__
|
||||
|
||||
#include "nsIAccessibilityService.h"
|
||||
class nsIFrame;
|
||||
class nsIPresShell;
|
||||
class nsIDOMNode;
|
||||
|
||||
class nsAccessibilityService : public nsIAccessibilityService
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
// nsIAccessibilityService methods:
|
||||
NS_DECL_NSIACCESSIBILITYSERVICE
|
||||
|
||||
// nsAccessibilityService methods:
|
||||
nsAccessibilityService();
|
||||
virtual ~nsAccessibilityService();
|
||||
|
||||
public:
|
||||
|
||||
private:
|
||||
NS_IMETHOD GetInfo(nsISupports* aFrame, nsIFrame** aRealFrame, nsIPresShell** aShell, nsIDOMNode** aContent);
|
||||
|
||||
};
|
||||
|
||||
#endif /* __nsIccessibilityService_h__ */
|
||||
1782
mozilla/accessible/src/nsAccessible.cpp
Normal file
1782
mozilla/accessible/src/nsAccessible.cpp
Normal file
File diff suppressed because it is too large
Load Diff
114
mozilla/accessible/src/nsAccessible.h
Normal file
114
mozilla/accessible/src/nsAccessible.h
Normal file
@@ -0,0 +1,114 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsAccessible_H_
|
||||
#define _nsAccessible_H_
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIFocusController.h"
|
||||
#include "nsRect.h"
|
||||
#include "nsPoint.h"
|
||||
|
||||
#define ACCESSIBLE_BUNDLE_URL "chrome://global/locale/accessible.properties"
|
||||
|
||||
class nsIFrame;
|
||||
class nsIDocShell;
|
||||
class nsIWebShell;
|
||||
class nsIContent;
|
||||
|
||||
class nsAccessible : public nsIAccessible
|
||||
// public nsIAccessibleWidgetAccess
|
||||
{
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
// nsIAccessibilityService methods:
|
||||
NS_DECL_NSIACCESSIBLE
|
||||
|
||||
public:
|
||||
nsAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual ~nsAccessible();
|
||||
|
||||
virtual void GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList) { aList = nsnull; }
|
||||
|
||||
// Helper Routines for Sub-Docs
|
||||
static nsresult GetDocShellFromPS(nsIPresShell* aPresShell, nsIDocShell** aDocShell);
|
||||
static nsresult GetDocShellObjects(nsIDocShell* aDocShell,
|
||||
nsIPresShell** aPresShell,
|
||||
nsIPresContext** aPresContext,
|
||||
nsIContent** aContent);
|
||||
static nsresult GetDocShells(nsIPresShell* aPresShell,
|
||||
nsIDocShell** aDocShell,
|
||||
nsIDocShell** aParentDocShell);
|
||||
static nsresult GetParentPresShellAndContent(nsIPresShell* aPresShell,
|
||||
nsIPresShell** aParentPresShell,
|
||||
nsIContent** aSubShellContent);
|
||||
|
||||
static PRBool FindContentForWebShell(nsIPresShell* aParentPresShell,
|
||||
nsIContent* aParentContent,
|
||||
nsIWebShell* aWebShell,
|
||||
nsIContent** aFoundContent);
|
||||
nsresult CalcOffset(nsIFrame* aFrame,
|
||||
nsIPresContext * aPresContext,
|
||||
nsRect& aRect);
|
||||
nsresult GetAbsPosition(nsIPresShell* aPresShell, nsPoint& aPoint);
|
||||
nsresult GetAbsoluteFramePosition(nsIPresContext* aPresContext,
|
||||
nsIFrame *aFrame,
|
||||
nsRect& aAbsoluteTwipsRect,
|
||||
nsRect& aAbsolutePixelRect);
|
||||
static nsresult GetTranslatedString(PRUnichar *aKey, nsAWritableString *aStringOut);
|
||||
protected:
|
||||
virtual nsIFrame* GetFrame();
|
||||
virtual nsIFrame* GetBoundsFrame();
|
||||
virtual void GetBounds(nsRect& aRect, nsIFrame** aRelativeFrame);
|
||||
virtual void GetPresContext(nsCOMPtr<nsIPresContext>& aContext);
|
||||
virtual nsIAccessible* CreateNewNextAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewPreviousAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewParentAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewLastAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
|
||||
// Data Members
|
||||
nsCOMPtr<nsIDOMNode> mDOMNode;
|
||||
nsCOMPtr<nsIWeakReference> mPresShell;
|
||||
nsCOMPtr<nsIAccessible> mAccessible;
|
||||
nsCOMPtr<nsIFocusController> mFocusController;
|
||||
};
|
||||
|
||||
/* Special Accessible that knows how to handle hit detection for flowing text */
|
||||
class nsHTMLBlockAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLBlockAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
NS_IMETHOD AccGetAt(PRInt32 x, PRInt32 y, nsIAccessible **_retval);
|
||||
protected:
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aFrame, nsIWeakReference* aShell);
|
||||
};
|
||||
|
||||
#endif
|
||||
596
mozilla/accessible/src/nsGenericAccessible.cpp
Normal file
596
mozilla/accessible/src/nsGenericAccessible.cpp
Normal file
@@ -0,0 +1,596 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsIEventStateManager.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIWeakReference.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsILink.h"
|
||||
|
||||
#include "nsIContent.h"
|
||||
#include "nsITextContent.h"
|
||||
#include "nsIDOMComment.h"
|
||||
#include "nsIStyleContext.h"
|
||||
#include "nsStyleConsts.h"
|
||||
#include "nsIDOMHTMLImageElement.h"
|
||||
#include "nsIDOMHTMLInputElement.h"
|
||||
#include "nsIDOMHTMLBRElement.h"
|
||||
#include "nsIAtom.h"
|
||||
#include "nsHTMLAtoms.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsGUIEvent.h"
|
||||
|
||||
/* Implementation file */
|
||||
NS_IMPL_ISUPPORTS1(nsGenericAccessible, nsIAccessible)
|
||||
|
||||
nsGenericAccessible::nsGenericAccessible()
|
||||
{
|
||||
NS_INIT_ISUPPORTS();
|
||||
/* member initializers and constructor code */
|
||||
}
|
||||
|
||||
nsGenericAccessible::~nsGenericAccessible()
|
||||
{
|
||||
/* destructor code */
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccParent (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccNextSibling (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccPreviousSibling (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccValue (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void setAccName (in wstring name); */
|
||||
NS_IMETHODIMP nsGenericAccessible::SetAccName(const PRUnichar *name)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void setAccValue (in wstring value); */
|
||||
NS_IMETHODIMP nsGenericAccessible::SetAccValue(const PRUnichar *value)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccDescription (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccDescription(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccState (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFocused(); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccFocused(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccHelp (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccHelp(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accGetAt (in long x, in long y); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccGetAt(PRInt32 x, PRInt32 y, nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateRight (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateRight(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateLeft (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateLeft(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateUp (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateUp(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible accNavigateDown (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccNavigateDown(nsIAccessible **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accGetBounds (out long x, out long y, out long width, out long height); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accAddSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccAddSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accRemoveSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccRemoveSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accExtendSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccExtendSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accTakeSelection (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccTakeSelection()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accTakeFocus (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::AccTakeFocus()
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccExtState (); */
|
||||
NS_IMETHODIMP nsGenericAccessible::GetAccExtState(PRUint32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsGenericAccessible::AccGetDOMNode(nsIDOMNode **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
//-------------
|
||||
// nsDOMAccessible
|
||||
//-------------
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDOMAccessible::QueryInterface(REFNSIID aIID, void** aResult)
|
||||
{
|
||||
if (!aResult)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
if (aIID.Equals(NS_GET_IID(nsIDOMNode))) {
|
||||
nsIDOMNode* node = mNode;
|
||||
*aResult = (void*) node;
|
||||
NS_ADDREF(node);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsGenericAccessible::QueryInterface(aIID, aResult);
|
||||
}
|
||||
|
||||
nsDOMAccessible::nsDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode)
|
||||
{
|
||||
mPresShell = do_GetWeakReference(aShell);
|
||||
mNode = aNode;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsDOMAccessible::AccGetDOMNode(nsIDOMNode **_retval)
|
||||
{
|
||||
*_retval = mNode;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void accRemoveSelection (); */
|
||||
NS_IMETHODIMP nsDOMAccessible::AccRemoveSelection()
|
||||
{
|
||||
nsCOMPtr<nsISelectionController> control(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsISelection> selection;
|
||||
nsresult rv = control->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
nsCOMPtr<nsIDOMNode> parent;
|
||||
rv = mNode->GetParentNode(getter_AddRefs(parent));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
rv = selection->Collapse(parent, 0);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void accTakeSelection (); */
|
||||
NS_IMETHODIMP nsDOMAccessible::AccTakeSelection()
|
||||
{
|
||||
nsCOMPtr<nsISelectionController> control(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsISelection> selection;
|
||||
nsresult rv = control->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
nsCOMPtr<nsIDOMNode> parent;
|
||||
rv = mNode->GetParentNode(getter_AddRefs(parent));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
PRInt32 offsetInParent = 0;
|
||||
nsCOMPtr<nsIDOMNode> child;
|
||||
rv = parent->GetFirstChild(getter_AddRefs(child));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
nsCOMPtr<nsIDOMNode> next;
|
||||
|
||||
while(child)
|
||||
{
|
||||
if (child == mNode) {
|
||||
// Collapse selection to just before desired element,
|
||||
rv = selection->Collapse(parent, offsetInParent);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
// then extend it to just after
|
||||
rv = selection->Extend(parent, offsetInParent+1);
|
||||
return rv;
|
||||
}
|
||||
|
||||
child->GetNextSibling(getter_AddRefs(next));
|
||||
child = next;
|
||||
offsetInParent++;
|
||||
}
|
||||
|
||||
// didn't find a child
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
/* void accTakeFocus (); */
|
||||
NS_IMETHODIMP nsDOMAccessible::AccTakeFocus()
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
content->SetFocus(context);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsDOMAccessible::AppendFlatStringFromContentNode(nsIContent *aContent, nsAWritableString *aFlatString)
|
||||
{
|
||||
nsCOMPtr<nsITextContent> textContent(do_QueryInterface(aContent));
|
||||
if (textContent) {
|
||||
nsCOMPtr<nsIDOMComment> commentNode(do_QueryInterface(aContent));
|
||||
if (!commentNode) {
|
||||
PRBool isHTMLBlock = PR_FALSE;
|
||||
nsIFrame *frame;
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIContent> parentContent;
|
||||
aContent->GetParent(*getter_AddRefs(parentContent));
|
||||
if (parentContent) {
|
||||
nsresult rv = shell->GetPrimaryFrameFor(parentContent, &frame);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
// If this text is inside a block level frame (as opposed to span level), we need to add spaces around that
|
||||
// block's text, so we don't get words jammed together in final name
|
||||
// Extra spaces will be trimmed out later
|
||||
nsCOMPtr<nsIStyleContext> styleContext;
|
||||
frame->GetStyleContext(getter_AddRefs(styleContext));
|
||||
if (styleContext) {
|
||||
const nsStyleDisplay* display = (const nsStyleDisplay*)styleContext->GetStyleData(eStyleStruct_Display);
|
||||
if (display->IsBlockLevel() || display->mDisplay == NS_STYLE_DISPLAY_TABLE_CELL) {
|
||||
isHTMLBlock = PR_TRUE;
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
nsAutoString text;
|
||||
textContent->CopyText(text);
|
||||
if (text.Length()>0)
|
||||
aFlatString->Append(text);
|
||||
if (isHTMLBlock)
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
nsCOMPtr<nsIDOMHTMLBRElement> brElement(do_QueryInterface(aContent));
|
||||
if (brElement) {
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIDOMHTMLImageElement> imageContent(do_QueryInterface(aContent));
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> inputContent(do_QueryInterface(aContent));
|
||||
if (imageContent || inputContent) {
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(aContent));
|
||||
nsAutoString textEquivalent;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("alt"), textEquivalent);
|
||||
if (textEquivalent.IsEmpty())
|
||||
elt->GetAttribute(NS_LITERAL_STRING("title"), textEquivalent);
|
||||
if (textEquivalent.IsEmpty())
|
||||
elt->GetAttribute(NS_LITERAL_STRING("name"), textEquivalent);
|
||||
if (textEquivalent.IsEmpty())
|
||||
elt->GetAttribute(NS_LITERAL_STRING("src"), textEquivalent);
|
||||
if (!textEquivalent.IsEmpty()) {
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
aFlatString->Append(textEquivalent);
|
||||
aFlatString->Append(NS_LITERAL_STRING(" "));
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsDOMAccessible::AppendFlatStringFromSubtree(nsIContent *aContent, nsAWritableString *aFlatString)
|
||||
{
|
||||
// Depth first search for all text nodes that are decendants of content node.
|
||||
// Append all the text into one flat string
|
||||
|
||||
PRInt32 numChildren = 0;
|
||||
|
||||
aContent->ChildCount(numChildren);
|
||||
if (numChildren == 0) {
|
||||
nsAutoString contentText;
|
||||
AppendFlatStringFromContentNode(aContent, aFlatString);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIContent *contentWalker;
|
||||
PRInt32 index;
|
||||
for (index = 0; index < numChildren; index++) {
|
||||
aContent->ChildAt(index, contentWalker);
|
||||
AppendFlatStringFromSubtree(contentWalker, aFlatString);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//-------------
|
||||
// nsLeafFrameAccessible
|
||||
//-------------
|
||||
|
||||
nsLeafDOMAccessible::nsLeafDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsDOMAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsLeafDOMAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsLeafDOMAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsLeafDOMAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------
|
||||
// nsLinkableAccessible
|
||||
//----------------
|
||||
|
||||
nsLinkableAccessible::nsLinkableAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsDOMAccessible(aShell, aDomNode), mIsALinkCached(PR_FALSE), mLinkContent(nsnull), mIsLinkVisited(PR_FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
/* long GetAccState (); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval |= STATE_READONLY | STATE_SELECTABLE;
|
||||
if (IsALink()) {
|
||||
*_retval |= STATE_FOCUSABLE | STATE_LINKED;
|
||||
if (mIsLinkVisited)
|
||||
*_retval |= STATE_TRAVERSED;
|
||||
}
|
||||
|
||||
// Get current selection and find out if current node is in it
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
nsIFrame *frame;
|
||||
if (content && NS_SUCCEEDED(shell->GetPrimaryFrameFor(content, &frame))) {
|
||||
nsCOMPtr<nsISelectionController> selCon;
|
||||
frame->GetSelectionController(context,getter_AddRefs(selCon));
|
||||
if (selCon) {
|
||||
nsCOMPtr<nsISelection> domSel;
|
||||
selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(domSel));
|
||||
if (domSel) {
|
||||
PRBool isSelected = PR_FALSE, isCollapsed = PR_TRUE;
|
||||
domSel->ContainsNode(mNode, PR_TRUE, &isSelected);
|
||||
domSel->GetIsCollapsed(&isCollapsed);
|
||||
if (isSelected && !isCollapsed)
|
||||
*_retval |=STATE_SELECTED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Focused? Do we implement that here or up the chain?
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
if (IsALink()) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("jump"));
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsLinkableAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
if (IsALink()) {
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> presContext;
|
||||
shell->GetPresContext(getter_AddRefs(presContext));
|
||||
if (presContext) {
|
||||
nsMouseEvent linkClickEvent;
|
||||
linkClickEvent.eventStructType = NS_EVENT;
|
||||
linkClickEvent.message = NS_MOUSE_LEFT_CLICK;
|
||||
linkClickEvent.isShift = PR_FALSE;
|
||||
linkClickEvent.isControl = PR_FALSE;
|
||||
linkClickEvent.isAlt = PR_FALSE;
|
||||
linkClickEvent.isMeta = PR_FALSE;
|
||||
linkClickEvent.clickCount = 0;
|
||||
linkClickEvent.widget = nsnull;
|
||||
|
||||
nsEventStatus eventStatus = nsEventStatus_eIgnore;
|
||||
mLinkContent->HandleDOMEvent(presContext, &linkClickEvent,
|
||||
nsnull, NS_EVENT_FLAG_INIT, &eventStatus);
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
PRBool nsLinkableAccessible::IsALink()
|
||||
{
|
||||
if (mIsALinkCached) // Cached answer?
|
||||
return mLinkContent? PR_TRUE: PR_FALSE;
|
||||
|
||||
nsCOMPtr<nsIContent> walkUpContent(do_QueryInterface(mNode));
|
||||
if (walkUpContent) {
|
||||
nsCOMPtr<nsIContent> tempContent = walkUpContent;
|
||||
while (walkUpContent) {
|
||||
nsCOMPtr<nsILink> link(do_QueryInterface(walkUpContent));
|
||||
if (link) {
|
||||
mLinkContent = tempContent;
|
||||
mIsALinkCached = PR_TRUE;
|
||||
nsLinkState linkState;
|
||||
link->GetLinkState(linkState);
|
||||
if (linkState == eLinkState_Visited)
|
||||
mIsLinkVisited = PR_TRUE;
|
||||
return PR_TRUE;
|
||||
}
|
||||
walkUpContent->GetParent(*getter_AddRefs(tempContent));
|
||||
walkUpContent = tempContent;
|
||||
}
|
||||
}
|
||||
mIsALinkCached = PR_TRUE; // Cached that there is no link
|
||||
return PR_FALSE;
|
||||
}
|
||||
107
mozilla/accessible/src/nsGenericAccessible.h
Normal file
107
mozilla/accessible/src/nsGenericAccessible.h
Normal file
@@ -0,0 +1,107 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric D Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsGenericAccessible_H_
|
||||
#define _nsGenericAccessible_H_
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIAccessible.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIWeakReference.h"
|
||||
|
||||
/**
|
||||
* Basic implementation
|
||||
* supports nothing
|
||||
*/
|
||||
class nsGenericAccessible : public nsIAccessible
|
||||
{
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIACCESSIBLE
|
||||
|
||||
public:
|
||||
nsGenericAccessible();
|
||||
virtual ~nsGenericAccessible();
|
||||
};
|
||||
|
||||
/**
|
||||
* And accessible that observes a dom node
|
||||
* supports:
|
||||
* - selection
|
||||
* - focus
|
||||
*/
|
||||
class nsDOMAccessible : public nsGenericAccessible
|
||||
{
|
||||
public:
|
||||
nsDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
|
||||
NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr);
|
||||
|
||||
NS_IMETHOD AccTakeSelection(void);
|
||||
NS_IMETHOD AccTakeFocus(void);
|
||||
NS_IMETHOD AccRemoveSelection(void);
|
||||
NS_IMETHOD AccGetDOMNode(nsIDOMNode **_retval);
|
||||
|
||||
protected:
|
||||
NS_IMETHOD AppendFlatStringFromSubtree(nsIContent *aContent, nsAWritableString *aFlatString);
|
||||
NS_IMETHOD AppendFlatStringFromContentNode(nsIContent *aContent, nsAWritableString *aFlatString);
|
||||
nsCOMPtr<nsIWeakReference> mPresShell;
|
||||
nsCOMPtr<nsIDOMNode> mNode;
|
||||
};
|
||||
|
||||
/* Leaf version of DOM Accessible
|
||||
* has no children
|
||||
*/
|
||||
class nsLeafDOMAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsLeafDOMAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
};
|
||||
|
||||
|
||||
class nsLinkableAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsLinkableAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
|
||||
protected:
|
||||
nsCOMPtr<nsIDOMNode> mDomNode;
|
||||
PRBool IsALink();
|
||||
PRBool mIsALinkCached; // -1 = unknown, 0 = not a link, 1 = is a link
|
||||
nsCOMPtr<nsIContent> mLinkContent;
|
||||
PRBool mIsLinkVisited;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
218
mozilla/accessible/src/nsHTMLAreaAccessible.cpp
Normal file
218
mozilla/accessible/src/nsHTMLAreaAccessible.cpp
Normal file
@@ -0,0 +1,218 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsHTMLAreaAccessible.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMHTMLAreaElement.h"
|
||||
|
||||
|
||||
// --- area -----
|
||||
|
||||
nsHTMLAreaAccessible::nsHTMLAreaAccessible(nsIPresShell *aPresShell, nsIDOMNode *aDomNode, nsIAccessible *aAccParent):
|
||||
nsGenericAccessible(), mPresShell(aPresShell), mDOMNode(aDomNode), mAccParent(aAccParent)
|
||||
{
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
|
||||
if (elt) {
|
||||
nsAutoString hrefString;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("title"), hrefString);
|
||||
if (!hrefString.IsEmpty()) {
|
||||
*_retval = hrefString.ToNewUnicode();
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LINK;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccValue (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mDOMNode));
|
||||
if (elt) {
|
||||
nsAutoString hrefString;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("href"), hrefString);
|
||||
*_retval = hrefString.ToNewUnicode();
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccDescription (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccDescription(PRUnichar **_retval)
|
||||
{
|
||||
// Still to do - follow IE's standard here
|
||||
*_retval = 0;
|
||||
nsAutoString shapeString;
|
||||
nsCOMPtr<nsIDOMHTMLAreaElement> area(do_QueryInterface(mDOMNode));
|
||||
if (area) {
|
||||
area->GetShape(shapeString);
|
||||
if (!shapeString.IsEmpty())
|
||||
*_retval = ToNewUnicode(shapeString);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("jump"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIPresContext> presContext;
|
||||
mPresShell->GetPresContext(getter_AddRefs(presContext));
|
||||
if (presContext) {
|
||||
nsMouseEvent linkClickEvent;
|
||||
linkClickEvent.eventStructType = NS_EVENT;
|
||||
linkClickEvent.message = NS_MOUSE_LEFT_CLICK;
|
||||
linkClickEvent.isShift = PR_FALSE;
|
||||
linkClickEvent.isControl = PR_FALSE;
|
||||
linkClickEvent.isAlt = PR_FALSE;
|
||||
linkClickEvent.isMeta = PR_FALSE;
|
||||
linkClickEvent.clickCount = 0;
|
||||
linkClickEvent.widget = nsnull;
|
||||
|
||||
nsEventStatus eventStatus = nsEventStatus_eIgnore;
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
|
||||
content->HandleDOMEvent(presContext, &linkClickEvent,
|
||||
nsnull, NS_EVENT_FLAG_INIT, &eventStatus);
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = STATE_LINKED | STATE_FOCUSABLE | STATE_READONLY;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccParent(nsIAccessible * *aAccParent)
|
||||
{
|
||||
*aAccParent = mAccParent;
|
||||
NS_IF_ADDREF(*aAccParent);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible *nsHTMLAreaAccessible::CreateAreaAccessible(nsIDOMNode *aDOMNode)
|
||||
{
|
||||
nsresult rv;
|
||||
NS_WITH_SERVICE(nsIAccessibilityService, accService, "@mozilla.org/accessibilityService;1", &rv);
|
||||
if (accService) {
|
||||
nsIAccessible* acc = nsnull;
|
||||
accService->CreateHTMLAreaAccessible(mPresShell, aDOMNode, mAccParent, &acc);
|
||||
return acc;
|
||||
}
|
||||
return nsnull;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccNextSibling(nsIAccessible * *aAccNextSibling)
|
||||
{
|
||||
*aAccNextSibling = nsnull;
|
||||
nsCOMPtr<nsIDOMNode> nextNode;
|
||||
mDOMNode->GetNextSibling(getter_AddRefs(nextNode));
|
||||
if (nextNode)
|
||||
*aAccNextSibling = CreateAreaAccessible(nextNode);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute nsIAccessible accPreviousSibling; */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::GetAccPreviousSibling(nsIAccessible * *aAccPrevSibling)
|
||||
{
|
||||
*aAccPrevSibling = nsnull;
|
||||
nsCOMPtr<nsIDOMNode> prevNode;
|
||||
mDOMNode->GetPreviousSibling(getter_AddRefs(prevNode));
|
||||
if (prevNode)
|
||||
*aAccPrevSibling = CreateAreaAccessible(prevNode);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* void accGetBounds (out long x, out long y, out long width, out long height); */
|
||||
NS_IMETHODIMP nsHTMLAreaAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
//nsIFrame *frame;
|
||||
// Do a better job on this later - need to use GetRect on mAreas of nsImageMap from nsImageFrame
|
||||
//return mAccParent->nsAccessible::AccGetBounds(x,y,width,height);
|
||||
|
||||
*x = *y = *width = *height = 0;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
61
mozilla/accessible/src/nsHTMLAreaAccessible.h
Normal file
61
mozilla/accessible/src/nsHTMLAreaAccessible.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLAreaAccessible_H_
|
||||
#define _nsHTMLAreaAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
|
||||
/* Accessible for image map areas - must be child of image
|
||||
*/
|
||||
|
||||
class nsHTMLAreaAccessible : public nsGenericAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLAreaAccessible(nsIPresShell *presShell, nsIDOMNode *domNode, nsIAccessible *accParent);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
NS_IMETHOD GetAccParent(nsIAccessible * *aAccParent);
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible * *aAccNextSibling);
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible * *aAccPreviousSibling);
|
||||
NS_IMETHOD GetAccDescription(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
NS_IMETHOD AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height);
|
||||
|
||||
protected:
|
||||
nsIAccessible *CreateAreaAccessible(nsIDOMNode *aDOMNode);
|
||||
nsCOMPtr<nsIDOMNode> mDOMNode;
|
||||
nsCOMPtr<nsIAccessible> mAccParent;
|
||||
nsCOMPtr<nsIPresShell> mPresShell;
|
||||
};
|
||||
|
||||
#endif
|
||||
454
mozilla/accessible/src/nsHTMLFormControlAccessible.cpp
Normal file
454
mozilla/accessible/src/nsHTMLFormControlAccessible.cpp
Normal file
@@ -0,0 +1,454 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLFormControlAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIDOMHTMLInputElement.h"
|
||||
#include "nsIDOMHTMLTextAreaElement.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsHTMLAtoms.h"
|
||||
#include "nsIDOMHTMLButtonElement.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIDOMHTMLLabelElement.h"
|
||||
#include "nsIDOMHTMLFormElement.h"
|
||||
|
||||
nsHTMLFormControlAccessible::nsHTMLFormControlAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsLeafDOMAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLFormControlAccessible::AppendLabelFor(nsIContent *aLookNode, nsAReadableString *aId, nsAWritableString *aLabel)
|
||||
{
|
||||
PRInt32 numChildren = 0;
|
||||
|
||||
nsCOMPtr<nsIDOMHTMLLabelElement> labelElement(do_QueryInterface(aLookNode));
|
||||
if (labelElement) {
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(aLookNode));
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
if (elt) {
|
||||
nsAutoString labelIsFor;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("for"),labelIsFor);
|
||||
if (labelIsFor.Equals(*aId))
|
||||
rv = AppendFlatStringFromSubtree(aLookNode, aLabel);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
aLookNode->ChildCount(numChildren);
|
||||
nsIContent *contentWalker;
|
||||
PRInt32 index;
|
||||
for (index = 0; index < numChildren; index++) {
|
||||
aLookNode->ChildAt(index, contentWalker);
|
||||
if (contentWalker)
|
||||
AppendLabelFor(contentWalker, aId, aLabel);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLFormControlAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIContent> walkUpContent(do_QueryInterface(mNode));
|
||||
nsCOMPtr<nsIDOMHTMLLabelElement> labelElement;
|
||||
nsCOMPtr<nsIDOMHTMLFormElement> formElement;
|
||||
nsAutoString nameString;
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
|
||||
// go up tree get name of ancestor label if there is one. Don't go up farther than form element
|
||||
while (walkUpContent && nameString.IsEmpty() && !formElement) {
|
||||
labelElement = do_QueryInterface(walkUpContent);
|
||||
if (labelElement)
|
||||
rv = AppendFlatStringFromSubtree(walkUpContent, &nameString);
|
||||
formElement = do_QueryInterface(walkUpContent); // reached top ancestor in form
|
||||
nsCOMPtr<nsIContent> nextParent;
|
||||
walkUpContent->GetParent(*getter_AddRefs(nextParent));
|
||||
walkUpContent = nextParent;
|
||||
}
|
||||
|
||||
|
||||
// There can be a label targeted at this control using the for="control_id" attribute
|
||||
// To save computing time, only look for those inside of a form element
|
||||
walkUpContent = do_QueryInterface(formElement);
|
||||
|
||||
if (walkUpContent) {
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mNode));
|
||||
nsAutoString forId;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("id"), forId);
|
||||
// Actually we'll be walking down the content this time, with a depth first search
|
||||
if (!forId.IsEmpty())
|
||||
AppendLabelFor(walkUpContent,&forId,&nameString);
|
||||
}
|
||||
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccState (); */
|
||||
NS_IMETHODIMP nsHTMLFormControlAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
// can be
|
||||
// focusable, focused, checked, protected, unavailable
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
|
||||
*_retval = STATE_FOCUSABLE;
|
||||
|
||||
PRBool checked = PR_FALSE;
|
||||
element->GetChecked(&checked);
|
||||
if (checked) *_retval |= STATE_CHECKED;
|
||||
|
||||
PRBool disabled = PR_FALSE;
|
||||
element->GetDisabled(&disabled);
|
||||
if (disabled)
|
||||
*_retval |= STATE_UNAVAILABLE;
|
||||
|
||||
nsAutoString typeString;
|
||||
element->GetType(typeString);
|
||||
if (typeString.EqualsIgnoreCase("password"))
|
||||
*_retval |= STATE_PROTECTED;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// --- checkbox -----
|
||||
|
||||
nsHTMLCheckboxAccessible::nsHTMLCheckboxAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_CHECKBUTTON;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
// check or uncheck
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
|
||||
PRBool checked = PR_FALSE;
|
||||
if (element)
|
||||
element->GetChecked(&checked);
|
||||
|
||||
if (checked)
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("uncheck"));
|
||||
else
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("check"));
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLCheckboxAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
PRBool checked = PR_FALSE;
|
||||
element->GetChecked(&checked);
|
||||
element->SetChecked(checked ? PR_FALSE : PR_TRUE);
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
//------ Radio button -------
|
||||
|
||||
nsHTMLRadioButtonAccessible::nsHTMLRadioButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("select"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
element->Click();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLRadioButtonAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_RADIOBUTTON;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// ----- Button -----
|
||||
|
||||
nsHTMLButtonAccessible::nsHTMLButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("press"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
element->Click();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PUSHBUTTON;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLButtonAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> button(do_QueryInterface(mNode));
|
||||
|
||||
if (!button)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsAutoString name;
|
||||
button->GetValue(name);
|
||||
name.CompressWhitespace();
|
||||
|
||||
*_retval = name.ToNewUnicode();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
// ----- HTML 4 Button: can contain arbitrary HTML content -----
|
||||
|
||||
nsHTML4ButtonAccessible::nsHTML4ButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsDOMAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* PRUint8 getAccNumActions (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccNumActions(PRUint8 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;;
|
||||
}
|
||||
|
||||
/* wstring getAccActionName (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccActionName(PRUint8 index, PRUnichar **_retval)
|
||||
{
|
||||
if (index == 0) {
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("press"));
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void accDoAction (in PRUint8 index); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::AccDoAction(PRUint8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> element(do_QueryInterface(mNode));
|
||||
element->Click();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PUSHBUTTON;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccState (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval |= STATE_FOCUSABLE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTML4ButtonAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
nsAutoString name;
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
|
||||
if (content)
|
||||
rv = AppendFlatStringFromSubtree(content, &name);
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
name.CompressWhitespace();
|
||||
*_retval = name.ToNewUnicode();
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
// --- textfield -----
|
||||
|
||||
nsHTMLTextFieldAccessible::nsHTMLTextFieldAccessible(nsIPresShell* aShell, nsIDOMNode* aNode):
|
||||
nsHTMLFormControlAccessible(aShell, aNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_TEXT;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* wstring getAccValue (); */
|
||||
NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIDOMHTMLTextAreaElement> textArea(do_QueryInterface(mNode));
|
||||
if (textArea) {
|
||||
nsAutoString valueString;
|
||||
textArea->GetValue(valueString);
|
||||
*_retval = ToNewUnicode(valueString);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* long getAccState (); */
|
||||
NS_IMETHODIMP nsHTMLTextFieldAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
// can be
|
||||
// focusable, focused, protected. readonly, unavailable, selected
|
||||
|
||||
*_retval = STATE_FOCUSABLE;
|
||||
|
||||
nsCOMPtr<nsIDOMHTMLTextAreaElement> textArea(do_QueryInterface(mNode));
|
||||
nsCOMPtr<nsIDOMHTMLInputElement> inputElement(do_QueryInterface(mNode));
|
||||
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mNode));
|
||||
PRBool isReadOnly = PR_FALSE;
|
||||
elt->HasAttribute(NS_LITERAL_STRING("readonly"), &isReadOnly);
|
||||
if (isReadOnly)
|
||||
*_retval |= STATE_READONLY;
|
||||
|
||||
// Get current selection and find out if current node is in it
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(mNode));
|
||||
nsIFrame *frame;
|
||||
if (content && NS_SUCCEEDED(shell->GetPrimaryFrameFor(content, &frame))) {
|
||||
nsCOMPtr<nsISelectionController> selCon;
|
||||
frame->GetSelectionController(context,getter_AddRefs(selCon));
|
||||
if (selCon) {
|
||||
nsCOMPtr<nsISelection> domSel;
|
||||
selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(domSel));
|
||||
if (domSel) {
|
||||
PRBool isCollapsed = PR_TRUE;
|
||||
domSel->GetIsCollapsed(&isCollapsed);
|
||||
if (!isCollapsed)
|
||||
*_retval |=STATE_SELECTED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!textArea) {
|
||||
if (inputElement) {
|
||||
/////// ====== Must be a password field, so it uses nsIDOMHTMLFormControl ==== ///////
|
||||
PRUint32 moreStates = 0;
|
||||
nsresult rv = nsHTMLFormControlAccessible::GetAccState(&moreStates);
|
||||
*_retval |= moreStates;
|
||||
return rv;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
PRBool disabled = PR_FALSE;
|
||||
textArea->GetDisabled(&disabled);
|
||||
if (disabled)
|
||||
*_retval |= STATE_UNAVAILABLE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
105
mozilla/accessible/src/nsHTMLFormControlAccessible.h
Normal file
105
mozilla/accessible/src/nsHTMLFormControlAccessible.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric D Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLFormControlAccessible_H_
|
||||
#define _nsHTMLFormControlAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsICheckboxControlFrame;
|
||||
|
||||
/* Accessible for supporting for controls
|
||||
* supports:
|
||||
* - walking up to get name from label
|
||||
* - support basic state
|
||||
*/
|
||||
class nsHTMLFormControlAccessible : public nsLeafDOMAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLFormControlAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
|
||||
protected:
|
||||
NS_IMETHODIMP AppendLabelFor(nsIContent *aLookNode, nsAReadableString *aId, nsAWritableString *aLabel);
|
||||
};
|
||||
|
||||
class nsHTMLCheckboxAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLCheckboxAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
class nsHTMLRadioButtonAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLRadioButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
class nsHTMLButtonAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
class nsHTML4ButtonAccessible : public nsDOMAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTML4ButtonAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNumActions(PRUint8 *_retval);
|
||||
NS_IMETHOD GetAccActionName(PRUint8 index, PRUnichar **_retval);
|
||||
NS_IMETHOD AccDoAction(PRUint8 index);
|
||||
};
|
||||
|
||||
|
||||
class nsHTMLTextFieldAccessible : public nsHTMLFormControlAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLTextFieldAccessible(nsIPresShell* aShell, nsIDOMNode* aNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
};
|
||||
|
||||
#endif
|
||||
216
mozilla/accessible/src/nsHTMLIFrameRootAccessible.cpp
Normal file
216
mozilla/accessible/src/nsHTMLIFrameRootAccessible.cpp
Normal file
@@ -0,0 +1,216 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLIFrameRootAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIDocShell.h"
|
||||
#include "nsIWebShell.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
|
||||
nsHTMLIFrameAccessible::nsHTMLIFrameAccessible(nsIPresShell* aShell, nsIDOMNode* aNode, nsIAccessible* aRoot):
|
||||
nsDOMAccessible(aShell, aNode)
|
||||
{
|
||||
mRootAccessible = aRoot;
|
||||
}
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccName(PRUnichar * *aAccName)
|
||||
{
|
||||
return mRootAccessible->GetAccName(aAccName);
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccFirstChild(_retval);
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccLastChild(_retval);
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccChildCount(_retval);
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
return mRootAccessible->GetAccRole(_retval);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// construction
|
||||
//-----------------------------------------------------
|
||||
nsHTMLIFrameRootAccessible::nsHTMLIFrameRootAccessible(nsIWeakReference* aShell, nsIDOMNode* aNode):
|
||||
nsRootAccessible(aShell)
|
||||
{
|
||||
mRealDOMNode = aNode;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// destruction
|
||||
//-----------------------------------------------------
|
||||
nsHTMLIFrameRootAccessible::~nsHTMLIFrameRootAccessible()
|
||||
{
|
||||
}
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccName(PRUnichar * *aAccName)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
if (shell)
|
||||
shell->GetDocument(getter_AddRefs(document));
|
||||
if (document) {
|
||||
const nsString* docTitle = document->GetDocumentTitle();
|
||||
if (docTitle && !docTitle->IsEmpty()) {
|
||||
*aAccName = docTitle->ToNewUnicode();
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
*aAccName = ToNewUnicode(NS_LITERAL_STRING("Frame"));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute nsIAccessible accParent; */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccParent(nsIAccessible * *_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> accessible;
|
||||
if (NS_SUCCEEDED(GetHTMLIFrameAccessible(getter_AddRefs(accessible))))
|
||||
return accessible->GetAccParent(_retval);
|
||||
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccNextSibling (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> accessible;
|
||||
|
||||
if (NS_SUCCEEDED(GetHTMLIFrameAccessible(getter_AddRefs(accessible))))
|
||||
return accessible->GetAccNextSibling(_retval);
|
||||
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccPreviousSibling (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> accessible;
|
||||
|
||||
if (NS_SUCCEEDED(GetHTMLIFrameAccessible(getter_AddRefs(accessible))))
|
||||
return accessible->GetAccPreviousSibling(_retval);
|
||||
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_PANE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLIFrameRootAccessible::GetHTMLIFrameAccessible(nsIAccessible** aAcc)
|
||||
{
|
||||
// Start by finding our PresShell and from that
|
||||
// we get our nsIDocShell in order to walk the DocShell tree
|
||||
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocShell> docShell;
|
||||
if (NS_SUCCEEDED(GetDocShellFromPS(presShell, getter_AddRefs(docShell)))) {
|
||||
// Now that we have the DocShell QI
|
||||
// it to a tree item to find it's parent
|
||||
nsCOMPtr<nsIDocShellTreeItem> item(do_QueryInterface(docShell));
|
||||
if (item) {
|
||||
nsCOMPtr<nsIDocShellTreeItem> itemParent;
|
||||
item->GetParent(getter_AddRefs(itemParent));
|
||||
// QI to get the WebShell for the parent document
|
||||
nsCOMPtr<nsIDocShell> parentDocShell(do_QueryInterface(itemParent));
|
||||
if (parentDocShell) {
|
||||
// Get the PresShell/Content and
|
||||
// Root Content Node of the parent document
|
||||
nsCOMPtr<nsIPresShell> parentPresShell;
|
||||
nsCOMPtr<nsIPresContext> parentPresContext;
|
||||
nsCOMPtr<nsIContent> rootContent;
|
||||
if (NS_SUCCEEDED(GetDocShellObjects(parentDocShell,
|
||||
getter_AddRefs(parentPresShell),
|
||||
getter_AddRefs(parentPresContext),
|
||||
getter_AddRefs(rootContent)))) {
|
||||
// QI the DocShell (of this sub-doc) to a webshell
|
||||
nsCOMPtr<nsIWebShell> webShell(do_QueryInterface(docShell));
|
||||
if (webShell && parentPresShell && parentPresContext && rootContent) {
|
||||
// Now, find the Content in the parent document
|
||||
// that represents this sub-doc,
|
||||
// we do that matching webshells
|
||||
nsCOMPtr<nsIContent> content;
|
||||
if (FindContentForWebShell(parentPresShell,
|
||||
rootContent,
|
||||
webShell,
|
||||
getter_AddRefs(content))) {
|
||||
// OK, we found the content node in the parent doc
|
||||
// that corresponds to this sub-doc
|
||||
// Get the frame for that content
|
||||
nsCOMPtr<nsIWeakReference> wr(getter_AddRefs(NS_GetWeakReference(parentPresShell)));
|
||||
nsIFrame* frame = nsnull;
|
||||
parentPresShell->GetPrimaryFrameFor(content, &frame);
|
||||
#ifdef NS_DEBUG_X
|
||||
printf("** Found: Con:%p Fr:%p", content, frame);
|
||||
char * name;
|
||||
if (GetNameForFrame(frame, &name)) {
|
||||
printf(" Name:[%s]", name);
|
||||
nsMemory::Free(name);
|
||||
}
|
||||
printf("\n");
|
||||
#endif
|
||||
|
||||
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
nsCOMPtr<nsIAccessible> acc(do_QueryInterface(frame));
|
||||
|
||||
*aAcc = CreateNewAccessible(acc, node, wr);
|
||||
NS_IF_ADDREF(*aAcc);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
74
mozilla/accessible/src/nsHTMLIFrameRootAccessible.h
Normal file
74
mozilla/accessible/src/nsHTMLIFrameRootAccessible.h
Normal file
@@ -0,0 +1,74 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsIFrameRootAccessible_H_
|
||||
#define _nsIFrameRootAccessible_H_
|
||||
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsIWebShell;
|
||||
|
||||
class nsHTMLIFrameAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLIFrameAccessible(nsIPresShell* aShell, nsIDOMNode* aNode, nsIAccessible* aRoot);
|
||||
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar * *aAccName);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *aAccRole);
|
||||
|
||||
protected:
|
||||
nsCOMPtr<nsIAccessible> mRootAccessible;
|
||||
};
|
||||
|
||||
class nsHTMLIFrameRootAccessible : public nsRootAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLIFrameRootAccessible(nsIWeakReference* aShell, nsIDOMNode* aNode);
|
||||
virtual ~nsHTMLIFrameRootAccessible();
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHOD GetAccParent(nsIAccessible * *aAccParent);
|
||||
|
||||
/* nsIAccessible getAccNextSibling (); */
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
|
||||
/* nsIAccessible getAccPreviousSibling (); */
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
|
||||
|
||||
NS_IMETHOD GetAccName(PRUnichar * *aAccName);
|
||||
|
||||
NS_IMETHOD GetAccRole(PRUint32 *aAccRole);
|
||||
|
||||
protected:
|
||||
|
||||
NS_IMETHOD GetHTMLIFrameAccessible(nsIAccessible** aAcc);
|
||||
|
||||
nsCOMPtr<nsIDOMNode> mRealDOMNode;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
146
mozilla/accessible/src/nsHTMLImageAccessible.cpp
Normal file
146
mozilla/accessible/src/nsHTMLImageAccessible.cpp
Normal file
@@ -0,0 +1,146 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsHTMLImageAccessible.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIHTMLDocument.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDOMHTMLCollection.h"
|
||||
#include "nsIAccessibilityService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
|
||||
// --- image -----
|
||||
|
||||
nsHTMLImageAccessible::nsHTMLImageAccessible(nsIPresShell* aShell, nsIDOMNode* aDOMNode, nsIImageFrame *aImageFrame):
|
||||
nsLinkableAccessible(aShell, aDOMNode), mPresShell(aShell)
|
||||
{
|
||||
nsCOMPtr<nsIDOMElement> element(do_QueryInterface(aDOMNode));
|
||||
nsCOMPtr<nsIDocument> doc;
|
||||
aShell->GetDocument(getter_AddRefs(doc));
|
||||
nsAutoString mapElementName;
|
||||
|
||||
if (doc && element) {
|
||||
nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(doc));
|
||||
element->GetAttribute(NS_LITERAL_STRING("usemap"),mapElementName);
|
||||
if (htmlDoc && !mapElementName.IsEmpty()) {
|
||||
if (mapElementName.CharAt(0) == '#')
|
||||
mapElementName.Cut(0,1);
|
||||
htmlDoc->GetImageMap(mapElementName, getter_AddRefs(mMapElement));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIContent> imageContent(do_QueryInterface(mNode));
|
||||
if (imageContent) {
|
||||
nsAutoString nameString;
|
||||
nsresult rv = AppendFlatStringFromContentNode(imageContent, &nameString);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* wstring getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_GRAPHIC;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsIAccessible *nsHTMLImageAccessible::CreateAreaAccessible(PRUint32 areaNum)
|
||||
{
|
||||
if (!mMapElement)
|
||||
return nsnull;
|
||||
|
||||
if (areaNum == -1) {
|
||||
PRInt32 numAreaMaps;
|
||||
GetAccChildCount(&numAreaMaps);
|
||||
if (numAreaMaps<=0)
|
||||
return nsnull;
|
||||
areaNum = NS_STATIC_CAST(PRUint32,numAreaMaps-1);
|
||||
}
|
||||
|
||||
nsIDOMHTMLCollection *mapAreas;
|
||||
mMapElement->GetAreas(&mapAreas);
|
||||
if (!mapAreas)
|
||||
return nsnull;
|
||||
|
||||
nsIDOMNode *domNode = nsnull;
|
||||
mapAreas->Item(areaNum,&domNode);
|
||||
if (!domNode)
|
||||
return nsnull;
|
||||
|
||||
nsresult rv;
|
||||
NS_WITH_SERVICE(nsIAccessibilityService, accService, "@mozilla.org/accessibilityService;1", &rv);
|
||||
if (accService) {
|
||||
nsIAccessible* acc = nsnull;
|
||||
nsCOMPtr<nsISupports> presShell(do_QueryInterface(mPresShell));
|
||||
accService->CreateHTMLAreaAccessible(presShell, domNode, this, &acc);
|
||||
return acc;
|
||||
}
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = CreateAreaAccessible(0);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = CreateAreaAccessible(-1);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLImageAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
if (mMapElement) {
|
||||
nsIDOMHTMLCollection *mapAreas;
|
||||
mMapElement->GetAreas(&mapAreas);
|
||||
if (mapAreas) {
|
||||
PRUint32 length;
|
||||
mapAreas->GetLength(&length);
|
||||
*_retval = NS_STATIC_CAST(PRInt32, length);
|
||||
}
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
54
mozilla/accessible/src/nsHTMLImageAccessible.h
Normal file
54
mozilla/accessible/src/nsHTMLImageAccessible.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLImageAccessible_H_
|
||||
#define _nsHTMLImageAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIImageFrame.h"
|
||||
#include "nsIDOMHTMLMapElement.h"
|
||||
|
||||
/* Accessible for supporting images
|
||||
* supports:
|
||||
* - gets name, role
|
||||
* - support basic state
|
||||
*/
|
||||
class nsHTMLImageAccessible : public nsLinkableAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLImageAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode, nsIImageFrame *imageFrame);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
|
||||
protected:
|
||||
nsIAccessible *CreateAreaAccessible(PRUint32 areaNum);
|
||||
nsCOMPtr<nsIDOMHTMLMapElement> mMapElement;
|
||||
nsCOMPtr<nsIPresShell> mPresShell;
|
||||
};
|
||||
|
||||
#endif
|
||||
71
mozilla/accessible/src/nsHTMLLinkAccessible.cpp
Normal file
71
mozilla/accessible/src/nsHTMLLinkAccessible.cpp
Normal file
@@ -0,0 +1,71 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsILink.h"
|
||||
#include "nsILinkHandler.h"
|
||||
#include "nsISelection.h"
|
||||
#include "nsISelectionController.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsIDOMElement.h"
|
||||
|
||||
nsHTMLLinkAccessible::nsHTMLLinkAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsLinkableAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
if (!IsALink()) // Also initializes private data members
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsAutoString nameString;
|
||||
nsresult rv = AppendFlatStringFromSubtree(mLinkContent, &nameString);
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LINK;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsHTMLLinkAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(mNode));
|
||||
if (elt) {
|
||||
nsAutoString hrefString;
|
||||
elt->GetAttribute(NS_LITERAL_STRING("href"), hrefString);
|
||||
*_retval = hrefString.ToNewUnicode();
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
41
mozilla/accessible/src/nsHTMLLinkAccessible.h
Normal file
41
mozilla/accessible/src/nsHTMLLinkAccessible.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLLinkAccessible_H_
|
||||
#define _nsHTMLLinkAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsHTMLLinkAccessible : public nsLinkableAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLLinkAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
#endif
|
||||
51
mozilla/accessible/src/nsHTMLTableAccessible.cpp
Normal file
51
mozilla/accessible/src/nsHTMLTableAccessible.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLTableAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
nsHTMLTableCellAccessible::nsHTMLTableCellAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsDOMAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTableCellAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_CELL;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsHTMLTableAccessible::nsHTMLTableAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsDOMAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTableAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_TABLE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
44
mozilla/accessible/src/nsHTMLTableAccessible.h
Normal file
44
mozilla/accessible/src/nsHTMLTableAccessible.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Aaron Leventhal (aaronl@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLTableAccessible_H_
|
||||
#define _nsHTMLTableAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsHTMLTableCellAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLTableCellAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
};
|
||||
|
||||
|
||||
class nsHTMLTableAccessible : public nsDOMAccessible
|
||||
{
|
||||
public:
|
||||
nsHTMLTableAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
};
|
||||
|
||||
#endif
|
||||
83
mozilla/accessible/src/nsHTMLTextAccessible.cpp
Normal file
83
mozilla/accessible/src/nsHTMLTextAccessible.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Author: Eric Vaughan (evaughan@netscape.com)
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsHTMLTextAccessible.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsILink.h"
|
||||
#include "nsILinkHandler.h"
|
||||
#include "nsISelection.h"
|
||||
#include "nsISelectionController.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
nsHTMLTextAccessible::nsHTMLTextAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode):
|
||||
nsLinkableAccessible(aShell, aDomNode)
|
||||
{
|
||||
}
|
||||
|
||||
/* wstring getAccName (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
|
||||
nsAutoString nameString;
|
||||
nsresult rv = NS_OK;
|
||||
//if (IsALink()) {
|
||||
// rv = AppendFlatStringFromSubtree(mLinkContent, &nameString);
|
||||
//}
|
||||
//else
|
||||
mNode->GetNodeValue(nameString);
|
||||
nameString.CompressWhitespace();
|
||||
*_retval = nameString.ToNewUnicode();
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* unsigned long getAccRole (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_STATICTEXT;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
/* nsIAccessible getAccFirstChild (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIAccessible getAccLastChild (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* long getAccChildCount (); */
|
||||
NS_IMETHODIMP nsHTMLTextAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
43
mozilla/accessible/src/nsHTMLTextAccessible.h
Normal file
43
mozilla/accessible/src/nsHTMLTextAccessible.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsHTMLTextAccessible_H_
|
||||
#define _nsHTMLTextAccessible_H_
|
||||
|
||||
#include "nsGenericAccessible.h"
|
||||
|
||||
class nsIWeakReference;
|
||||
class nsITextControlFrame;
|
||||
|
||||
class nsHTMLTextAccessible : public nsLinkableAccessible
|
||||
{
|
||||
|
||||
public:
|
||||
nsHTMLTextAccessible(nsIPresShell* aShell, nsIDOMNode* aDomNode);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
};
|
||||
|
||||
#endif
|
||||
308
mozilla/accessible/src/nsRootAccessible.cpp
Normal file
308
mozilla/accessible/src/nsRootAccessible.cpp
Normal file
@@ -0,0 +1,308 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIDOMEventTarget.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMEventReceiver.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsILink.h"
|
||||
#include "nsHTMLFormControlAccessible.h"
|
||||
#include "nsHTMLLinkAccessible.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsRootAccessible)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIAccessibleEventReceiver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMFocusListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMFormListener)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMFormListener)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMFormListener)
|
||||
NS_INTERFACE_MAP_END_INHERITING(nsAccessible)
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(nsRootAccessible, nsAccessible);
|
||||
NS_IMPL_RELEASE_INHERITED(nsRootAccessible, nsAccessible);
|
||||
|
||||
//-----------------------------------------------------
|
||||
// construction
|
||||
//-----------------------------------------------------
|
||||
nsRootAccessible::nsRootAccessible(nsIWeakReference* aShell):nsAccessible(nsnull,nsnull,aShell)
|
||||
{
|
||||
mListener = nsnull;
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
shell->GetDocument(getter_AddRefs(mDocument));
|
||||
mDOMNode = do_QueryInterface(mDocument);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
// destruction
|
||||
//-----------------------------------------------------
|
||||
nsRootAccessible::~nsRootAccessible()
|
||||
{
|
||||
RemoveAccessibleEventListener(mListener);
|
||||
}
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccName(PRUnichar * *aAccName)
|
||||
{
|
||||
const nsString* docTitle = mDocument->GetDocumentTitle();
|
||||
if (docTitle && !docTitle->IsEmpty())
|
||||
*aAccName = docTitle->ToNewUnicode();
|
||||
else *aAccName = ToNewUnicode(NS_LITERAL_STRING("Document"));
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// helpers
|
||||
nsIFrame* nsRootAccessible::GetFrame()
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsIFrame* root = nsnull;
|
||||
if (shell)
|
||||
shell->GetRootFrame(&root);
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
void nsRootAccessible::GetBounds(nsRect& aBounds, nsIFrame** aRelativeFrame)
|
||||
{
|
||||
*aRelativeFrame = GetFrame();
|
||||
(*aRelativeFrame)->GetRect(aBounds);
|
||||
}
|
||||
|
||||
nsIAccessible* nsRootAccessible::CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell)
|
||||
{
|
||||
return new nsHTMLBlockAccessible(aAccessible, aNode, aShell);
|
||||
}
|
||||
|
||||
/* readonly attribute nsIAccessible accParent; */
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccParent(nsIAccessible * *aAccParent)
|
||||
{
|
||||
*aAccParent = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute unsigned long accRole; */
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccRole(PRUint32 *aAccRole)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
shell->GetPresContext(getter_AddRefs(context));
|
||||
nsCOMPtr<nsISupports> container;
|
||||
context->GetContainer(getter_AddRefs(container));
|
||||
if (container) {
|
||||
nsCOMPtr<nsIDocShellTreeItem> parentTreeItem, docTreeItem(do_QueryInterface(container));
|
||||
if (docTreeItem) {
|
||||
docTreeItem->GetSameTypeParent(getter_AddRefs(parentTreeItem));
|
||||
// Basically, if this docshell has a parent of the same type, it's a frame
|
||||
if (parentTreeItem) {
|
||||
*aAccRole = ROLE_PANE;
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*aAccRole = ROLE_CLIENT;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::GetAccValue(PRUnichar * *aAccValue)
|
||||
{
|
||||
nsCOMPtr<nsIURI> pURI(mDocument->GetDocumentURL());
|
||||
char *path;
|
||||
pURI->GetSpec(&path);
|
||||
*aAccValue = ToNewUnicode(nsLiteralCString(path));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void addAccessibleEventListener (in nsIAccessibleEventListener aListener); */
|
||||
NS_IMETHODIMP nsRootAccessible::AddAccessibleEventListener(nsIAccessibleEventListener *aListener)
|
||||
{
|
||||
if (!mListener)
|
||||
{
|
||||
// add an event listener to the document
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
shell->GetDocument(getter_AddRefs(document));
|
||||
|
||||
// use AddEventListener from the nsIDOMEventTarget interface
|
||||
nsCOMPtr<nsIDOMEventTarget> target;
|
||||
if (NS_SUCCEEDED(document->QueryInterface(NS_GET_IID(nsIDOMEventTarget), getter_AddRefs(target))) && target)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
// we're a DOMEventListener now!!
|
||||
nsCOMPtr<nsIDOMEventListener> listener;
|
||||
rv = this->QueryInterface( NS_GET_IID(nsIDOMEventListener), getter_AddRefs(listener) );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to QI");
|
||||
// capture DOM focus events
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("focus") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
// capture Form change events
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("change") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
// add ourself as a CheckboxStateChange listener ( custom event fired in nsHTMLInputElement.cpp )
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("CheckboxStateChange") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
// add ourself as a RadiobuttonStateChange listener ( custom event fired in nsHTMLInputElement.cpp )
|
||||
rv = target->AddEventListener( NS_LITERAL_STRING("RadiobuttonStateChange") , listener, PR_TRUE );
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
}
|
||||
}
|
||||
|
||||
// create a weak reference to the listener
|
||||
mListener = aListener;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* void removeAccessibleEventListener (in nsIAccessibleEventListener aListener); */
|
||||
NS_IMETHODIMP nsRootAccessible::RemoveAccessibleEventListener(nsIAccessibleEventListener *aListener)
|
||||
{
|
||||
if (mListener)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsCOMPtr<nsIDocument> document;
|
||||
if (!shell)
|
||||
return NS_OK;
|
||||
|
||||
shell->GetDocument(getter_AddRefs(document));
|
||||
|
||||
nsCOMPtr<nsIDOMEventReceiver> erP;
|
||||
if (NS_SUCCEEDED(document->QueryInterface(NS_GET_IID(nsIDOMEventReceiver), getter_AddRefs(erP))) && erP)
|
||||
{
|
||||
nsresult rv = erP->RemoveEventListenerByIID(NS_STATIC_CAST(nsIDOMFocusListener *, this), NS_GET_IID(nsIDOMFocusListener));
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to register listener");
|
||||
}
|
||||
}
|
||||
|
||||
mListener = nsnull;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// --------------- nsIDOMEventListener Methods (3) ------------------------
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::HandleEvent(nsIDOMEvent* aEvent)
|
||||
{
|
||||
if (mListener) {
|
||||
nsCOMPtr<nsIDOMEventTarget> t;
|
||||
aEvent->GetOriginalTarget(getter_AddRefs(t));
|
||||
|
||||
nsCOMPtr<nsIContent> content(do_QueryInterface(t));
|
||||
if (!content)
|
||||
return NS_OK;
|
||||
|
||||
nsAutoString eventType;
|
||||
aEvent->GetType(eventType);
|
||||
|
||||
// the "focus" type is pulled from nsDOMEvent.cpp
|
||||
if ( eventType.EqualsIgnoreCase("focus") ) {
|
||||
if (mCurrentFocus == content)
|
||||
return NS_OK;
|
||||
mCurrentFocus = content;
|
||||
}
|
||||
|
||||
nsIFrame* frame = nsnull;
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
shell->GetPrimaryFrameFor(content, &frame);
|
||||
if (!frame)
|
||||
return NS_OK;
|
||||
|
||||
nsCOMPtr<nsIAccessible> a(do_QueryInterface(frame));
|
||||
if (!a)
|
||||
a = do_QueryInterface(content);
|
||||
|
||||
if (!a) {
|
||||
// is it a link?
|
||||
nsCOMPtr<nsILink> link(do_QueryInterface(content));
|
||||
if (link) {
|
||||
#ifdef DEBUG
|
||||
printf("focus link!\n");
|
||||
#endif
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
if (node)
|
||||
a = new nsHTMLLinkAccessible(shell, node);
|
||||
}
|
||||
}
|
||||
|
||||
if (a) {
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(content));
|
||||
nsCOMPtr<nsIAccessible> na(CreateNewAccessible(a, node, mPresShell));
|
||||
if ( !na )
|
||||
return NS_OK;
|
||||
|
||||
if ( eventType.EqualsIgnoreCase("focus") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_FOCUS, na);
|
||||
}
|
||||
else if ( eventType.EqualsIgnoreCase("change") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_STATE_CHANGE, na);
|
||||
}
|
||||
else if ( eventType.EqualsIgnoreCase("CheckboxStateChange") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_STATE_CHANGE, na);
|
||||
}
|
||||
else if ( eventType.EqualsIgnoreCase("RadiobuttonStateChange") ) {
|
||||
mListener->HandleEvent(nsIAccessibleEventListener::EVENT_STATE_CHANGE, na);
|
||||
}
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// ------- nsIDOMFocusListener Methods (2) -------------
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Focus(nsIDOMEvent* aEvent)
|
||||
{
|
||||
return HandleEvent(aEvent);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Blur(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
// ------- nsIDOMFormListener Methods (5) -------------
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Submit(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Reset(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP nsRootAccessible::Change(nsIDOMEvent* aEvent)
|
||||
{
|
||||
// get change events when the form elements changes its state, checked->not,
|
||||
// deleted text, new text, change in selection for list/combo boxes
|
||||
// this may be the event that we have the individual Accessible objects
|
||||
// handle themselves -- have list/combos figure out the change in selection
|
||||
// have textareas and inputs fire a change of state etc...
|
||||
return HandleEvent(aEvent);
|
||||
}
|
||||
|
||||
// gets Select events when text is selected in a textarea or input
|
||||
NS_IMETHODIMP nsRootAccessible::Select(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
// gets Input events when text is entered or deleted in a textarea or input
|
||||
NS_IMETHODIMP nsRootAccessible::Input(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
|
||||
|
||||
85
mozilla/accessible/src/nsRootAccessible.h
Normal file
85
mozilla/accessible/src/nsRootAccessible.h
Normal file
@@ -0,0 +1,85 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#ifndef _nsRootAccessible_H_
|
||||
#define _nsRootAccessible_H_
|
||||
|
||||
#include "nsAccessible.h"
|
||||
#include "nsIAccessibleEventReceiver.h"
|
||||
#include "nsIAccessibleEventListener.h"
|
||||
#include "nsIDOMFormListener.h"
|
||||
#include "nsIDOMFocusListener.h"
|
||||
#include "nsIDocument.h"
|
||||
|
||||
class nsRootAccessible : public nsAccessible,
|
||||
public nsIAccessibleEventReceiver,
|
||||
public nsIDOMFocusListener,
|
||||
public nsIDOMFormListener
|
||||
|
||||
{
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
public:
|
||||
nsRootAccessible(nsIWeakReference* aShell);
|
||||
virtual ~nsRootAccessible();
|
||||
|
||||
/* attribute wstring accName; */
|
||||
NS_IMETHOD GetAccName(PRUnichar * *aAccName);
|
||||
NS_IMETHOD GetAccValue(PRUnichar * *aAccValue);
|
||||
NS_IMETHOD GetAccParent(nsIAccessible * *aAccParent);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *aAccRole);
|
||||
|
||||
// ----- nsIAccessibleEventReceiver -------------------
|
||||
|
||||
NS_IMETHOD AddAccessibleEventListener(nsIAccessibleEventListener *aListener);
|
||||
NS_IMETHOD RemoveAccessibleEventListener(nsIAccessibleEventListener *aListener);
|
||||
|
||||
// ----- nsIDOMEventListener --------------------------
|
||||
NS_IMETHOD HandleEvent(nsIDOMEvent* anEvent);
|
||||
|
||||
// ----- nsIDOMFocusListener --------------------------
|
||||
NS_IMETHOD Focus(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Blur(nsIDOMEvent* aEvent);
|
||||
|
||||
// ----- nsIDOMFormListener ---------------------------
|
||||
NS_IMETHOD Submit(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Reset(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Change(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Select(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Input(nsIDOMEvent* aEvent);
|
||||
|
||||
protected:
|
||||
virtual void GetBounds(nsRect& aRect, nsIFrame** aRelativeFrame);
|
||||
virtual nsIFrame* GetFrame();
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIDOMNode* aNode, nsIWeakReference* aShell);
|
||||
|
||||
// not a com pointer. We don't own the listener
|
||||
// it is the callers responsibility to remove the listener
|
||||
// otherwise we will get into circular referencing problems
|
||||
nsIAccessibleEventListener* mListener;
|
||||
nsCOMPtr<nsIContent> mCurrentFocus;
|
||||
nsCOMPtr<nsIDocument> mDocument;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
722
mozilla/accessible/src/nsSelectAccessible.cpp
Normal file
722
mozilla/accessible/src/nsSelectAccessible.cpp
Normal file
@@ -0,0 +1,722 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: Eric Vaughan (evaughan@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsSelectAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsIPresContext.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsRootAccessible.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
//#include "nsMutableAccessible.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
#include "nsIDOMMenuListener.h"
|
||||
#include "nsIDOMEventReceiver.h"
|
||||
#include "nsReadableUtils.h"
|
||||
|
||||
#if 0
|
||||
class nsSelectChildAccessible : public nsAccessible,
|
||||
public nsIDOMMenuListener
|
||||
{
|
||||
public:
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
nsSelectChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsSelectChildAccessible();
|
||||
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
|
||||
virtual nsIAccessible* CreateNewNextAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewPreviousAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
// popup listener
|
||||
NS_IMETHOD Create(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Close(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Destroy(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Action(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD Broadcast(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD CommandUpdate(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
nsCOMPtr<nsIContent> mSelectContent;
|
||||
PRBool mRegistered;
|
||||
PRBool mOpen;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS_INHERITED(nsSelectChildAccessible, nsAccessible, nsIDOMMenuListener)
|
||||
|
||||
class nsSelectWindowAccessible : public nsAccessible,
|
||||
public nsIDOMMenuListener
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
nsSelectWindowAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aPrev, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsSelectWindowAccessible();
|
||||
|
||||
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccState(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccExtState(PRUint32 *_retval);
|
||||
|
||||
// popup listener
|
||||
NS_IMETHOD Create(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Close(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Destroy(nsIDOMEvent* aEvent);
|
||||
NS_IMETHOD Action(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD Broadcast(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD CommandUpdate(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent) { return NS_OK; }
|
||||
|
||||
// helpers
|
||||
virtual nsIFrame* GetBoundsFrame();
|
||||
|
||||
nsCOMPtr<nsIAccessible> mParent;
|
||||
nsCOMPtr<nsIAccessible> mPrev;
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
PRBool mRegistered;
|
||||
PRBool mOpen;
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS_INHERITED(nsSelectWindowAccessible, nsAccessible, nsIDOMMenuListener)
|
||||
|
||||
class nsSelectListAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
|
||||
nsSelectListAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsSelectListAccessible() {}
|
||||
|
||||
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccNextSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccPreviousSibling(nsIAccessible **_retval);
|
||||
NS_IMETHOD AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height);
|
||||
|
||||
virtual void GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList);
|
||||
virtual nsIAccessible* CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
nsCOMPtr<nsIAccessible> mParent;
|
||||
};
|
||||
|
||||
class nsListChildAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
|
||||
nsListChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual ~nsListChildAccessible() {}
|
||||
|
||||
NS_IMETHOD GetAccParent(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
|
||||
virtual void GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList);
|
||||
virtual nsIAccessible* CreateNewAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
|
||||
nsCOMPtr<nsIAccessible> mParent;
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
nsCOMPtr<nsIContent> mSelectContent;
|
||||
};
|
||||
|
||||
//---------
|
||||
|
||||
nsSelectAccessible::nsSelectAccessible(nsIAtom* aPopupAtom,
|
||||
nsIAccessible* aAccessible,
|
||||
nsIContent* aContent,
|
||||
nsIWeakReference* aShell)
|
||||
:nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mPopupAtom = aPopupAtom;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
// our value is our first child's value. Which is the combo boxes text.
|
||||
nsCOMPtr<nsIAccessible> text;
|
||||
nsresult rv = GetAccFirstChild(getter_AddRefs(text));
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
*_retval = nsnull;
|
||||
return rv;
|
||||
}
|
||||
|
||||
if (!text) {
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// look at our role
|
||||
return text->GetAccValue(_retval);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_COMBOBOX;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
// get the last child. Wrap it with a connector that connects it to the window accessible
|
||||
nsCOMPtr<nsIAccessible> last;
|
||||
nsresult rv = nsAccessible::GetAccLastChild(getter_AddRefs(last));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
if (!last) {
|
||||
// we have a parent but not previous
|
||||
*_retval = new nsSelectWindowAccessible(mPopupAtom, this, nsnull, nsnull, mContent, mPresShell);
|
||||
} else {
|
||||
*_retval = last;
|
||||
}
|
||||
|
||||
NS_ADDREF(*_retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
// get the last child. Wrap it with a connector that connects it to the window accessible
|
||||
nsCOMPtr<nsIAccessible> first;
|
||||
nsresult rv = nsAccessible::GetAccFirstChild(getter_AddRefs(first));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
if (!first) {
|
||||
*_retval = new nsSelectWindowAccessible(mPopupAtom, this, nsnull, nsnull, mContent, mPresShell);
|
||||
} else {
|
||||
*_retval = first;
|
||||
}
|
||||
|
||||
NS_ADDREF(*_retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectAccessible::CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
return CreateNewLastAccessible(aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectAccessible::CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsSelectChildAccessible(mPopupAtom, mContent, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
nsresult rv = nsAccessible::GetAccChildCount(_retval);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
// always have one more that is our window child
|
||||
(*_retval)++;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//--------------------
|
||||
|
||||
nsSelectChildAccessible::nsSelectChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell):
|
||||
nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mPopupAtom = aPopupAtom;
|
||||
mSelectContent = aSelectContent;
|
||||
mRegistered = PR_FALSE;
|
||||
mOpen = PR_FALSE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccValue(PRUnichar **_retval)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
PRUint32 role = 0;
|
||||
|
||||
// look at our role
|
||||
rv = nsAccessible::GetAccRole(&role);
|
||||
if (NS_FAILED(rv)) {
|
||||
*_retval = nsnull;
|
||||
return rv;
|
||||
}
|
||||
|
||||
// if its the text in the combo box then
|
||||
// its value should be its name.
|
||||
if (role == ROLE_TEXT) {
|
||||
rv = nsAccessible::GetAccName(_retval);
|
||||
} else {
|
||||
rv = nsAccessible::GetAccValue(_retval);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
PRUint32 role = 0;
|
||||
|
||||
// look at our role
|
||||
rv = nsAccessible::GetAccRole(&role);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
// any text in the combo box is static
|
||||
if (role == ROLE_STATICTEXT) {
|
||||
// if it the comboboxes text. Make it static
|
||||
*_retval = role;
|
||||
} else {
|
||||
rv = nsAccessible::GetAccRole(_retval);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
PRUint32 role = 0;
|
||||
|
||||
// look at our role
|
||||
nsAccessible::GetAccRole(&role);
|
||||
|
||||
// if button then we need to make the name be open or close
|
||||
if (role == ROLE_PUSHBUTTON) {
|
||||
{
|
||||
// if its a button and not already registered,
|
||||
// register ourselves as a popup listener
|
||||
if (!mRegistered) {
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mSelectContent));
|
||||
if (!eventReceiver) {
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
eventReceiver->AddEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
|
||||
mRegistered = PR_TRUE;
|
||||
}
|
||||
|
||||
// get the current state open or closed
|
||||
// set _retval to it.
|
||||
// notice its supposed to be reversed. Close if opened
|
||||
// and Open if closed.
|
||||
|
||||
if (mOpen)
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("Close"));
|
||||
else
|
||||
*_retval = ToNewUnicode(NS_LITERAL_STRING("Open"));
|
||||
|
||||
} else {
|
||||
/*rv = nsAccessible::GetAccName(_retval);*/
|
||||
rv = NS_ERROR_NOT_IMPLEMENTED;
|
||||
*_retval = nsnull;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
nsSelectChildAccessible::~nsSelectChildAccessible()
|
||||
{
|
||||
if (mRegistered) {
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mSelectContent));
|
||||
if (eventReceiver)
|
||||
eventReceiver->RemoveEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::Create(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_TRUE;
|
||||
#ifdef DEBUG
|
||||
printf("Open\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::Destroy(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::Close(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectChildAccessible::CreateNewNextAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
return CreateNewPreviousAccessible(aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectChildAccessible::CreateNewPreviousAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsSelectChildAccessible(mPopupAtom, mSelectContent, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectChildAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
nsCOMPtr<nsIAccessible> next;
|
||||
nsresult rv = nsAccessible::GetAccNextSibling(getter_AddRefs(next));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
if (!next) {
|
||||
// ok no more siblings. Lets create our window
|
||||
nsCOMPtr<nsIAccessible> parent;
|
||||
GetAccParent(getter_AddRefs(parent));
|
||||
|
||||
*_retval = new nsSelectWindowAccessible(mPopupAtom, parent, nsnull, nsnull, mSelectContent, mPresShell);
|
||||
} else {
|
||||
*_retval = next;
|
||||
}
|
||||
|
||||
NS_ADDREF(*_retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//---------------------
|
||||
|
||||
|
||||
nsSelectWindowAccessible::nsSelectWindowAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aPrev, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
:nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mParent = aParent;
|
||||
mPrev = aPrev;
|
||||
mPopupAtom = aPopupAtom;
|
||||
mRegistered = PR_FALSE;
|
||||
mOpen = PR_FALSE;
|
||||
}
|
||||
|
||||
nsSelectWindowAccessible::~nsSelectWindowAccessible()
|
||||
{
|
||||
if (mRegistered) {
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mContent));
|
||||
if (eventReceiver)
|
||||
eventReceiver->RemoveEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::Create(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_TRUE;
|
||||
#ifdef DEBUG
|
||||
printf("Open\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::Destroy(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::Close(nsIDOMEvent* aEvent)
|
||||
{
|
||||
mOpen = PR_FALSE;
|
||||
#ifdef DEBUG
|
||||
printf("Close\n");
|
||||
#endif
|
||||
|
||||
/* TBD send state change event */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccState(PRUint32 *_retval)
|
||||
{
|
||||
// not not already one register ourselves as a popup listener
|
||||
|
||||
if (!mRegistered) {
|
||||
|
||||
nsCOMPtr<nsIDOMEventReceiver> eventReceiver(do_QueryInterface(mContent));
|
||||
if (!eventReceiver) {
|
||||
*_retval = 0;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
nsresult rv = eventReceiver->AddEventListener(NS_LITERAL_STRING("create"), this, PR_TRUE);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
*_retval = 0;
|
||||
return rv;
|
||||
}
|
||||
|
||||
mRegistered = PR_TRUE;
|
||||
}
|
||||
|
||||
// if open we are visible if closed we are invisible
|
||||
// set _retval to it.
|
||||
if (mOpen)
|
||||
*_retval |= STATE_DEFAULT;
|
||||
else
|
||||
*_retval |= STATE_INVISIBLE;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccExtState(PRUint32 *_retval)
|
||||
{
|
||||
*_retval=0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_WINDOW;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mParent;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mPrev;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccLastChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = new nsSelectListAccessible(mPopupAtom, this, nsnull, mContent, mPresShell);
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccFirstChild(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = new nsSelectListAccessible(mPopupAtom, this, nsnull, mContent, mPresShell);
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::GetAccChildCount(PRInt32 *_retval)
|
||||
{
|
||||
*_retval = 1;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
NS_IMETHODIMP nsSelectWindowAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
*x = *y = *width = *height = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
*/
|
||||
|
||||
nsIFrame* nsSelectWindowAccessible::GetBoundsFrame()
|
||||
{
|
||||
// get our frame
|
||||
nsIFrame* frame = GetFrame();
|
||||
|
||||
nsCOMPtr<nsIPresContext> context;
|
||||
GetPresContext(context);
|
||||
|
||||
// get its first popup child that should be the window
|
||||
frame->FirstChild(context, mPopupAtom, &frame);
|
||||
|
||||
return frame;
|
||||
}
|
||||
|
||||
//----------
|
||||
|
||||
|
||||
nsSelectListAccessible::nsSelectListAccessible(nsIAtom* aPopupAtom, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
:nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mPopupAtom = aPopupAtom;
|
||||
mParent = aParent;
|
||||
}
|
||||
|
||||
void nsSelectListAccessible::GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsIFrame* frame = nsnull;
|
||||
shell->GetPrimaryFrameFor(mContent, &frame);
|
||||
if (aFrame == frame)
|
||||
aList = mPopupAtom;
|
||||
else
|
||||
aList = nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::AccGetBounds(PRInt32 *x, PRInt32 *y, PRInt32 *width, PRInt32 *height)
|
||||
{
|
||||
return mParent->AccGetBounds(x,y,width,height);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mParent;
|
||||
NS_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccName(PRUnichar **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LIST;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccPreviousSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsSelectListAccessible::GetAccNextSibling(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectListAccessible::CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsListChildAccessible(mPopupAtom, mContent, this, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
nsIAccessible* nsSelectListAccessible::CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsListChildAccessible(mPopupAtom, mContent, this, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
//--------
|
||||
|
||||
nsListChildAccessible::nsListChildAccessible(nsIAtom* aPopupAtom, nsIContent* aSelectContent, nsIAccessible* aParent, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell):
|
||||
nsAccessible(aAccessible, aContent, aShell)
|
||||
{
|
||||
mParent = aParent;
|
||||
mPopupAtom = aPopupAtom;
|
||||
mSelectContent = aSelectContent;
|
||||
}
|
||||
|
||||
nsIAccessible* nsListChildAccessible::CreateNewAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell)
|
||||
{
|
||||
NS_ASSERTION(aAccessible && aContent,"Error not accessible or content");
|
||||
return new nsListChildAccessible(mPopupAtom, mSelectContent, mParent, aAccessible, aContent, aShell);
|
||||
}
|
||||
|
||||
void nsListChildAccessible::GetListAtomForFrame(nsIFrame* aFrame, nsIAtom*& aList)
|
||||
{
|
||||
nsCOMPtr<nsIPresShell> shell(do_QueryReferent(mPresShell));
|
||||
nsIFrame* frame = nsnull;
|
||||
shell->GetPrimaryFrameFor(mSelectContent, &frame);
|
||||
if (aFrame == frame)
|
||||
aList = mPopupAtom;
|
||||
else
|
||||
aList = nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsListChildAccessible::GetAccRole(PRUint32 *_retval)
|
||||
{
|
||||
*_retval = ROLE_LISTITEM;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsListChildAccessible::GetAccParent(nsIAccessible **_retval)
|
||||
{
|
||||
*_retval = mParent;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
52
mozilla/accessible/src/nsSelectAccessible.h
Normal file
52
mozilla/accessible/src/nsSelectAccessible.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Original Author: David W. Hyatt (hyatt@netscape.com)
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
#ifndef __nsSelectAccessible_h__
|
||||
#define __nsSelectAccessible_h__
|
||||
|
||||
#include "nsAccessible.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIAtom.h"
|
||||
|
||||
/*
|
||||
class nsSelectAccessible : public nsAccessible
|
||||
{
|
||||
public:
|
||||
|
||||
nsSelectAccessible(nsIAtom* aPopupAtom, nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
NS_IMETHOD GetAccLastChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccFirstChild(nsIAccessible **_retval);
|
||||
NS_IMETHOD GetAccName(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccValue(PRUnichar **_retval);
|
||||
NS_IMETHOD GetAccRole(PRUint32 *_retval);
|
||||
NS_IMETHOD GetAccChildCount(PRInt32 *_retval);
|
||||
|
||||
virtual ~nsSelectAccessible() {}
|
||||
virtual nsIAccessible* CreateNewFirstAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
virtual nsIAccessible* CreateNewLastAccessible(nsIAccessible* aAccessible, nsIContent* aContent, nsIWeakReference* aShell);
|
||||
|
||||
nsCOMPtr<nsIAtom> mPopupAtom;
|
||||
};
|
||||
*/
|
||||
|
||||
#endif
|
||||
14
mozilla/aclocal.m4
vendored
Normal file
14
mozilla/aclocal.m4
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
dnl
|
||||
dnl Local autoconf macros used with mozilla
|
||||
dnl The contents of this file are under the Public Domain.
|
||||
dnl
|
||||
|
||||
builtin(include, build/autoconf/glib.m4)dnl
|
||||
builtin(include, build/autoconf/gtk.m4)dnl
|
||||
builtin(include, build/autoconf/gdk-pixbuf.m4)dnl
|
||||
builtin(include, build/autoconf/libIDL.m4)dnl
|
||||
builtin(include, build/autoconf/nspr.m4)dnl
|
||||
dnl
|
||||
define(MOZ_TOPSRCDIR,.)dnl MOZ_TOPSRCDIR is used in altoptions.m4
|
||||
builtin(include, build/autoconf/altoptions.m4)dnl
|
||||
|
||||
1180
mozilla/allmakefiles.sh
Executable file
1180
mozilla/allmakefiles.sh
Executable file
File diff suppressed because it is too large
Load Diff
42
mozilla/build/Makefile.in
Normal file
42
mozilla/build/Makefile.in
Normal file
@@ -0,0 +1,42 @@
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code,
|
||||
# released March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
DEPTH = ..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
ifneq ($(MOZ_WIDGET_TOOLKIT),os2)
|
||||
DIRS = unix
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
# Install bloaturls.txt file for tinderbox Bloaty test.
|
||||
install:: $(srcdir)/bloaturls.txt
|
||||
$(INSTALL) $< $(DIST)/bin
|
||||
|
||||
# Install startup.html, startup test page.
|
||||
install:: $(srcdir)/startup-test.html
|
||||
$(INSTALL) $< $(DIST)/bin
|
||||
179
mozilla/build/autoconf/acoutput-fast.pl
Executable file
179
mozilla/build/autoconf/acoutput-fast.pl
Executable file
@@ -0,0 +1,179 @@
|
||||
#! /usr/bin/env perl
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
# acoutput-fast.pl - Quickly create makefiles that are in a common format.
|
||||
#
|
||||
# Most of the makefiles in mozilla only refer to two configure variables:
|
||||
# @srcdir@
|
||||
# @top_srcdir@
|
||||
# However, configure does not know any better and it runs sed on each file
|
||||
# with over 150 replacement rules (slow as molasses).
|
||||
#
|
||||
# This script takes a list of makefiles as input. For example,
|
||||
#
|
||||
# echo $MAKEFILES | acoutput-fast.pl
|
||||
#
|
||||
# The script creates each Makefile that only references @srcdir@ and
|
||||
# @top_srcdir@. For other files, it lists them in a shell command that is
|
||||
# printed to stdout:
|
||||
#
|
||||
# CONFIG_FILES="unhandled_files..."; export CONFIG_FILES
|
||||
#
|
||||
# This command can be used to have config.status create the unhandled
|
||||
# files. For example,
|
||||
#
|
||||
# eval "echo $MAKEFILES | acoutput-fast.pl"
|
||||
# AC_OUTPUT($MAKEFILES)
|
||||
#
|
||||
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
#use File::Basename;
|
||||
sub dirname {
|
||||
my $dir = $_[0];
|
||||
return '.' if not $dir =~ m%/%;
|
||||
$dir =~ s%/[^/][^/]*$%%;
|
||||
return $dir;
|
||||
}
|
||||
|
||||
# Create one directory. Assumes it doesn't already exist.
|
||||
# Will create parent(s) if needed.
|
||||
sub create_directory {
|
||||
my $dir = $_[0];
|
||||
my $parent = dirname($dir);
|
||||
create_directory($parent) if not -d $parent;
|
||||
mkdir "$dir",0777;
|
||||
}
|
||||
|
||||
# Create all the directories at once.
|
||||
# This can be much faster than calling mkdir() for each one.
|
||||
sub create_directories {
|
||||
my @makefiles = @_;
|
||||
my @dirs = ();
|
||||
my $ac_file;
|
||||
foreach $ac_file (@makefiles) {
|
||||
push @dirs, dirname($ac_file);
|
||||
}
|
||||
# Call mkdir with the directories sorted by subdir count (how many /'s)
|
||||
if (@dirs) {
|
||||
my $mkdir_command = "mkdir -p ". join(' ', @dirs);
|
||||
if (system($mkdir_command) != 0) {
|
||||
print STDERR "Creating dirs all at once failed; trying one at atime\n";
|
||||
foreach $dir (@dirs) {
|
||||
if (not -d $dir) {
|
||||
print STDERR "Creating directory $dir\n";
|
||||
create_directory($dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($ARGV[0] =~ /^--srcdir=/) {
|
||||
$ac_given_srcdir = (split /=/, shift @ARGV)[1];
|
||||
} else {
|
||||
$ac_given_srcdir = $0;
|
||||
$ac_given_srcdir =~ s|/?build/autoconf/.*$||;
|
||||
$ac_given_srcdir = '.' if $ac_given_srcdir eq '';
|
||||
}
|
||||
|
||||
# Read list of makefiles from the stdin or,
|
||||
# from files listed on the command-line.
|
||||
#
|
||||
@makefiles=();
|
||||
push @makefiles, split while (<>);
|
||||
|
||||
# Create all the directories at once.
|
||||
# This can be much faster than calling mkdir() for each one.
|
||||
create_directories(@makefiles);
|
||||
|
||||
# Output the makefiles.
|
||||
#
|
||||
@unhandled=();
|
||||
foreach $ac_file (@makefiles) {
|
||||
if (not $ac_file =~ /Makefile$/ or $ac_file =~ /:/) {
|
||||
push @unhandled, $ac_file;
|
||||
next;
|
||||
}
|
||||
$ac_file_in = "$ac_given_srcdir/$ac_file.in";
|
||||
$ac_dir = dirname($ac_file);
|
||||
if ($ac_dir eq '.') {
|
||||
$ac_dir_suffix = '';
|
||||
$ac_dots = '';
|
||||
} else {
|
||||
$ac_dir_suffix = "/$ac_dir";
|
||||
$ac_dir_suffix =~ s%^/\./%/%;
|
||||
$ac_dots = $ac_dir_suffix;
|
||||
$ac_dots =~ s%/[^/]*%../%g;
|
||||
}
|
||||
if ($ac_given_srcdir eq '.') {
|
||||
$srcdir = '.';
|
||||
if ($ac_dots eq '') {
|
||||
$top_srcdir = '.'
|
||||
} else {
|
||||
$top_srcdir = $ac_dots;
|
||||
$top_srcdir =~ s%/$%%;
|
||||
}
|
||||
} elsif ($ac_given_srcdir =~ m%^/% or $ac_given_srcdir =~ m%^.:/%) {
|
||||
$srcdir = "$ac_given_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$ac_given_srcdir";
|
||||
} else {
|
||||
$srcdir = "$ac_dots$ac_given_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$ac_dots$ac_given_srcdir";
|
||||
}
|
||||
|
||||
if (-e $ac_file) {
|
||||
next if -M _ < -M $ac_file_in;
|
||||
print STDERR "updating $ac_file\n";
|
||||
} else {
|
||||
print STDERR "creating $ac_file\n";
|
||||
}
|
||||
|
||||
open (INFILE, "<$ac_file_in")
|
||||
or ( warn "can't read $ac_file_in: No such file or directory\n" and next);
|
||||
open (OUTFILE, ">$ac_file")
|
||||
or ( warn "Unable to create $ac_file\n" and next);
|
||||
|
||||
while (<INFILE>) {
|
||||
#if (/\@[_a-zA-Z]*\@.*\@[_a-zA-Z]*\@/) {
|
||||
# warn "Two defines on a line:$ac_file:$.:$_";
|
||||
# push @unhandled, $ac_file;
|
||||
# last;
|
||||
#}
|
||||
|
||||
s/\@srcdir\@/$srcdir/g;
|
||||
s/\@top_srcdir\@/$top_srcdir/g;
|
||||
|
||||
if (/\@[_a-zA-Z]*\@/) {
|
||||
warn "Unknown variable:$ac_file:$.:$_";
|
||||
push @unhandled, $ac_file;
|
||||
last;
|
||||
}
|
||||
print OUTFILE;
|
||||
}
|
||||
close INFILE;
|
||||
close OUTFILE;
|
||||
}
|
||||
|
||||
# Print the shell command to be evaluated by configure.
|
||||
#
|
||||
print "CONFIG_FILES=\"".join(' ', @unhandled)."\"; export CONFIG_FILES\n";
|
||||
|
||||
140
mozilla/build/autoconf/altoptions.m4
Normal file
140
mozilla/build/autoconf/altoptions.m4
Normal file
@@ -0,0 +1,140 @@
|
||||
dnl The contents of this file are subject to the Netscape Public
|
||||
dnl License Version 1.1 (the "License"); you may not use this file
|
||||
dnl except in compliance with the License. You may obtain a copy of
|
||||
dnl the License at http://www.mozilla.org/NPL/
|
||||
dnl
|
||||
dnl Software distributed under the License is distributed on an "AS
|
||||
dnl IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
dnl implied. See the License for the specific language governing
|
||||
dnl rights and limitations under the License.
|
||||
dnl
|
||||
dnl The Original Code is mozilla.org code.
|
||||
dnl
|
||||
dnl The Initial Developer of the Original Code is Netscape
|
||||
dnl Communications Corporation. Portions created by Netscape are
|
||||
dnl Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
dnl Rights Reserved.
|
||||
dnl
|
||||
dnl Contributor(s):
|
||||
dnl
|
||||
|
||||
dnl altoptions.m4 - An alternative way of specifying command-line options.
|
||||
dnl These macros are needed to support a menu-based configurator.
|
||||
dnl This file also includes the macro, AM_READ_MYCONFIG, for reading
|
||||
dnl the 'myconfig.m4' file.
|
||||
|
||||
dnl Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
|
||||
dnl MOZ_ARG_ENABLE_BOOL( NAME, HELP, IF-YES [, IF-NO [, ELSE]])
|
||||
dnl MOZ_ARG_DISABLE_BOOL( NAME, HELP, IF-NO [, IF-YES [, ELSE]])
|
||||
dnl MOZ_ARG_ENABLE_STRING( NAME, HELP, IF-SET [, ELSE])
|
||||
dnl MOZ_ARG_ENABLE_BOOL_OR_STRING( NAME, HELP, IF-YES, IF-NO, IF-SET[, ELSE]]])
|
||||
dnl MOZ_ARG_WITH_BOOL( NAME, HELP, IF-YES [, IF-NO [, ELSE])
|
||||
dnl MOZ_ARG_WITHOUT_BOOL( NAME, HELP, IF-NO [, IF-YES [, ELSE])
|
||||
dnl MOZ_ARG_WITH_STRING( NAME, HELP, IF-SET [, ELSE])
|
||||
dnl MOZ_ARG_HEADER(Comment)
|
||||
dnl MOZ_CHECK_PTHREADS( NAME, IF-YES [, ELSE ])
|
||||
dnl MOZ_READ_MYCONFIG() - Read in 'myconfig.sh' file
|
||||
|
||||
|
||||
dnl MOZ_TWO_STRING_TEST(NAME, STR1, IF-STR1, STR2, IF-STR2 [, ELSE])
|
||||
AC_DEFUN(MOZ_TWO_STRING_TEST,
|
||||
[if test "$enableval" = "[$2]"; then
|
||||
ifelse([$3], , :, [$3])
|
||||
elif test "$enableval" = "[$4]"; then
|
||||
ifelse([$5], , :, [$5])
|
||||
else
|
||||
ifelse([$6], ,
|
||||
[AC_MSG_ERROR([Option, [$1], does not take an argument ($enableval).])],
|
||||
[$6])
|
||||
fi])
|
||||
|
||||
dnl MOZ_ARG_ENABLE_BOOL(NAME, HELP, IF-YES [, IF-NO [, ELSE]])
|
||||
AC_DEFUN(MOZ_ARG_ENABLE_BOOL,
|
||||
[AC_ARG_ENABLE([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], yes, [$3], no, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_DISABLE_BOOL(NAME, HELP, IF-NO [, IF-YES [, ELSE]])
|
||||
AC_DEFUN(MOZ_ARG_DISABLE_BOOL,
|
||||
[AC_ARG_ENABLE([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], no, [$3], yes, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_ENABLE_STRING(NAME, HELP, IF-SET [, ELSE])
|
||||
AC_DEFUN(MOZ_ARG_ENABLE_STRING,
|
||||
[AC_ARG_ENABLE([$1], [$2], [$3], [$4])])
|
||||
|
||||
dnl MOZ_ARG_ENABLE_BOOL_OR_STRING(NAME, HELP, IF-YES, IF-NO, IF-SET[, ELSE]]])
|
||||
AC_DEFUN(MOZ_ARG_ENABLE_BOOL_OR_STRING,
|
||||
[ifelse([$5], ,
|
||||
[errprint([Option, $1, needs an "IF-SET" argument.
|
||||
])
|
||||
m4exit(1)],
|
||||
[AC_ARG_ENABLE([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], yes, [$3], no, [$4], [$5])],
|
||||
[$6])])])
|
||||
|
||||
dnl MOZ_ARG_WITH_BOOL(NAME, HELP, IF-YES [, IF-NO [, ELSE])
|
||||
AC_DEFUN(MOZ_ARG_WITH_BOOL,
|
||||
[AC_ARG_WITH([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], yes, [$3], no, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_WITHOUT_BOOL(NAME, HELP, IF-NO [, IF-YES [, ELSE])
|
||||
AC_DEFUN(MOZ_ARG_WITHOUT_BOOL,
|
||||
[AC_ARG_WITH([$1], [$2],
|
||||
[MOZ_TWO_STRING_TEST([$1], no, [$3], yes, [$4])],
|
||||
[$5])])
|
||||
|
||||
dnl MOZ_ARG_WITH_STRING(NAME, HELP, IF-SET [, ELSE])
|
||||
AC_DEFUN(MOZ_ARG_WITH_STRING,
|
||||
[AC_ARG_WITH([$1], [$2], [$3], [$4])])
|
||||
|
||||
dnl MOZ_ARG_HEADER(Comment)
|
||||
dnl This is used by webconfig to group options
|
||||
define(MOZ_ARG_HEADER, [# $1])
|
||||
|
||||
dnl
|
||||
dnl Apparently, some systems cannot properly check for the pthread
|
||||
dnl library unless <pthread.h> is included so we need to test
|
||||
dnl using it
|
||||
dnl
|
||||
dnl MOZ_CHECK_PTHREADS(lib, success, failure)
|
||||
AC_DEFUN(MOZ_CHECK_PTHREADS,
|
||||
[
|
||||
AC_MSG_CHECKING([for pthread_create in -l$1])
|
||||
echo "
|
||||
#include <pthread.h>
|
||||
void *foo(void *v) { int a = 1; }
|
||||
int main() {
|
||||
pthread_t t;
|
||||
if (!pthread_create(&t, 0, &foo, 0)) {
|
||||
pthread_join(t, 0);
|
||||
}
|
||||
exit(0);
|
||||
}" > dummy.c ;
|
||||
echo "${CC-cc} -o dummy${ac_exeext} dummy.c $CFLAGS $CPPFLAGS -l[$1] $LDFLAGS $LIBS" 1>&5;
|
||||
${CC-cc} -o dummy${ac_exeext} dummy.c $CFLAGS $CPPFLAGS -l[$1] $LDFLAGS $LIBS 2>&5;
|
||||
_res=$? ;
|
||||
rm -f dummy.c dummy${ac_exeext} ;
|
||||
if test "$_res" = "0"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
[$2]
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
[$3]
|
||||
fi
|
||||
])
|
||||
|
||||
dnl MOZ_READ_MYCONFIG() - Read in 'myconfig.sh' file
|
||||
AC_DEFUN(MOZ_READ_MOZCONFIG,
|
||||
[AC_REQUIRE([AC_INIT_BINSH])dnl
|
||||
# Read in '.mozconfig' script to set the initial options.
|
||||
# See the mozconfig2configure script for more details.
|
||||
_AUTOCONF_TOOLS_DIR=`dirname [$]0`/[$1]/build/autoconf
|
||||
. $_AUTOCONF_TOOLS_DIR/mozconfig2configure])
|
||||
|
||||
dnl This gets inserted at the top of the configure script
|
||||
MOZ_READ_MOZCONFIG(MOZ_TOPSRCDIR)
|
||||
54
mozilla/build/autoconf/clean-config.sh
Executable file
54
mozilla/build/autoconf/clean-config.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
# clean-config.sh - Removes all files generated by mozilla configure.
|
||||
# Only removes files from the topsrcdir. To clean up an objdir,
|
||||
# simply remove the directory and start over.
|
||||
#
|
||||
# Usage:
|
||||
# 1. cd <topsrcdir>
|
||||
# 2. build/autoconf/clean-config.sh
|
||||
#
|
||||
# Send comments, improvements, bugs to slamm@netscape.com
|
||||
|
||||
topsrcdir=`cd \`dirname $0\`/../..; pwd`
|
||||
|
||||
if [ ! -f configure.in ]; then
|
||||
echo "clean-config.sh only cleans the source tree. To run," 2>&1
|
||||
echo " cd $topsrcdir; build/autoconf/clean-config.sh" 2>&1
|
||||
echo " (To clean a separate objdir, simple remove the directory.)" 2>&1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f mailnews/makefiles ]; then
|
||||
MOZ_MAIL_NEWS=1
|
||||
export MOZ_MAIL_NEWS
|
||||
fi
|
||||
|
||||
. allmakefiles.sh
|
||||
|
||||
rm -fr $MAKEFILES \
|
||||
config-defs.h \
|
||||
config.cache \
|
||||
config.log \
|
||||
config.status \
|
||||
$NULL
|
||||
1391
mozilla/build/autoconf/config.guess
vendored
Executable file
1391
mozilla/build/autoconf/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1373
mozilla/build/autoconf/config.sub
vendored
Executable file
1373
mozilla/build/autoconf/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
166
mozilla/build/autoconf/gdk-pixbuf.m4
Normal file
166
mozilla/build/autoconf/gdk-pixbuf.m4
Normal file
@@ -0,0 +1,166 @@
|
||||
# Configure paths for gdk-pixbuf
|
||||
# Elliot Lee 2000-01-10
|
||||
# stolen from Raph Levien 98-11-18
|
||||
# stolen from Manish Singh 98-9-30
|
||||
# stolen back from Frank Belew
|
||||
# stolen from Manish Singh
|
||||
# Shamelessly stolen from Owen Taylor
|
||||
|
||||
dnl AM_PATH_GDK_PIXBUF([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for GDK_PIXBUF, and define GDK_PIXBUF_CFLAGS and GDK_PIXBUF_LIBS
|
||||
dnl
|
||||
AC_DEFUN(AM_PATH_GDK_PIXBUF,
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the gdk-pixbuf-config script
|
||||
dnl
|
||||
AC_ARG_WITH(gdk-pixbuf-prefix,[ --with-gdk-pixbuf-prefix=PFX Prefix where GDK_PIXBUF is installed (optional)],
|
||||
gdk_pixbuf_prefix="$withval", gdk_pixbuf_prefix="")
|
||||
AC_ARG_WITH(gdk-pixbuf-exec-prefix,[ --with-gdk-pixbuf-exec-prefix=PFX Exec prefix where GDK_PIXBUF is installed (optional)],
|
||||
gdk_pixbuf_exec_prefix="$withval", gdk_pixbuf_exec_prefix="")
|
||||
AC_ARG_ENABLE(gdk_pixbuftest, [ --disable-gdk_pixbuftest Do not try to compile and run a test GDK_PIXBUF program],
|
||||
, enable_gdk_pixbuftest=yes)
|
||||
|
||||
if test x$gdk_pixbuf_exec_prefix != x ; then
|
||||
gdk_pixbuf_args="$gdk_pixbuf_args --exec-prefix=$gdk_pixbuf_exec_prefix"
|
||||
if test x${GDK_PIXBUF_CONFIG+set} = xset ; then
|
||||
GDK_PIXBUF_CONFIG=$gdk_pixbuf_exec_prefix/gdk-pixbuf-config
|
||||
fi
|
||||
fi
|
||||
if test x$gdk_pixbuf_prefix != x ; then
|
||||
gdk_pixbuf_args="$gdk_pixbuf_args --prefix=$gdk_pixbuf_prefix"
|
||||
if test x${GDK_PIXBUF_CONFIG+set} = xset ; then
|
||||
GDK_PIXBUF_CONFIG=$gdk_pixbuf_prefix/bin/gdk-pixbuf-config
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(GDK_PIXBUF_CONFIG, gdk-pixbuf-config, no)
|
||||
min_gdk_pixbuf_version=ifelse([$1], ,0.2.5,$1)
|
||||
AC_MSG_CHECKING(for GDK_PIXBUF - version >= $min_gdk_pixbuf_version)
|
||||
no_gdk_pixbuf=""
|
||||
if test "$GDK_PIXBUF_CONFIG" = "no" ; then
|
||||
no_gdk_pixbuf=yes
|
||||
else
|
||||
GDK_PIXBUF_CFLAGS=`$GDK_PIXBUF_CONFIG $gdk_pixbufconf_args --cflags`
|
||||
GDK_PIXBUF_LIBS=`$GDK_PIXBUF_CONFIG $gdk_pixbufconf_args --libs`
|
||||
|
||||
gdk_pixbuf_major_version=`$GDK_PIXBUF_CONFIG $gdk_pixbuf_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
gdk_pixbuf_minor_version=`$GDK_PIXBUF_CONFIG $gdk_pixbuf_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
gdk_pixbuf_micro_version=`$GDK_PIXBUF_CONFIG $gdk_pixbuf_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_gdk_pixbuftest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $GDK_PIXBUF_CFLAGS"
|
||||
LIBS="$LIBS $GDK_PIXBUF_LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed GDK_PIXBUF is sufficiently new. (Also sanity
|
||||
dnl checks the results of gdk-pixbuf-config to some extent
|
||||
dnl
|
||||
rm -f conf.gdk_pixbuftest
|
||||
AC_TRY_RUN([
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
|
||||
char*
|
||||
my_strdup (char *str)
|
||||
{
|
||||
char *new_str;
|
||||
|
||||
if (str)
|
||||
{
|
||||
new_str = malloc ((strlen (str) + 1) * sizeof(char));
|
||||
strcpy (new_str, str);
|
||||
}
|
||||
else
|
||||
new_str = NULL;
|
||||
|
||||
return new_str;
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.gdk_pixbuftest");
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = my_strdup("$min_gdk_pixbuf_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_gdk_pixbuf_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (($gdk_pixbuf_major_version > major) ||
|
||||
(($gdk_pixbuf_major_version == major) && ($gdk_pixbuf_minor_version > minor)) ||
|
||||
(($gdk_pixbuf_major_version == major) && ($gdk_pixbuf_minor_version == minor) && ($gdk_pixbuf_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** 'gdk-pixbuf-config --version' returned %d.%d.%d, but the minimum version\n", $gdk_pixbuf_major_version, $gdk_pixbuf_minor_version, $gdk_pixbuf_micro_version);
|
||||
printf("*** of GDK_PIXBUF required is %d.%d.%d. If gdk-pixbuf-config is correct, then it is\n", major, minor, micro);
|
||||
printf("*** best to upgrade to the required version.\n");
|
||||
printf("*** If gdk-pixbuf-config was wrong, set the environment variable GDK_PIXBUF_CONFIG\n");
|
||||
printf("*** to point to the correct copy of gdk-pixbuf-config, and remove the file\n");
|
||||
printf("*** config.cache before re-running configure\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
],, no_gdk_pixbuf=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_gdk_pixbuf" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$GDK_PIXBUF_CONFIG" = "no" ; then
|
||||
echo "*** The gdk-pixbuf-config script installed by GDK_PIXBUF could not be found"
|
||||
echo "*** If GDK_PIXBUF was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the GDK_PIXBUF_CONFIG environment variable to the"
|
||||
echo "*** full path to gdk-pixbuf-config."
|
||||
else
|
||||
if test -f conf.gdk_pixbuftest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run GDK_PIXBUF test program, checking why..."
|
||||
CFLAGS="$CFLAGS $GDK_PIXBUF_CFLAGS"
|
||||
LIBS="$LIBS $GDK_PIXBUF_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <stdio.h>
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
], [ return 0; ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding GDK_PIXBUF or finding the wrong"
|
||||
echo "*** version of GDK_PIXBUF. If it is not finding GDK_PIXBUF, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means GDK_PIXBUF was incorrectly installed"
|
||||
echo "*** or that you have moved GDK_PIXBUF since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the gdk-pixbuf-config script: $GDK_PIXBUF_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
GDK_PIXBUF_CFLAGS=""
|
||||
GDK_PIXBUF_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(GDK_PIXBUF_CFLAGS)
|
||||
AC_SUBST(GDK_PIXBUF_LIBS)
|
||||
rm -f conf.gdk_pixbuftest
|
||||
])
|
||||
200
mozilla/build/autoconf/glib.m4
Normal file
200
mozilla/build/autoconf/glib.m4
Normal file
@@ -0,0 +1,200 @@
|
||||
# Configure paths for GLIB
|
||||
# Owen Taylor 97-11-3
|
||||
|
||||
dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
|
||||
dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
|
||||
dnl gthread is specified in MODULES, pass to glib-config
|
||||
dnl
|
||||
AC_DEFUN(AM_PATH_GLIB,
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the glib-config script
|
||||
dnl
|
||||
AC_ARG_WITH(glib-prefix,[ --with-glib-prefix=PFX Prefix where GLIB is installed (optional)],
|
||||
glib_config_prefix="$withval", glib_config_prefix="")
|
||||
AC_ARG_WITH(glib-exec-prefix,[ --with-glib-exec-prefix=PFX
|
||||
Exec prefix where GLIB is installed (optional)],
|
||||
glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
|
||||
AC_ARG_ENABLE(glibtest, [ --disable-glibtest Do not try to compile and run a test GLIB program],
|
||||
, enable_glibtest=yes)
|
||||
|
||||
if test x$glib_config_exec_prefix != x ; then
|
||||
glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
|
||||
if test x${GLIB_CONFIG+set} != xset ; then
|
||||
GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
|
||||
fi
|
||||
fi
|
||||
if test x$glib_config_prefix != x ; then
|
||||
glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
|
||||
if test x${GLIB_CONFIG+set} != xset ; then
|
||||
GLIB_CONFIG=$glib_config_prefix/bin/glib-config
|
||||
fi
|
||||
fi
|
||||
|
||||
for module in . $4
|
||||
do
|
||||
case "$module" in
|
||||
gmodule)
|
||||
glib_config_args="$glib_config_args gmodule"
|
||||
;;
|
||||
gthread)
|
||||
glib_config_args="$glib_config_args gthread"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
dnl Force a version check to keep upgraded versions from being overridden by the cached value.
|
||||
unset ac_cv_path_GLIB_CONFIG
|
||||
|
||||
AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
|
||||
min_glib_version=ifelse([$1], ,0.99.7,$1)
|
||||
AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
|
||||
no_glib=""
|
||||
if test "$GLIB_CONFIG" = "no" ; then
|
||||
no_glib=yes
|
||||
else
|
||||
GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
|
||||
GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
|
||||
glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_glibtest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
||||
LIBS="$GLIB_LIBS $LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed GLIB is sufficiently new. (Also sanity
|
||||
dnl checks the results of glib-config to some extent
|
||||
dnl
|
||||
rm -f conf.glibtest
|
||||
AC_TRY_RUN([
|
||||
#include <glib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.glibtest");
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = g_strdup("$min_glib_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_glib_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((glib_major_version != $glib_config_major_version) ||
|
||||
(glib_minor_version != $glib_config_minor_version) ||
|
||||
(glib_micro_version != $glib_config_micro_version))
|
||||
{
|
||||
printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
|
||||
$glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
|
||||
glib_major_version, glib_minor_version, glib_micro_version);
|
||||
printf ("*** was found! If glib-config was correct, then it is best\n");
|
||||
printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
|
||||
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|
||||
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
printf("*** required on your system.\n");
|
||||
printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
|
||||
printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
|
||||
printf("*** before re-running configure\n");
|
||||
}
|
||||
else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
|
||||
(glib_minor_version != GLIB_MINOR_VERSION) ||
|
||||
(glib_micro_version != GLIB_MICRO_VERSION))
|
||||
{
|
||||
printf("*** GLIB header files (version %d.%d.%d) do not match\n",
|
||||
GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
|
||||
printf("*** library (version %d.%d.%d)\n",
|
||||
glib_major_version, glib_minor_version, glib_micro_version);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((glib_major_version > major) ||
|
||||
((glib_major_version == major) && (glib_minor_version > minor)) ||
|
||||
((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
|
||||
glib_major_version, glib_minor_version, glib_micro_version);
|
||||
printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
|
||||
major, minor, micro);
|
||||
printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
|
||||
printf("***\n");
|
||||
printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
printf("*** probably means that the wrong copy of the glib-config shell script is\n");
|
||||
printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
|
||||
printf("*** correct copy of glib-config. (In this case, you will have to\n");
|
||||
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||
printf("*** so that the correct libraries are found at run-time))\n");
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_glib" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$GLIB_CONFIG" = "no" ; then
|
||||
echo "*** The glib-config script installed by GLIB could not be found"
|
||||
echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the GLIB_CONFIG environment variable to the"
|
||||
echo "*** full path to glib-config."
|
||||
else
|
||||
if test -f conf.glibtest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run GLIB test program, checking why..."
|
||||
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
||||
LIBS="$LIBS $GLIB_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <glib.h>
|
||||
#include <stdio.h>
|
||||
], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding GLIB or finding the wrong"
|
||||
echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
|
||||
echo "***"
|
||||
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
|
||||
echo "*** came with the system with the command"
|
||||
echo "***"
|
||||
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
|
||||
echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
GLIB_CFLAGS=""
|
||||
GLIB_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(GLIB_CFLAGS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
rm -f conf.glibtest
|
||||
])
|
||||
191
mozilla/build/autoconf/gtk.m4
Normal file
191
mozilla/build/autoconf/gtk.m4
Normal file
@@ -0,0 +1,191 @@
|
||||
# Configure paths for GTK+
|
||||
# Owen Taylor 97-11-3
|
||||
# (copy of gtk.m4 (public domain))
|
||||
|
||||
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
|
||||
dnl
|
||||
AC_DEFUN(AM_PATH_GTK,
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the gtk-config script
|
||||
dnl
|
||||
AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
|
||||
gtk_config_prefix="$withval", gtk_config_prefix="")
|
||||
AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX
|
||||
Exec prefix where GTK is installed (optional)],
|
||||
gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
|
||||
AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
|
||||
, enable_gtktest=yes)
|
||||
|
||||
if test x$gtk_config_exec_prefix != x ; then
|
||||
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
|
||||
if test x${GTK_CONFIG+set} != xset ; then
|
||||
GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
|
||||
fi
|
||||
fi
|
||||
if test x$gtk_config_prefix != x ; then
|
||||
gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
|
||||
if test x${GTK_CONFIG+set} != xset ; then
|
||||
GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl Force a version check to keep upgraded versions from being overridden by the cached value.
|
||||
unset ac_cv_path_GTK_CONFIG
|
||||
|
||||
AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
|
||||
min_gtk_version=ifelse([$1], ,0.99.7,$1)
|
||||
AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
|
||||
no_gtk=""
|
||||
if test "$GTK_CONFIG" = "no" ; then
|
||||
no_gtk=yes
|
||||
else
|
||||
GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
|
||||
GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
|
||||
gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_gtktest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||||
LIBS="$LIBS $GTK_LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed GTK is sufficiently new. (Also sanity
|
||||
dnl checks the results of gtk-config to some extent
|
||||
dnl
|
||||
rm -f conf.gtktest
|
||||
AC_TRY_RUN([
|
||||
#include <gtk/gtk.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.gtktest");
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = g_strdup("$min_gtk_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_gtk_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((gtk_major_version != $gtk_config_major_version) ||
|
||||
(gtk_minor_version != $gtk_config_minor_version) ||
|
||||
(gtk_micro_version != $gtk_config_micro_version))
|
||||
{
|
||||
printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
|
||||
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
|
||||
gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
printf ("*** was found! If gtk-config was correct, then it is best\n");
|
||||
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
|
||||
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|
||||
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
printf("*** required on your system.\n");
|
||||
printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
|
||||
printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
|
||||
printf("*** before re-running configure\n");
|
||||
}
|
||||
#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
|
||||
else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
|
||||
(gtk_minor_version != GTK_MINOR_VERSION) ||
|
||||
(gtk_micro_version != GTK_MICRO_VERSION))
|
||||
{
|
||||
printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
|
||||
GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
|
||||
printf("*** library (version %d.%d.%d)\n",
|
||||
gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
}
|
||||
#endif /* defined (GTK_MAJOR_VERSION) ... */
|
||||
else
|
||||
{
|
||||
if ((gtk_major_version > major) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
|
||||
gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
|
||||
major, minor, micro);
|
||||
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
|
||||
printf("***\n");
|
||||
printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
|
||||
printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
|
||||
printf("*** correct copy of gtk-config. (In this case, you will have to\n");
|
||||
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||
printf("*** so that the correct libraries are found at run-time))\n");
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_gtk" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$GTK_CONFIG" = "no" ; then
|
||||
echo "*** The gtk-config script installed by GTK could not be found."
|
||||
echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the GTK_CONFIG environment variable to the"
|
||||
echo "*** full path to gtk-config."
|
||||
echo "*** GTK+ is available from ftp://ftp.gtk.org/pub/gtk"
|
||||
else
|
||||
if test -f conf.gtktest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run GTK test program, checking why..."
|
||||
CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||||
LIBS="$LIBS $GTK_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <gtk/gtk.h>
|
||||
#include <stdio.h>
|
||||
], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding GTK or finding the wrong"
|
||||
echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
|
||||
echo "***"
|
||||
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
|
||||
echo "*** came with the system with the command"
|
||||
echo "***"
|
||||
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means GTK was incorrectly installed"
|
||||
echo "*** or that you have moved GTK since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
GTK_CFLAGS=""
|
||||
GTK_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(GTK_CFLAGS)
|
||||
AC_SUBST(GTK_LIBS)
|
||||
rm -f conf.gtktest
|
||||
])
|
||||
119
mozilla/build/autoconf/install-sh
Executable file
119
mozilla/build/autoconf/install-sh
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5; it is not part of GNU.
|
||||
#
|
||||
# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
#
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
|
||||
instcmd="$mvprog"
|
||||
chmodcmd=""
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
-c) instcmd="$cpprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd="$stripprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
fi
|
||||
|
||||
# Make a temp file name in the proper directory.
|
||||
|
||||
dstdir=`dirname $dst`
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src $dsttmp
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $rmcmd $dst
|
||||
$doit $mvcmd $dsttmp $dst
|
||||
|
||||
|
||||
exit 0
|
||||
198
mozilla/build/autoconf/libIDL.m4
Normal file
198
mozilla/build/autoconf/libIDL.m4
Normal file
@@ -0,0 +1,198 @@
|
||||
# Configure paths for LIBIDL
|
||||
|
||||
dnl AM_PATH_LIBIDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
|
||||
dnl Test for LIBIDL, and define LIBIDL_CFLAGS and LIBIDL_LIBS
|
||||
dnl
|
||||
AC_DEFUN(AM_PATH_LIBIDL,
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the libIDL-config script
|
||||
dnl
|
||||
AC_ARG_WITH(libIDL-prefix,[ --with-libIDL-prefix=PFX
|
||||
Prefix where libIDL is installed (optional)],
|
||||
libIDL_config_prefix="$withval", libIDL_config_prefix="")
|
||||
AC_ARG_WITH(libIDL-exec-prefix,[ --with-libIDL-exec-prefix=PFX
|
||||
Exec prefix where libIDL is installed (optional)],
|
||||
libIDL_config_exec_prefix="$withval", libIDL_config_exec_prefix="")
|
||||
AC_ARG_ENABLE(libIDLtest, [ --disable-libIDLtest Do not try to compile and run a test libIDL program],
|
||||
, enable_libIDLtest=yes)
|
||||
|
||||
if test x$libIDL_config_exec_prefix != x ; then
|
||||
libIDL_config_args="$libIDL_config_args --exec-prefix=$libIDL_config_exec_prefix"
|
||||
if test x${LIBIDL_CONFIG+set} != xset ; then
|
||||
LIBIDL_CONFIG=$libIDL_config_exec_prefix/bin/libIDL-config
|
||||
fi
|
||||
fi
|
||||
if test x$libIDL_config_prefix != x ; then
|
||||
libIDL_config_args="$libIDL_config_args --prefix=$libIDL_config_prefix"
|
||||
if test x${LIBIDL_CONFIG+set} != xset ; then
|
||||
LIBIDL_CONFIG=$libIDL_config_prefix/bin/libIDL-config
|
||||
fi
|
||||
fi
|
||||
|
||||
AM_PATH_GLIB(1.2.0)
|
||||
|
||||
dnl Force a version check to keep upgraded versions from being overridden by the cached value.
|
||||
unset ac_cv_path_LIBIDL_CONFIG
|
||||
|
||||
AC_PATH_PROG(LIBIDL_CONFIG, libIDL-config, no)
|
||||
min_libIDL_version=ifelse([$1], ,0.6.0,$1)
|
||||
AC_MSG_CHECKING(for libIDL - version >= $min_libIDL_version)
|
||||
no_libIDL=""
|
||||
if test "$LIBIDL_CONFIG" = "no" ; then
|
||||
no_libIDL=yes
|
||||
else
|
||||
LIBIDL_CFLAGS=`$LIBIDL_CONFIG $libIDL_config_args --cflags`
|
||||
LIBIDL_LIBS=`$LIBIDL_CONFIG $libIDL_config_args --libs`
|
||||
# hack to allow us to keep using libIDL 0.6.3-0.6.7. Anyone may remove
|
||||
# this after we start requiring libIDL 0.6.8 or anything higher
|
||||
LIBIDL_CFLAGS="$GLIB_CFLAGS $LIBIDL_CFLAGS"
|
||||
LIBIDL_LIBS="$GLIB_LIBS $LIBIDL_LIBS"
|
||||
libIDL_config_major_version=`$LIBIDL_CONFIG $libIDL_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
libIDL_config_minor_version=`$LIBIDL_CONFIG $libIDL_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
libIDL_config_micro_version=`$LIBIDL_CONFIG $libIDL_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_libIDLtest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $LIBIDL_CFLAGS"
|
||||
LIBS="$LIBIDL_LIBS $LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed LIBIDL is sufficiently new.
|
||||
dnl
|
||||
rm -f conf.libIDLtest
|
||||
AC_TRY_RUN([
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <libIDL/IDL.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
int libIDL_major_version;
|
||||
int libIDL_minor_version;
|
||||
int libIDL_micro_version;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.libIDLtest");
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = g_strdup ("$min_libIDL_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_libIDL_version");
|
||||
exit(1);
|
||||
}
|
||||
tmp_version = g_strdup (IDL_get_libver_string ());
|
||||
if (sscanf(tmp_version, "%d.%d.%d",
|
||||
&libIDL_major_version,
|
||||
&libIDL_minor_version,
|
||||
&libIDL_micro_version) != 3) {
|
||||
printf("%s, bad version string\n", tmp_version);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((libIDL_major_version != $libIDL_config_major_version) ||
|
||||
(libIDL_minor_version != $libIDL_config_minor_version) ||
|
||||
(libIDL_micro_version != $libIDL_config_micro_version))
|
||||
{
|
||||
printf("\n*** 'libIDL-config --version' returned %d.%d.%d, but libIDL (%d.%d.%d)\n",
|
||||
$libIDL_config_major_version, $libIDL_config_minor_version, $libIDL_config_micro_version,
|
||||
libIDL_major_version, libIDL_minor_version, libIDL_micro_version);
|
||||
printf ("*** was found! If libIDL-config was correct, then it is best\n");
|
||||
printf ("*** to remove the old version of LIBIDL. You may also be able to fix the error\n");
|
||||
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|
||||
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
printf("*** required on your system.\n");
|
||||
printf("*** If libIDL-config was wrong, set the environment variable LIBIDL_CONFIG\n");
|
||||
printf("*** to point to the correct copy of libIDL-config, and remove the file config.cache\n");
|
||||
printf("*** before re-running configure\n");
|
||||
}
|
||||
else if ((libIDL_major_version != LIBIDL_MAJOR_VERSION) ||
|
||||
(libIDL_minor_version != LIBIDL_MINOR_VERSION) ||
|
||||
(libIDL_micro_version != LIBIDL_MICRO_VERSION))
|
||||
{
|
||||
printf("\n*** libIDL header files (version %d.%d.%d) do not match\n",
|
||||
LIBIDL_MAJOR_VERSION, LIBIDL_MINOR_VERSION, LIBIDL_MICRO_VERSION);
|
||||
printf("*** library (version %d.%d.%d)\n",
|
||||
libIDL_major_version, libIDL_minor_version, libIDL_micro_version);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((libIDL_major_version > major) ||
|
||||
((libIDL_major_version == major) && (libIDL_minor_version > minor)) ||
|
||||
((libIDL_major_version == major) && (libIDL_minor_version == minor) && (libIDL_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** An old version of libIDL (%d.%d.%d) was found.\n",
|
||||
libIDL_major_version, libIDL_minor_version, libIDL_micro_version);
|
||||
printf("*** You need at least libIDL version %d.%d.%d.\n",
|
||||
major, minor, micro);
|
||||
printf("***\n");
|
||||
printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
printf("*** probably means that the wrong copy of the libIDL-config shell script is\n");
|
||||
printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
printf("*** of libIDL, but you can also set the LIBIDL_CONFIG environment to point to the\n");
|
||||
printf("*** correct copy of libIDL-config. (In this case, you will have to\n");
|
||||
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||
printf("*** so that the correct libraries are found at run-time))\n");
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
],, no_libIDL=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_libIDL" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$LIBIDL_CONFIG" = "no" ; then
|
||||
echo "*** The libIDL-config script installed by libIDL could not be found"
|
||||
echo "*** If libIDL was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the LIBIDL_CONFIG environment variable to the"
|
||||
echo "*** full path to libIDL-config."
|
||||
else
|
||||
if test -f conf.libIDLtest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run libIDL test program, checking why..."
|
||||
CFLAGS="$CFLAGS $LIBIDL_CFLAGS"
|
||||
LIBS="$LIBS $LIBIDL_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <libIDL/IDL.h>
|
||||
], [ return IDL_get_libver_string ? 1 : 0; ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding libIDL or finding the wrong"
|
||||
echo "*** version of LIBIDL. If it is not finding libIDL, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means libIDL was incorrectly installed"
|
||||
echo "*** or that you have moved libIDL since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the libIDL-config script: $LIBIDL_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
LIBIDL_CFLAGS=""
|
||||
LIBIDL_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(LIBIDL_CFLAGS)
|
||||
AC_SUBST(LIBIDL_LIBS)
|
||||
rm -f conf.libIDLtest
|
||||
])
|
||||
280
mozilla/build/autoconf/make-makefile
Executable file
280
mozilla/build/autoconf/make-makefile
Executable file
@@ -0,0 +1,280 @@
|
||||
#! /usr/bin/env perl
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
# make-makefiles - Quickly create Makefiles for subdirectories.
|
||||
# Also, creates any needed subdirectories.
|
||||
#
|
||||
# usage: make-makefiles [ -t <topsrcdir> -d <depth> ] [ <subdir> | <subdir>/Makefile ] ...
|
||||
|
||||
# Send comments, improvements, bugs to Steve Lamm (slamm@netscape.com).
|
||||
|
||||
#$debug = 1;
|
||||
|
||||
# Determine various tree path variables
|
||||
#
|
||||
($topsrcdir, $depth, @makefiles) = parse_arguments(@ARGV);
|
||||
|
||||
$object_fullpath = `pwd`;
|
||||
chdir $depth;
|
||||
$object_root = `pwd`;
|
||||
chomp $object_fullpath;
|
||||
chomp $object_root;
|
||||
|
||||
# $source_subdir is the path from the object root to where
|
||||
# 'make-makefile' was called. For example, if make-makefile was
|
||||
# called from "mozilla/gfx/src", then $source_subdir would be
|
||||
# "gfx/src/".
|
||||
$source_subdir = "$object_fullpath/";
|
||||
my $quoted_object_root = quotemeta($object_root);
|
||||
$source_subdir =~ s|^$quoted_object_root/||;
|
||||
|
||||
# Prefix makefiles with $source_subdir so that paths
|
||||
# will be relative to the top of the object tree.
|
||||
#
|
||||
for $makefile (@makefiles) {
|
||||
$makefile = "$source_subdir$makefile";
|
||||
}
|
||||
|
||||
create_directories(@makefiles);
|
||||
|
||||
# Find the path to the source directory based on how 'make-makefile'
|
||||
# was invoked. The path is either relative to the object directory
|
||||
# or an absolute path.
|
||||
$given_srcdir = find_srcdir($topsrcdir, $depth);
|
||||
|
||||
if ($debug) {
|
||||
warn "object_fullpath = $object_fullpath\n";
|
||||
warn "object_root = $object_root\n";
|
||||
warn "source_subdir = $source_subdir\n";
|
||||
warn "makefiles = @makefiles\n";
|
||||
warn "given_srcdir = $given_srcdir\n";
|
||||
}
|
||||
|
||||
@unhandled = update_makefiles($given_srcdir, @makefiles);
|
||||
|
||||
run_config_status(@unhandled);
|
||||
|
||||
# end of Main
|
||||
############################################################
|
||||
|
||||
sub dirname {
|
||||
return $_[0] =~ /(.*)\/.*/ ? "$1" : '.';
|
||||
}
|
||||
|
||||
# find_depth: Pull the value of DEPTH out of a Makefile (or Makefile.in)
|
||||
sub find_depth {
|
||||
my $depth = '';
|
||||
open(MAKEFILE, "<$_[0]") || die "Unable to open $_[0]: $!\n";
|
||||
while (<MAKEFILE>) {
|
||||
next unless /^DEPTH\s*=\s*(\..*)/;
|
||||
$depth = $1;
|
||||
last;
|
||||
}
|
||||
close MAKEFILE;
|
||||
return $depth;
|
||||
}
|
||||
|
||||
sub parse_arguments {
|
||||
my @args = @_;
|
||||
my $depth = '';
|
||||
my $topsrcdir = '';
|
||||
my @makefiles = ();
|
||||
|
||||
while (1) {
|
||||
if ($args[0] eq '-d') {
|
||||
$depth = $args[1];
|
||||
shift @args;
|
||||
shift @args;
|
||||
} elsif ($args[0] eq '-t') {
|
||||
$topsrcdir = $args[1];
|
||||
shift @args;
|
||||
shift @args;
|
||||
} else {
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
if ($topsrcdir eq '') {
|
||||
$topsrcdir = $0; # Figure out topsrcdir based on program name.
|
||||
$topsrcdir =~ s|/?build/autoconf/.*$||;
|
||||
}
|
||||
if ($depth eq '') {
|
||||
# Use $(DEPTH) in the Makefile or Makefile.in to determine the depth
|
||||
if (-e "Makefile.in") {
|
||||
$depth = find_depth("Makefile.in");
|
||||
} elsif (-e "Makefile") {
|
||||
$depth = find_depth("Makefile");
|
||||
} elsif (-e "../Makefile") {
|
||||
$depth = "../".find_depth("../Makefile");
|
||||
$depth =~ s/\/\.$//;
|
||||
} else {
|
||||
warn "Unable to determine depth (e.g. ../..) to root of objdir tree.\n";
|
||||
die "No Makefile(.in) present. Try running with '-d <depth>'\n";
|
||||
}
|
||||
}
|
||||
|
||||
# Build the list of makefiles to generate
|
||||
#
|
||||
@makefiles = ();
|
||||
my $makefile;
|
||||
foreach $makefile (@args) {
|
||||
$makefile =~ s/\.in$//;
|
||||
$makefile =~ s/\/$//;
|
||||
$makefile =~ /Makefile$/ or $makefile .= "/Makefile";
|
||||
push @makefiles, "$makefile";
|
||||
}
|
||||
@makefiles = "Makefile" unless @args;
|
||||
|
||||
return ($topsrcdir, $depth, @makefiles);
|
||||
}
|
||||
|
||||
|
||||
# Create all the directories at once.
|
||||
# This can be much faster than calling mkdir() for each one.
|
||||
sub create_directories {
|
||||
my @makefiles = @_;
|
||||
my @dirs = ();
|
||||
my $ac_file;
|
||||
foreach $ac_file (@makefiles) {
|
||||
push @dirs, dirname($ac_file);
|
||||
}
|
||||
# Call mkdir with the directories sorted by subdir count (how many /'s)
|
||||
system "mkdir -p ". join(' ', @dirs) if @dirs;
|
||||
}
|
||||
|
||||
# Find the top of the source directory
|
||||
# (Assuming that the executable is in $top_srcdir/build/autoconf)
|
||||
sub find_srcdir {
|
||||
my ($ac_given_srcdir, $depth) = @_;
|
||||
|
||||
if ($debug) {
|
||||
print "ac_given_srcdir = $ac_given_srcdir\n";
|
||||
print "depth = $depth\n";
|
||||
}
|
||||
if ($ac_given_srcdir =~ /^\./ and $depth ne '.') {
|
||||
my $quoted_depth = quotemeta($depth);
|
||||
$ac_given_srcdir =~ s|^$quoted_depth/?||;
|
||||
}
|
||||
if ($debug) {
|
||||
print "ac_given_srcdir = $ac_given_srcdir\n";
|
||||
}
|
||||
$ac_given_srcdir = '.' if $ac_given_srcdir eq '';
|
||||
return $ac_given_srcdir;
|
||||
}
|
||||
|
||||
# Output the makefiles.
|
||||
#
|
||||
sub update_makefiles {
|
||||
my ($ac_given_srcdir, @makefiles) = @_;
|
||||
my @unhandled=();
|
||||
|
||||
my $ac_file;
|
||||
foreach $ac_file (@makefiles) {
|
||||
my $ac_file_in = "$ac_given_srcdir/${ac_file}.in";
|
||||
my $ac_dir = dirname($ac_file);
|
||||
my $ac_dots = '';
|
||||
my $ac_dir_suffix = '';
|
||||
my $srcdir = '.';
|
||||
my $top_srcdir = '.';
|
||||
|
||||
# Determine $srcdir and $top_srcdir
|
||||
#
|
||||
if ($ac_dir ne '.') {
|
||||
$ac_dir_suffix = "/$ac_dir";
|
||||
$ac_dir_suffix =~ s%^/\./%/%;
|
||||
$ac_dots = $ac_dir_suffix;
|
||||
$ac_dots =~ s%/[^/]*%../%g;
|
||||
}
|
||||
if ($ac_given_srcdir eq '.') {
|
||||
if ($ac_dots ne '') {
|
||||
$top_srcdir = $ac_dots;
|
||||
$top_srcdir =~ s%/$%%;
|
||||
}
|
||||
} elsif ($ac_given_srcdir =~ m%^/% or $ac_given_srcdir =~ m%^.:/%) {
|
||||
$srcdir = "$ac_given_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$ac_given_srcdir";
|
||||
} else {
|
||||
$srcdir = "$ac_dots$ac_given_srcdir$ac_dir_suffix";
|
||||
$top_srcdir = "$ac_dots$ac_given_srcdir";
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
print "ac_dir = $ac_dir\n";
|
||||
print "ac_file = $ac_file\n";
|
||||
print "ac_file_in = $ac_file_in\n";
|
||||
print "srcdir = $srcdir\n";
|
||||
print "top_srcdir = $top_srcdir\n";
|
||||
print "cwd = " . `pwd` . "\n";
|
||||
}
|
||||
|
||||
# Copy the file and make substitutions.
|
||||
# @srcdir@ -> value of $srcdir
|
||||
# @top_srcdir@ -> value of $top_srcdir
|
||||
#
|
||||
if (-e $ac_file) {
|
||||
next if -M _ < -M $ac_file_in; # Next if Makefile is up-to-date.
|
||||
warn "updating $ac_file\n";
|
||||
} else {
|
||||
warn "creating $ac_file\n";
|
||||
}
|
||||
|
||||
open INFILE, "<$ac_file_in" or do {
|
||||
warn "$0: Cannot read $ac_file_in: No such file or directory\n";
|
||||
next;
|
||||
};
|
||||
open OUTFILE, ">$ac_file" or do {
|
||||
warn "$0: Unable to create $ac_file\n";
|
||||
next;
|
||||
};
|
||||
|
||||
while (<INFILE>) {
|
||||
#if (/\@[_a-zA-Z]*\@.*\@[_a-zA-Z]*\@/) {
|
||||
# #warn "Two defines on a line:$ac_file:$.:$_";
|
||||
# push @unhandled, $ac_file;
|
||||
# last;
|
||||
#}
|
||||
|
||||
s/\@srcdir\@/$srcdir/g;
|
||||
s/\@top_srcdir\@/$top_srcdir/g;
|
||||
|
||||
if (/\@[_a-zA-Z]*\@/) {
|
||||
#warn "Unknown variable:$ac_file:$.:$_";
|
||||
push @unhandled, $ac_file;
|
||||
last;
|
||||
}
|
||||
print OUTFILE;
|
||||
}
|
||||
close INFILE;
|
||||
close OUTFILE;
|
||||
}
|
||||
return @unhandled;
|
||||
}
|
||||
|
||||
sub run_config_status {
|
||||
my @unhandled = @_;
|
||||
|
||||
# Run config.status with any unhandled files.
|
||||
#
|
||||
if (@unhandled) {
|
||||
$ENV{CONFIG_FILES}= join ' ', @unhandled;
|
||||
system "./config.status";
|
||||
}
|
||||
}
|
||||
85
mozilla/build/autoconf/match-dir.sh
Executable file
85
mozilla/build/autoconf/match-dir.sh
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
#
|
||||
# This script will match a dir with a set of dirs.
|
||||
#
|
||||
# Usage: match-dir.sh match [dir1 dir2 ... dirn]
|
||||
#
|
||||
# Send comments, improvements, bugs to ramiro@netscape.com
|
||||
#
|
||||
|
||||
if [ -f Makefile ]; then
|
||||
MAKEFILE="Makefile"
|
||||
else
|
||||
if [ -f Makefile.in ]; then
|
||||
MAKEFILE="Makefile.in"
|
||||
else
|
||||
echo
|
||||
echo "There ain't no 'Makefile' or 'Makefile.in' over here: $pwd, dude."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Use DEPTH in the Makefile.in to determine the depth
|
||||
depth=`grep -w DEPTH ${MAKEFILE} | grep "\.\." | awk -F"=" '{ print $2; }'`
|
||||
cwd=`pwd`
|
||||
|
||||
# Determine the depth count
|
||||
n=`echo $depth | tr '/' ' ' | wc -w`
|
||||
|
||||
cd $depth
|
||||
objdir=`pwd`
|
||||
|
||||
path=`echo $cwd | sed "s|^${objdir}/||"`
|
||||
|
||||
match=$path
|
||||
|
||||
for i in $*
|
||||
do
|
||||
# echo "Looking for $match in $i"
|
||||
|
||||
echo $i | grep -q -x $match
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "1"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# echo "Looking for $i in $match"
|
||||
|
||||
echo $match | grep -q $i
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "1"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
echo "0"
|
||||
|
||||
exit 0
|
||||
46
mozilla/build/autoconf/mozconfig-find
Executable file
46
mozilla/build/autoconf/mozconfig-find
Executable file
@@ -0,0 +1,46 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Stephen Lamm <slamm@netscape.com>
|
||||
#
|
||||
|
||||
# mozconfigfind - Loads options from .mozconfig onto configure's
|
||||
# command-line. The .mozconfig file is searched for in the
|
||||
# order:
|
||||
# if $MOZCONFIG is set, use that.
|
||||
# Otherwise, use $TOPSRCDIR/.mozconfig
|
||||
# Otherwise, use $HOME/.mozconfig
|
||||
#
|
||||
topsrcdir=$1
|
||||
|
||||
for _config in $MOZCONFIG \
|
||||
$MOZ_MYCONFIG \
|
||||
$topsrcdir/.mozconfig \
|
||||
$topsrcdir/mozconfig \
|
||||
$topsrcdir/mozconfig.sh \
|
||||
$topsrcdir/myconfig.sh \
|
||||
$HOME/.mozconfig \
|
||||
$HOME/.mozconfig.sh \
|
||||
$HOME/.mozmyconfig.sh
|
||||
do
|
||||
if test -f $_config; then
|
||||
echo $_config;
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
94
mozilla/build/autoconf/mozconfig2client-mk
Executable file
94
mozilla/build/autoconf/mozconfig2client-mk
Executable file
@@ -0,0 +1,94 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Stephen Lamm <slamm@netscape.com>
|
||||
#
|
||||
|
||||
# mozconfig2client-mk - Translates .mozconfig into options for client.mk.
|
||||
# Prints defines to stdout.
|
||||
#
|
||||
# See mozconfig2configure for more details
|
||||
|
||||
print_header() {
|
||||
_mozconfig=${MOZCONFIG:-$HOME/.mozconfig}
|
||||
cat >> $tmp_file <<EOF
|
||||
# gmake
|
||||
# This file is automatically generated for client.mk.
|
||||
# Do not edit. Edit $_mozconfig instead.
|
||||
# To create a new .mozconfig file, you can visit,
|
||||
# http://webtools.mozilla.org/build/config.cgi
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
ac_add_options() {
|
||||
echo "# $* is used by configure (not client.mk)" >> $tmp_file
|
||||
}
|
||||
|
||||
mk_add_options() {
|
||||
for _opt
|
||||
do
|
||||
# Escape shell characters, space, tab, dollar, quote, backslash,
|
||||
# and substitute '@<word>@' with '$(<word>)'.
|
||||
_opt=`echo "$_opt" | sed -e 's/\([\"\\]\)/\\\1/g; s/@\([^@]*\)@/\$(\1)/g;'`
|
||||
echo $_opt;
|
||||
opts="${opts:+$opts^}$_opt";
|
||||
done >> $tmp_file
|
||||
}
|
||||
|
||||
mk_echo_options() {
|
||||
echo "Adding client.mk options from $MOZCONFIG:"
|
||||
IFS=^
|
||||
for _opt in $opts; do
|
||||
echo " $_opt"
|
||||
done
|
||||
}
|
||||
|
||||
# Main
|
||||
#--------------------------------------------------
|
||||
|
||||
scriptdir=`dirname $0`
|
||||
topsrcdir=$1
|
||||
out_file=$2
|
||||
tmp_file="$out_file-tmp$$"
|
||||
opts=""
|
||||
|
||||
trap "rm -f $tmp_file; exit 1" 1 2 15
|
||||
|
||||
MOZCONFIG=`$scriptdir/mozconfig-find $topsrcdir`
|
||||
|
||||
print_header > $tmp_file
|
||||
|
||||
# If the path changes, configure should be rerun
|
||||
echo "# PATH=$PATH" >> $tmp_file
|
||||
|
||||
if [ "$MOZCONFIG" ]
|
||||
then
|
||||
. $MOZCONFIG
|
||||
fi
|
||||
|
||||
if [ "$opts" ]; then
|
||||
mk_echo_options
|
||||
fi
|
||||
|
||||
if test -f $out_file && cmp -s $tmp_file $out_file; then
|
||||
rm $tmp_file
|
||||
else
|
||||
mv -f $tmp_file $out_file
|
||||
fi
|
||||
70
mozilla/build/autoconf/mozconfig2configurator
Executable file
70
mozilla/build/autoconf/mozconfig2configurator
Executable file
@@ -0,0 +1,70 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Stephen Lamm (slamm@netscape.com)
|
||||
#
|
||||
|
||||
# mozconfig2configurator - Translates .mozconfig into options for
|
||||
# the online configurator,
|
||||
#
|
||||
# http://webtools.mozilla.org/build/config.cgi
|
||||
#
|
||||
# This is called by the 'webconfig' target of mozilla/client.mk
|
||||
#
|
||||
|
||||
ac_add_options() {
|
||||
for _opt
|
||||
do
|
||||
# Escape special url characters
|
||||
_opt=`echo $_opt | sed -e 's/%/%25/g;s/ /%20/g;s/&/%26/g;'`
|
||||
case "$_opt" in
|
||||
--*-*= ) url="$url$_opt&" ;;
|
||||
--*-* ) url="$url$_opt=yes&" ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
mk_add_options() {
|
||||
for _opt
|
||||
do
|
||||
# Escape special url characters
|
||||
# Escape special url characters
|
||||
_opt=`echo $_opt | sed -e 's/%/%25/g;s/ /%20/g;s/&/%26/g;'`
|
||||
url="$url$_opt&"
|
||||
done
|
||||
}
|
||||
|
||||
#
|
||||
# main
|
||||
#
|
||||
|
||||
# find-mozconfig.sh
|
||||
# In params: $MOZCONFIG $HOME ($MOZ_MYCONFIG)
|
||||
scriptdir=`dirname $0`
|
||||
MOZCONFIG=`$scriptdir/mozconfig-find $topsrcdir`
|
||||
|
||||
if [ "$MOZCONFIG" ]
|
||||
then
|
||||
url="http://webtools.mozilla.org/build/config.cgi?"
|
||||
. $MOZCONFIG
|
||||
|
||||
# Drop the last character of $url
|
||||
echo `expr "$url" : "\(.*\)."`
|
||||
fi
|
||||
|
||||
99
mozilla/build/autoconf/mozconfig2configure
Executable file
99
mozilla/build/autoconf/mozconfig2configure
Executable file
@@ -0,0 +1,99 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Stephen Lamm <slamm@netscape.com>
|
||||
#
|
||||
|
||||
# mozconfig2configure - Loads options from .mozconfig onto configure's
|
||||
# command-line. See find-mozconfig.sh for how the config file is
|
||||
# found
|
||||
#
|
||||
# The options from .mozconfig are inserted into the command-line
|
||||
# before the real command-line options. This way the real options
|
||||
# will override any .mozconfig options.
|
||||
#
|
||||
# .mozconfig is a shell script. To add an option to configure's
|
||||
# command-line use the pre-defined function, ac_add_options,
|
||||
#
|
||||
# ac_add_options <configure-option> [<configure-option> ... ]
|
||||
#
|
||||
# For example,
|
||||
#
|
||||
# ac_add_options --with-pthreads --enable-debug
|
||||
#
|
||||
# ac_add_options can be called multiple times in .mozconfig.
|
||||
# Each call adds more options to configure's command-line.
|
||||
|
||||
# Note: $_AUTOCONF_TOOLS_DIR must be defined in the script that includes this.
|
||||
|
||||
ac_add_options() {
|
||||
for _opt
|
||||
do
|
||||
# Escape shell characters, space, tab, dollar, quote, backslash.
|
||||
_opt=`echo $_opt | sed -e 's/\([\ \ \$\"\\]\)/\\\\\1/g;s/@\([^@]*\)@/\$\1/g;'`
|
||||
_opt=`echo $_opt | sed -e 's/@\([^@]*\)@/\$(\1)/g'`
|
||||
|
||||
# Avoid adding duplicates
|
||||
case "$ac_options" in
|
||||
*"$_opt"* ) ;;
|
||||
* ) mozconfig_ac_options="$mozconfig_ac_options $_opt" ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
mk_add_options() {
|
||||
# These options are for client.mk
|
||||
# configure can safely ignore them.
|
||||
:
|
||||
}
|
||||
|
||||
ac_echo_options() {
|
||||
echo "Adding configure options from $MOZCONFIG:"
|
||||
eval "set -- $mozconfig_ac_options"
|
||||
for _opt
|
||||
do
|
||||
echo " $_opt"
|
||||
done
|
||||
}
|
||||
|
||||
# Main
|
||||
#--------------------------------------------------
|
||||
_topsrcdir=`dirname $0`
|
||||
ac_options=
|
||||
mozconfig_ac_options=
|
||||
|
||||
# Save the real command-line options
|
||||
for _opt
|
||||
do
|
||||
# Escape shell characters, space, tab, dollar, quote, backslash.
|
||||
_opt=`echo $_opt | sed -e 's/\([\ \ \$\"\\]\)/\\\\\1/g;'`
|
||||
ac_options="$ac_options \"$_opt\""
|
||||
done
|
||||
|
||||
MOZCONFIG=`$_AUTOCONF_TOOLS_DIR/mozconfig-find $_topsrcdir`
|
||||
if [ "$MOZCONFIG" ]; then
|
||||
. $MOZCONFIG
|
||||
fi
|
||||
|
||||
if [ "$mozconfig_ac_options" ]; then
|
||||
ac_echo_options 1>&2
|
||||
fi
|
||||
|
||||
eval "set -- $mozconfig_ac_options $ac_options"
|
||||
|
||||
67
mozilla/build/autoconf/nspr.m4
Normal file
67
mozilla/build/autoconf/nspr.m4
Normal file
@@ -0,0 +1,67 @@
|
||||
# -*- tab-width: 4; -*-
|
||||
# Configure paths for NSPR
|
||||
# Public domain - Chris Seawood <cls@seawood.org> 2001-04-05
|
||||
# Based upon gtk.m4 (also PD) by Owen Taylor
|
||||
|
||||
dnl AM_PATH_NSPR([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for NSPR, and define NSPR_CFLAGS and NSPR_LIBS
|
||||
AC_DEFUN(AM_PATH_NSPR,
|
||||
[dnl
|
||||
|
||||
AC_ARG_WITH(nspr-prefix,
|
||||
[ --with-nspr-prefix=PFX Prefix where NSPR is installed],
|
||||
nspr_config_prefix="$withval",
|
||||
nspr_config_prefix="")
|
||||
|
||||
AC_ARG_WITH(nspr-exec-prefix,
|
||||
[ --with-nspr-exec-prefix=PFX
|
||||
Exec prefix where NSPR is installed],
|
||||
nspr_config_exec_prefix="$withval",
|
||||
nspr_config_exec_prefix="")
|
||||
|
||||
if test -n "$nspr_config_exec_prefix"; then
|
||||
nspr_config_args="$nspr_config_args --exec-prefix=$nspr_config_exec_prefix"
|
||||
if test -z "$NSPR_CONFIG"; then
|
||||
NSPR_CONFIG=$nspr_config_exec_prefix/bin/nspr-config
|
||||
fi
|
||||
fi
|
||||
if test -n "$nspr_config_prefix"; then
|
||||
nspr_config_args="$nspr_config_args --prefix=$nspr_config_prefix"
|
||||
if test -z "$NSPR_CONFIG"; then
|
||||
NSPR_CONFIG=$nspr_config_prefix/bin/nspr-config
|
||||
fi
|
||||
fi
|
||||
|
||||
unset ac_cv_path_NSPR_CONFIG
|
||||
AC_PATH_PROG(NSPR_CONFIG, nspr-config, no)
|
||||
min_nspr_version=ifelse([$1], ,4.0.0,$1)
|
||||
AC_MSG_CHECKING(for NSPR - version >= $min_nspr_version (skipping))
|
||||
|
||||
no_nspr=""
|
||||
if test "$NSPR_CONFIG" = "no"; then
|
||||
no_nspr="yes"
|
||||
else
|
||||
NSPR_CFLAGS=`$NSPR_CONFIG $nspr_config_args --cflags`
|
||||
NSPR_LIBS=`$NSPR_CONFIG $nspr_config_args --libs`
|
||||
|
||||
dnl Skip version check for now
|
||||
nspr_config_major_version=`$NSPR_CONFIG $nspr_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
nspr_config_minor_version=`$NSPR_CONFIG $nspr_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
nspr_config_micro_version=`$NSPR_CONFIG $nspr_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
fi
|
||||
|
||||
if test -z "$no_nspr"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
|
||||
AC_SUBST(NSPR_CFLAGS)
|
||||
AC_SUBST(NSPR_LIBS)
|
||||
|
||||
])
|
||||
102
mozilla/build/autoconf/update-makefile.sh
Executable file
102
mozilla/build/autoconf/update-makefile.sh
Executable file
@@ -0,0 +1,102 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
#
|
||||
# This script will generate a single Makefile from a Makefile.in using
|
||||
# the config.status script.
|
||||
#
|
||||
# The config.status script is generated the first time you run
|
||||
# ./configure.
|
||||
#
|
||||
#
|
||||
# Usage: update-makefile.sh
|
||||
#
|
||||
# Send comments, improvements, bugs to ramiro@netscape.com
|
||||
#
|
||||
|
||||
update_makefile_usage() {
|
||||
_progname=`expr //$0 : '.*/\(.*\)'`
|
||||
cat <<END_USAGE 2>&1
|
||||
|
||||
Usage: $_progname [-h -u] [<keyword>]
|
||||
-d <dir> Subdir to update
|
||||
-h Print usage
|
||||
END_USAGE
|
||||
}
|
||||
|
||||
# Parse the command-line options
|
||||
#
|
||||
subdir=
|
||||
while getopts d:h OPT; do
|
||||
case $OPT in
|
||||
d) # Make sure "subdir" has exactly one ending slash
|
||||
subdir=`echo $OPTARG | sed 's/\/$//;'`"/" ;;
|
||||
\?|h) update_makefile_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
# find_depth: Pull the value of DEPTH out of Makefile (or Makefile.in)
|
||||
find_depth() {
|
||||
egrep '^DEPTH[ ]*=[ ]*\.' $1 | awk -F= '{ print $2; }'
|
||||
}
|
||||
|
||||
# The Makefile to create
|
||||
target_makefile=`pwd`"/${subdir}Makefile"
|
||||
|
||||
# Use $(DEPTH) in the Makefile or Makefile.in to determine the depth
|
||||
if [ -f Makefile.in ]
|
||||
then
|
||||
depth=`find_depth Makefile.in`
|
||||
elif [ -f Makefile ]
|
||||
then
|
||||
depth=`find_depth Makefile`
|
||||
elif [ -f ../Makefile ]
|
||||
then
|
||||
depth="../"`find_depth Makefile`
|
||||
else
|
||||
echo
|
||||
echo "There ain't no 'Makefile' or 'Makefile.in' over here: $pwd"
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
|
||||
# 'cd' to the root of the tree to run "config.status" there
|
||||
cd $depth
|
||||
|
||||
# Strip the tree root off the Makefile's path
|
||||
#
|
||||
root_path=`pwd`
|
||||
target_makefile=`expr $target_makefile : $root_path'/\(.*\)'`
|
||||
|
||||
# Make sure config.status exists
|
||||
#
|
||||
if [ -f config.status ]
|
||||
then
|
||||
CONFIG_FILES=$target_makefile ./config.status
|
||||
else
|
||||
echo
|
||||
echo "There ain't no 'config.status' over here: $pwd"
|
||||
echo
|
||||
fi
|
||||
7
mozilla/build/bloaturls.txt
Normal file
7
mozilla/build/bloaturls.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
http://www.mozilla.org
|
||||
ftp://ftp.netscape.com/Welcome
|
||||
http://www.mozilla.org
|
||||
resource:///res/samples/test2.html
|
||||
resource:///res/samples/test8.html
|
||||
resource:///res/samples/test6.html
|
||||
resource:///res/samples/test8.html
|
||||
292
mozilla/build/file_migrate.pl
Normal file
292
mozilla/build/file_migrate.pl
Normal file
@@ -0,0 +1,292 @@
|
||||
#!perl -w
|
||||
|
||||
# This script copies modified files from a source CVS tree to a destination
|
||||
# tree. Modified files are detected by comparing their modification dates
|
||||
# with the CVS Entries file.
|
||||
#
|
||||
# Modified files are copied in their entirety to the destination tree
|
||||
# (no diffing is done). Files are only copied of the CVS version of the
|
||||
# file is the same in both trees. If the destination file is modified
|
||||
# already, it is backed up and replaced.
|
||||
#
|
||||
# To use this on your tree/platform, do the following:
|
||||
#
|
||||
# 1. Fix the !perl line, if necessary.
|
||||
# 2. Fix $dirsep to be the directory separator on your platform.
|
||||
# 3. Uncomment the appropriate $dst_linebreaks file specify what linebreaks
|
||||
# you want for the copied files. This variable defines the *destination* linebreaks
|
||||
# that you want your changes to be converted to.
|
||||
# For example, if you have a linux volume
|
||||
# mounted (via SAMBA perhaps) to your windows box where you've made changes to
|
||||
# source files, you'd want $dst_linebreaks to be set for unix. This ensures that
|
||||
# linebreaks are converted to the appropriate OS linebreak scheme for your *target* tree.
|
||||
# 4. Set $src_tree and $dest_tree to point to the directories you want
|
||||
# to sync up. These don't have to point to the root of the tree,
|
||||
# but should be equivalent directories in the two trees.
|
||||
#
|
||||
# First version:
|
||||
# Simon Fraser <sfraser@netscape.com>
|
||||
|
||||
use File::stat;
|
||||
use Time::Local;
|
||||
|
||||
# change for your platform ('\' == windows, ':' == mac, '/' == unix)
|
||||
$dirsep = "\\";
|
||||
|
||||
# Set this to the native OS of the *destination* tree
|
||||
# $dst_linebreaks = pack("cc", 13); # Mac
|
||||
#$dst_linebreaks = pack("cc", 13, 10); # DOS
|
||||
$dst_linebreaks = pack("cc", 10); # UNIX
|
||||
|
||||
#change for your src and dest trees
|
||||
$src_tree = "x:\\mozilla\\xpfe\\components";
|
||||
$dest_tree = "h:\\builds\\mozilla\\xpfe\\components";
|
||||
|
||||
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
#// _copyFile. Copy file from src to dest, converting linebreaks if necessary
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
sub _copyFile($;$;$;$)
|
||||
{
|
||||
my($srcdir, $destdir, $file, $backup) = @_;
|
||||
|
||||
my($srcfile) = $srcdir.$dirsep.$file;
|
||||
my($dstfile) = $destdir.$dirsep.$file;
|
||||
|
||||
if ($backup)
|
||||
{
|
||||
my($counter) = 0;
|
||||
|
||||
while (-f $dstfile."-".$counter)
|
||||
{
|
||||
$counter ++;
|
||||
}
|
||||
|
||||
rename($dstfile, $dstfile."-".$counter) or die "Failed to rename file\n";
|
||||
}
|
||||
|
||||
print "Copying $file over to dest\n";
|
||||
|
||||
my($newdest) = $dstfile."_temp";
|
||||
|
||||
open(SRCFILE, "< $srcfile") or die "Can't open source file $srcfile\n";
|
||||
open(NEWDEST, "> $newdest") or die "Can't open dest file $newdest\n";
|
||||
|
||||
while (<SRCFILE>)
|
||||
{
|
||||
chomp($_);
|
||||
print NEWDEST $_.$dst_linebreaks;
|
||||
}
|
||||
|
||||
close(SRCFILE);
|
||||
close(NEWDEST);
|
||||
|
||||
if (!$backup) {
|
||||
unlink($dstfile) or die "Failed to remove $dstfile\n";
|
||||
}
|
||||
rename($newdest, $dstfile) or die "Failed to rename $newdest\n";
|
||||
}
|
||||
|
||||
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
#// _readCVSInfo. Suck in the CVS info from the Entries file
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
|
||||
sub _readCVSInfo($)
|
||||
{
|
||||
my($cvsDir) = @_;
|
||||
|
||||
my($entries_file_name) = $cvsDir.$dirsep."CVS".$dirsep."Entries";
|
||||
|
||||
# print "Reading $entries_file_name\n";
|
||||
open(ENTRIES, $entries_file_name) || die "Could not open file $entries_file_name";
|
||||
|
||||
my(%cvs_entries);
|
||||
|
||||
# Read in the path if available
|
||||
while (defined ($line = <ENTRIES>))
|
||||
{
|
||||
chomp($line);
|
||||
|
||||
#parse out the line. Format is:
|
||||
# files: /filename/version/date/options/tag
|
||||
# dirs: D/dirname////
|
||||
# dir? D
|
||||
# because we might be reading an entries file from another platform, with
|
||||
# different linebreaks, be anal about cleaning up $line.
|
||||
|
||||
if ($line =~ /^?\/(.+)\/(.+)\/(.+)\/(.*)\/(.*)?$/)
|
||||
{
|
||||
my($filename) = $1;
|
||||
my($version) = $2;
|
||||
my($date) = $3;
|
||||
my($options) = $4;
|
||||
my($tag) = $5;
|
||||
|
||||
my(%cvs_file) = (
|
||||
"version" => $version,
|
||||
"date" => $date,
|
||||
"options" => $options,
|
||||
"tag" => $tag
|
||||
);
|
||||
|
||||
# print $filename." ".$version." ".$date." ".$options." ".$tag."\n";
|
||||
$cvs_entries{$filename} = \%cvs_file;
|
||||
}
|
||||
}
|
||||
|
||||
close ENTRIES;
|
||||
|
||||
return %cvs_entries;
|
||||
}
|
||||
|
||||
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
#// _fileIsModified. compare mod date with CVS entries to see if a file is modified
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
sub _fileIsModified($;$;$)
|
||||
{
|
||||
my($entries, $dir, $file) = @_;
|
||||
|
||||
my($abs_file) = $dir.$dirsep.$file;
|
||||
|
||||
if (exists($entries->{$file}))
|
||||
{
|
||||
my($date) = $entries->{$file}->{"date"};
|
||||
|
||||
# stat the file to get its date
|
||||
my($file_data) = stat($abs_file) || die "Could not stat $file\n";
|
||||
my($mod_string) = scalar(gmtime($file_data->mtime));
|
||||
|
||||
return ($mod_string ne $date);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
#// _processFile. args: entries hash, dir, filename
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
|
||||
sub _processFile($;$;$;$;$)
|
||||
{
|
||||
my($src_entries, $dest_entries, $srcdir, $destdir, $file) = @_;
|
||||
|
||||
my($abs_file) = $srcdir.$dirsep.$file;
|
||||
|
||||
if (exists($src_entries->{$file}))
|
||||
{
|
||||
my($file_entry) = $src_entries->{$file};
|
||||
my($version) = $file_entry->{"version"};
|
||||
|
||||
if (_fileIsModified($src_entries, $srcdir, $file))
|
||||
{
|
||||
my($rel_file) = $abs_file;
|
||||
$rel_file =~ s/^$src_tree//;
|
||||
|
||||
# print "¥ÊFile $rel_file is modified\n";
|
||||
|
||||
# check CVS version in dest
|
||||
my($dest_entry) = $dest_entries->{$file};
|
||||
if ($dest_entry)
|
||||
{
|
||||
my($dest_version) = $dest_entry->{"version"};
|
||||
my($versions_match) = ($version == $dest_version);
|
||||
my($dest_modified) = _fileIsModified($dest_entries, $destdir, $file);
|
||||
|
||||
if ($versions_match)
|
||||
{
|
||||
# ok, we can copy the file over now, backing up dest if it is modified
|
||||
_copyFile($srcdir, $destdir, $file, $dest_modified);
|
||||
}
|
||||
else
|
||||
{
|
||||
print "File $rel_file is version $version in the src tree, but $dest_version in dest. This file will not be copied.\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print "No CVS entry found in destination tree for $rel_file\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print "No entry for file $file\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
#// _traverseDir. Traverse one dir, recurse for each found dir.
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
|
||||
sub _traverseDir($;$)
|
||||
{
|
||||
my($srcdir, $destdir) = @_;
|
||||
|
||||
opendir(DIR, $srcdir) or die "Cannot open dir $srcdir\n";
|
||||
my @files = readdir(DIR);
|
||||
closedir DIR;
|
||||
|
||||
# suck in the CVS info for this dir, if there is a CVS dir
|
||||
unless (-e $srcdir.$dirsep."CVS".$dirsep."Entries" && -e $destdir.$dirsep."CVS".$dirsep."Entries") {
|
||||
print "$srcdir is not a CVS directory in both source and dest\n";
|
||||
return;
|
||||
}
|
||||
|
||||
print " Doing $srcdir\n";
|
||||
|
||||
my(%src_entries) = _readCVSInfo($srcdir);
|
||||
my(%dest_entries) = _readCVSInfo($destdir);
|
||||
|
||||
my $file;
|
||||
foreach $file (@files)
|
||||
{
|
||||
my $filepath = $srcdir.$dirsep.$file;
|
||||
|
||||
if (-d $filepath)
|
||||
{
|
||||
if ($file ne "CVS") # ignore 'CVS' dirs
|
||||
{
|
||||
# print "Going into $filepath\n";
|
||||
_traverseDir($filepath, $destdir.$dirsep.$file);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
# process this file
|
||||
_processFile(\%src_entries, \%dest_entries, $srcdir, $destdir, $file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
#// MigrateChanges
|
||||
#//--------------------------------------------------------------------------------------------------
|
||||
sub MigrateChanges($;$)
|
||||
{
|
||||
my($srcdir, $destdir) = @_;
|
||||
|
||||
# Check that src and dest exist
|
||||
if (! -d $srcdir) {
|
||||
die "Source directory $srcdir does not exist\n";
|
||||
}
|
||||
|
||||
if (! -d $destdir) {
|
||||
die "Dest directory $destdir does not exist\n";
|
||||
}
|
||||
|
||||
print "---------------------------------------------------------\n";
|
||||
print "Migrating changes from\n $srcdir\nto\n $destdir\n";
|
||||
print "---------------------------------------------------------\n";
|
||||
_traverseDir($srcdir, $destdir);
|
||||
print "---------------------------------------------------------\n";
|
||||
}
|
||||
|
||||
|
||||
MigrateChanges($src_tree, $dest_tree);
|
||||
|
||||
29
mozilla/build/genrc.sh
Executable file
29
mozilla/build/genrc.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
|
||||
DATATYPE="$1"
|
||||
INFILE="$2"
|
||||
|
||||
echo "${DATATYPE} RCDATA"
|
||||
sed 's/"/""/g' ${INFILE} | awk 'BEGIN { printf("BEGIN\n") } { printf("\"%s\\r\\n\",\n", $0) } END { printf("\"\\0\"\nEND\n") }'
|
||||
|
||||
exit 0
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user