Compare commits
611 Commits
v2.9.5
...
python-ite
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cd72f2a55b | ||
![]() |
d18a95fda6 | ||
![]() |
c7a00a4aba | ||
![]() |
7bc3317eeb | ||
![]() |
8028bb7f82 | ||
![]() |
6fc412c4e2 | ||
![]() |
0749cb1553 | ||
![]() |
f198581a09 | ||
![]() |
4c9b193b45 | ||
![]() |
130be78dbb | ||
![]() |
29d6db30ba | ||
![]() |
2e6001f1ed | ||
![]() |
9c4112cda7 | ||
![]() |
04dbcdffc0 | ||
![]() |
0146a38faa | ||
![]() |
145ceba124 | ||
![]() |
90ea691b75 | ||
![]() |
51cdcfca82 | ||
![]() |
ae04663aa9 | ||
![]() |
9f8073ab77 | ||
![]() |
bfa199be79 | ||
![]() |
36911710fd | ||
![]() |
267ac71d4f | ||
![]() |
f6ba274134 | ||
![]() |
cd825ac735 | ||
![]() |
1007af9506 | ||
![]() |
b67953c70c | ||
![]() |
1a67e245ac | ||
![]() |
648de4410c | ||
![]() |
b658fca4a7 | ||
![]() |
277732e384 | ||
![]() |
f13413c26a | ||
![]() |
c9418ffca3 | ||
![]() |
ddb3bf05d8 | ||
![]() |
8b463e6b14 | ||
![]() |
bc8eaf6588 | ||
![]() |
b0b8f40791 | ||
![]() |
aa37686bbd | ||
![]() |
4721a3747e | ||
![]() |
e5cb69db5d | ||
![]() |
414b591358 | ||
![]() |
ccd4945504 | ||
![]() |
59b19bac70 | ||
![]() |
14b8a77b78 | ||
![]() |
a71849db3f | ||
![]() |
a2eb3325ce | ||
![]() |
b9df78b9c6 | ||
![]() |
9a3c1ccd72 | ||
![]() |
68116da5ad | ||
![]() |
68153812f7 | ||
![]() |
bb1062ae2a | ||
![]() |
bdb18828e3 | ||
![]() |
a903f16c68 | ||
![]() |
5feeb717a0 | ||
![]() |
703316ace6 | ||
![]() |
88afa4afa2 | ||
![]() |
bf269d2e03 | ||
![]() |
755932c3bc | ||
![]() |
4c406bce17 | ||
![]() |
3a87dedbb5 | ||
![]() |
731fd33be2 | ||
![]() |
ffc47e8439 | ||
![]() |
cc9d6042fd | ||
![]() |
012b9c478e | ||
![]() |
5d35ecfaa9 | ||
![]() |
21bf0ae998 | ||
![]() |
9d0ea7af4b | ||
![]() |
08fd4f2dd7 | ||
![]() |
8f0d6e85fd | ||
![]() |
7dea09c371 | ||
![]() |
ce5653d75c | ||
![]() |
36b84c9af3 | ||
![]() |
d13046614e | ||
![]() |
53e30995d6 | ||
![]() |
0c4e343b46 | ||
![]() |
e6394cafe2 | ||
![]() |
fabc5bf4b7 | ||
![]() |
d601335aa6 | ||
![]() |
d6dacbe955 | ||
![]() |
616c669d3b | ||
![]() |
d52cc1a1bd | ||
![]() |
43a2f43090 | ||
![]() |
b3369a4bc4 | ||
![]() |
b5b547abb6 | ||
![]() |
4e775df156 | ||
![]() |
bf0ff98385 | ||
![]() |
66412e4997 | ||
![]() |
77c1edbe13 | ||
![]() |
46c32952b0 | ||
![]() |
41719bd4a8 | ||
![]() |
9629ca3fd9 | ||
![]() |
a3ab5edc59 | ||
![]() |
8fbcddd2cd | ||
![]() |
73d63ca3da | ||
![]() |
721a9965aa | ||
![]() |
4f77f046d0 | ||
![]() |
0b95c1c444 | ||
![]() |
41c0c345cd | ||
![]() |
c8f6d2c538 | ||
![]() |
b2d2187b20 | ||
![]() |
b8894a468d | ||
![]() |
1c30e0c124 | ||
![]() |
4dc600a63c | ||
![]() |
13bfd060b6 | ||
![]() |
1370a49742 | ||
![]() |
ab6bf4234c | ||
![]() |
5224c275e8 | ||
![]() |
272b3d2f82 | ||
![]() |
2528a78593 | ||
![]() |
2917a83d7b | ||
![]() |
77e9417c7b | ||
![]() |
e8456beadc | ||
![]() |
d63a33b6dc | ||
![]() |
bdc814a4a4 | ||
![]() |
ce40e5a111 | ||
![]() |
61c9ad08bf | ||
![]() |
bca0ad8e1e | ||
![]() |
6ec7bfad30 | ||
![]() |
0e76283c9a | ||
![]() |
78a72a6c1e | ||
![]() |
4a95b07ae7 | ||
![]() |
154ea98deb | ||
![]() |
be252e271f | ||
![]() |
e2328e7a91 | ||
![]() |
942b92c796 | ||
![]() |
3bd2143d9a | ||
![]() |
93cfa353e7 | ||
![]() |
2cbe758c80 | ||
![]() |
72c6834cc5 | ||
![]() |
ac06b74b18 | ||
![]() |
1fd94e79b9 | ||
![]() |
bb3cb269c2 | ||
![]() |
715a520c0e | ||
![]() |
78d14a2b1e | ||
![]() |
3d10b9f3e2 | ||
![]() |
f97f1a08ae | ||
![]() |
13e9713b72 | ||
![]() |
bf9276fc5c | ||
![]() |
fe86c4900f | ||
![]() |
f45487e92c | ||
![]() |
bca972bdc3 | ||
![]() |
a8abba84bd | ||
![]() |
2e2f4662f3 | ||
![]() |
0c87c49146 | ||
![]() |
6c8d9c2194 | ||
![]() |
62d52d55b2 | ||
![]() |
3598966069 | ||
![]() |
ec6f5b011a | ||
![]() |
9d4a1a3b4f | ||
![]() |
9978ebd853 | ||
![]() |
18eaccb840 | ||
![]() |
e63ec01089 | ||
![]() |
e0fb3d537d | ||
![]() |
19d4356484 | ||
![]() |
be1e6bde65 | ||
![]() |
f113008c7f | ||
![]() |
5e240eb259 | ||
![]() |
7101b7b864 | ||
![]() |
98aa62f637 | ||
![]() |
798db7368a | ||
![]() |
4cf61ccedb | ||
![]() |
7f50ee6fd2 | ||
![]() |
1544a5d6cb | ||
![]() |
3284502645 | ||
![]() |
4cc03aba75 | ||
![]() |
286bbc6bde | ||
![]() |
d1244d7231 | ||
![]() |
50219a63ad | ||
![]() |
806c75f051 | ||
![]() |
ee621d2435 | ||
![]() |
340811da6e | ||
![]() |
4b40597c76 | ||
![]() |
9a789bc9e7 | ||
![]() |
4886cc8258 | ||
![]() |
82277a80ea | ||
![]() |
22064278df | ||
![]() |
932bfa3482 | ||
![]() |
5de5d6d00b | ||
![]() |
aab55d8cff | ||
![]() |
73c9321361 | ||
![]() |
25288120be | ||
![]() |
d99d951f7f | ||
![]() |
00e15828a1 | ||
![]() |
ad926e9b07 | ||
![]() |
059cbcd406 | ||
![]() |
dcdb11a78b | ||
![]() |
aef9e3922e | ||
![]() |
ce6fef3d0a | ||
![]() |
4057b7dd58 | ||
![]() |
d1725e3f44 | ||
![]() |
42da8fe3ef | ||
![]() |
a01bd83c64 | ||
![]() |
6a0240aa18 | ||
![]() |
179747a7bc | ||
![]() |
94186f7888 | ||
![]() |
ac5771377e | ||
![]() |
863dc2e841 | ||
![]() |
59b9ee3417 | ||
![]() |
3285934703 | ||
![]() |
c7d1102c61 | ||
![]() |
6e3f05fcc7 | ||
![]() |
d8286a63ec | ||
![]() |
9854b100fb | ||
![]() |
ef5588b9c0 | ||
![]() |
64ba92593e | ||
![]() |
33b5dc1c75 | ||
![]() |
02139fbb79 | ||
![]() |
9ef1d1db96 | ||
![]() |
225acd0ce2 | ||
![]() |
b4496216db | ||
![]() |
d88c4ad411 | ||
![]() |
8b217981ed | ||
![]() |
8ce8a359c1 | ||
![]() |
55734baed8 | ||
![]() |
52ce55341b | ||
![]() |
e4b6f4b375 | ||
![]() |
32dee82c58 | ||
![]() |
2870586cf9 | ||
![]() |
cb1975f450 | ||
![]() |
805b33552b | ||
![]() |
6bc05a8bc8 | ||
![]() |
3ffae231de | ||
![]() |
6a7557da01 | ||
![]() |
d7045e2b61 | ||
![]() |
e68635b8e4 | ||
![]() |
7ef8d0d443 | ||
![]() |
9b958ed393 | ||
![]() |
84e8c658f6 | ||
![]() |
21a5eb2702 | ||
![]() |
1d62465e5b | ||
![]() |
cb1b1c6e1c | ||
![]() |
8be56d7003 | ||
![]() |
8ce1a9476d | ||
![]() |
0689b54827 | ||
![]() |
b569943059 | ||
![]() |
eb001433e4 | ||
![]() |
a591c875ae | ||
![]() |
08cd36bef0 | ||
![]() |
5d0599976e | ||
![]() |
2e014bbc72 | ||
![]() |
88e9611444 | ||
![]() |
97e88b885a | ||
![]() |
f84476cf87 | ||
![]() |
473ab16739 | ||
![]() |
951292abe1 | ||
![]() |
612032c9f8 | ||
![]() |
0dd9ac2e44 | ||
![]() |
8f551de4f4 | ||
![]() |
0c2e08cf2b | ||
![]() |
0e420fbee8 | ||
![]() |
cf505b850b | ||
![]() |
fd762303b0 | ||
![]() |
a6f05db34b | ||
![]() |
df0ee53765 | ||
![]() |
d0b3476839 | ||
![]() |
4d16f5bf28 | ||
![]() |
c45cc78548 | ||
![]() |
d16aedf6c4 | ||
![]() |
d3a27947fe | ||
![]() |
42e3587fd5 | ||
![]() |
e3f699a9d8 | ||
![]() |
5201f0fd06 | ||
![]() |
df0e97550b | ||
![]() |
983b4ace89 | ||
![]() |
f0684dc74e | ||
![]() |
39923e05f3 | ||
![]() |
51bf9165b2 | ||
![]() |
f1735f3ae1 | ||
![]() |
2ba785f648 | ||
![]() |
c9b7a3f86e | ||
![]() |
43bd9483ce | ||
![]() |
1277b4c30f | ||
![]() |
e1ce1c90f7 | ||
![]() |
f45c2dd061 | ||
![]() |
855c20501b | ||
![]() |
945251c6b8 | ||
![]() |
e47dd3eb89 | ||
![]() |
c9c8993b9d | ||
![]() |
d934e60c2b | ||
![]() |
11478719cd | ||
![]() |
7284addb09 | ||
![]() |
270cde42f1 | ||
![]() |
b690098941 | ||
![]() |
fffe9f4bd9 | ||
![]() |
7353bf2698 | ||
![]() |
133b0f7d94 | ||
![]() |
4878012065 | ||
![]() |
4402ea34de | ||
![]() |
faa53a5335 | ||
![]() |
44a88fc1ab | ||
![]() |
d3ce4f64f6 | ||
![]() |
fcdd85ae5e | ||
![]() |
fd71bb768a | ||
![]() |
66bb79ef10 | ||
![]() |
3b4cc9d806 | ||
![]() |
79221c403b | ||
![]() |
0ab11cc09a | ||
![]() |
1432ecfb33 | ||
![]() |
341cfbb527 | ||
![]() |
78573ae0c9 | ||
![]() |
8a9d3e21f2 | ||
![]() |
8655c4b007 | ||
![]() |
5fa23341b3 | ||
![]() |
67274f91e9 | ||
![]() |
c0cc6a2c93 | ||
![]() |
b2fec642fe | ||
![]() |
d60cecb8d3 | ||
![]() |
c168a9adc6 | ||
![]() |
f778245a86 | ||
![]() |
5701ba287b | ||
![]() |
c471388021 | ||
![]() |
9d717ffee9 | ||
![]() |
bac96d1fa8 | ||
![]() |
f313a83474 | ||
![]() |
9891f94e41 | ||
![]() |
a22ae9f39a | ||
![]() |
02298c8e76 | ||
![]() |
73badc67ff | ||
![]() |
1181b56211 | ||
![]() |
78eb3e7522 | ||
![]() |
57b74c3de9 | ||
![]() |
c83ca8f85a | ||
![]() |
ef58a267b0 | ||
![]() |
4130954c15 | ||
![]() |
0a2af0ab62 | ||
![]() |
a1a94ed319 | ||
![]() |
096d0660e2 | ||
![]() |
b28734c4a8 | ||
![]() |
69c2893234 | ||
![]() |
89078eb3b3 | ||
![]() |
26cefd0587 | ||
![]() |
8ccd11ee4b | ||
![]() |
fd1b276aab | ||
![]() |
2ff8e74061 | ||
![]() |
0020f81e79 | ||
![]() |
6f09752db4 | ||
![]() |
8cf025f18d | ||
![]() |
81990ce53b | ||
![]() |
12cdb7704c | ||
![]() |
947dd45294 | ||
![]() |
a435e8648f | ||
![]() |
25d0793766 | ||
![]() |
5c9652bf13 | ||
![]() |
7a242a8331 | ||
![]() |
7cdfeff204 | ||
![]() |
83107ee222 | ||
![]() |
d9d05e83ba | ||
![]() |
631664645d | ||
![]() |
61ed0829bd | ||
![]() |
f023de0faf | ||
![]() |
7238853f0f | ||
![]() |
6a8cad6f94 | ||
![]() |
2c15270be1 | ||
![]() |
c044bdfe32 | ||
![]() |
aac7079562 | ||
![]() |
cadcfc553c | ||
![]() |
5df669a329 | ||
![]() |
4c307f6ac9 | ||
![]() |
37aa38617e | ||
![]() |
07acb6f7b6 | ||
![]() |
9c96528a98 | ||
![]() |
9327a5c71f | ||
![]() |
171dbcdedf | ||
![]() |
de819e12bf | ||
![]() |
198dc9eb43 | ||
![]() |
04d282fae3 | ||
![]() |
bb86771425 | ||
![]() |
791e0fc11f | ||
![]() |
0badd9b874 | ||
![]() |
af03fa3c7c | ||
![]() |
4d30512e05 | ||
![]() |
d5e8fa47f0 | ||
![]() |
85c7e07351 | ||
![]() |
fde85c79df | ||
![]() |
712eb5428e | ||
![]() |
5c663adf35 | ||
![]() |
68fa033483 | ||
![]() |
b33f70571e | ||
![]() |
cdc2bb0216 | ||
![]() |
250d9b565c | ||
![]() |
6e7c0395e1 | ||
![]() |
be35154376 | ||
![]() |
de2fdc093a | ||
![]() |
3679dfe93e | ||
![]() |
2e1425451d | ||
![]() |
0e1da0d33d | ||
![]() |
7b0b86c9f7 | ||
![]() |
a98b95923b | ||
![]() |
cf3d1ebb8b | ||
![]() |
5db1541f95 | ||
![]() |
873a3ef047 | ||
![]() |
beb3ab506d | ||
![]() |
494364d437 | ||
![]() |
2f1f2c6a85 | ||
![]() |
66853d9715 | ||
![]() |
cf59ad2c76 | ||
![]() |
dba9c42473 | ||
![]() |
f8556360ca | ||
![]() |
28fe051aa5 | ||
![]() |
607e5a567c | ||
![]() |
df31e239a9 | ||
![]() |
df7a15e910 | ||
![]() |
860ef759f5 | ||
![]() |
4ba79fd489 | ||
![]() |
fb01d4e9ab | ||
![]() |
b2317d8800 | ||
![]() |
3283c71936 | ||
![]() |
22a0d5a3fb | ||
![]() |
46443cbd1c | ||
![]() |
efd21ce982 | ||
![]() |
c4e96dd481 | ||
![]() |
65e384523a | ||
![]() |
80aee2af6c | ||
![]() |
1f525a6f4b | ||
![]() |
ffa1ea7358 | ||
![]() |
ce7eb02601 | ||
![]() |
ce80e571f2 | ||
![]() |
11044c6264 | ||
![]() |
7243f5bc2c | ||
![]() |
863ff811e6 | ||
![]() |
414ab39db5 | ||
![]() |
ba78c0527f | ||
![]() |
fb696b7a68 | ||
![]() |
295da18414 | ||
![]() |
8272df5ec2 | ||
![]() |
99fed089cf | ||
![]() |
e3fd501057 | ||
![]() |
7403dfa9aa | ||
![]() |
b08d9cfb56 | ||
![]() |
1969db5f94 | ||
![]() |
866299b508 | ||
![]() |
c4384265e4 | ||
![]() |
b4c885861d | ||
![]() |
d9be5e098f | ||
![]() |
0a54efdd0c | ||
![]() |
708c5a7347 | ||
![]() |
50373f4ff9 | ||
![]() |
2df866bdf8 | ||
![]() |
5b8567919d | ||
![]() |
77cad8e716 | ||
![]() |
700d699f5b | ||
![]() |
87413e9d3c | ||
![]() |
dbe6deab45 | ||
![]() |
b2ae3b9dd1 | ||
![]() |
92dca50dfc | ||
![]() |
a3ba8d575e | ||
![]() |
ea48d18130 | ||
![]() |
4547719358 | ||
![]() |
bb878848f7 | ||
![]() |
5bb284267b | ||
![]() |
7e3c8c461e | ||
![]() |
24034b5b8b | ||
![]() |
78f9f3f87c | ||
![]() |
bc1169e979 | ||
![]() |
012105e115 | ||
![]() |
5c5eb1df14 | ||
![]() |
e714c7d53f | ||
![]() |
78e39bfb1c | ||
![]() |
7323f7c561 | ||
![]() |
c6513ea7a2 | ||
![]() |
6001ceff9f | ||
![]() |
8e3db00dac | ||
![]() |
d20dccbe02 | ||
![]() |
e834783cb8 | ||
![]() |
01f24aae07 | ||
![]() |
584dc6a626 | ||
![]() |
756080831d | ||
![]() |
ffce6c5788 | ||
![]() |
565a492724 | ||
![]() |
6982bbfef9 | ||
![]() |
07bc467d03 | ||
![]() |
a39f8ea71f | ||
![]() |
4ad9a69aeb | ||
![]() |
ee200b97aa | ||
![]() |
fc659a67f0 | ||
![]() |
de0b0b9467 | ||
![]() |
eef74ed263 | ||
![]() |
facf0ab9c4 | ||
![]() |
5318c953ed | ||
![]() |
2550a94f05 | ||
![]() |
bd73c80152 | ||
![]() |
43cbe83d61 | ||
![]() |
075c5dfad6 | ||
![]() |
ba1dfabf11 | ||
![]() |
9603248a5b | ||
![]() |
4e891102f2 | ||
![]() |
bc1c84347d | ||
![]() |
2db01371b3 | ||
![]() |
e17a9c6503 | ||
![]() |
3994126a09 | ||
![]() |
70174be823 | ||
![]() |
9254f9284c | ||
![]() |
c819adf830 | ||
![]() |
13c717159d | ||
![]() |
4c90a9b2d5 | ||
![]() |
a14bd119b7 | ||
![]() |
f9cf25f797 | ||
![]() |
450b92f6c0 | ||
![]() |
9790151ec0 | ||
![]() |
3fbea449b5 | ||
![]() |
02cdc57eb5 | ||
![]() |
d7571ce1e3 | ||
![]() |
ccc8601624 | ||
![]() |
7e2ae20ecf | ||
![]() |
b856065167 | ||
![]() |
f3efdaf40f | ||
![]() |
86564c8741 | ||
![]() |
a5eb7784c6 | ||
![]() |
f0d0f90e13 | ||
![]() |
27d828172d | ||
![]() |
a7ffdf3d65 | ||
![]() |
dd624950c6 | ||
![]() |
b407bfa168 | ||
![]() |
069a6adb19 | ||
![]() |
9dd2c85df4 | ||
![]() |
b7f0f6abc8 | ||
![]() |
ea0479998a | ||
![]() |
9272eb4325 | ||
![]() |
4e601cf14c | ||
![]() |
db582a4e5c | ||
![]() |
059e4ec9c8 | ||
![]() |
a96be226b2 | ||
![]() |
bed00e525d | ||
![]() |
096e837ece | ||
![]() |
e67371d269 | ||
![]() |
a996549577 | ||
![]() |
9917b7e3df | ||
![]() |
541f221a61 | ||
![]() |
44a2ed5a97 | ||
![]() |
ba3f4daee8 | ||
![]() |
2d3d4db16b | ||
![]() |
0c351c9cbc | ||
![]() |
cc1f2b2d27 | ||
![]() |
6ee3a4a978 | ||
![]() |
5326f76a40 | ||
![]() |
7f86fbad1e | ||
![]() |
30fa189cbb | ||
![]() |
2fdb2a8b6f | ||
![]() |
b07e5fafaf | ||
![]() |
ba1a1ab28d | ||
![]() |
a9643234ae | ||
![]() |
7870c8028f | ||
![]() |
6510e8961e | ||
![]() |
6e8b7367d7 | ||
![]() |
feb5b41642 | ||
![]() |
36694afe0e | ||
![]() |
a99111172d | ||
![]() |
780c3d29c7 | ||
![]() |
1a7831df2a | ||
![]() |
924178cde7 | ||
![]() |
77fa72924b | ||
![]() |
b90633d406 | ||
![]() |
cd64e02096 | ||
![]() |
ad820cef8a | ||
![]() |
68de2bcb00 | ||
![]() |
68b6be11d6 | ||
![]() |
d13ae114a2 | ||
![]() |
3a6103564e | ||
![]() |
0424e5a329 | ||
![]() |
561ad635cd | ||
![]() |
2427c095e5 | ||
![]() |
ed27009285 | ||
![]() |
92654bdd9b | ||
![]() |
fdf7ec22f5 | ||
![]() |
3c4a154f0a | ||
![]() |
c766b24920 | ||
![]() |
af652a6639 | ||
![]() |
812628acb2 | ||
![]() |
6b86940b7b | ||
![]() |
08d948435d | ||
![]() |
5004f69b5e | ||
![]() |
bc5d16c4fb | ||
![]() |
c2a5b4fb7d | ||
![]() |
cca8ab4640 | ||
![]() |
d964af8142 | ||
![]() |
7746ff9a12 | ||
![]() |
c4cf67bee4 | ||
![]() |
a1daf03538 | ||
![]() |
2be0530c34 | ||
![]() |
b0d1c884e0 | ||
![]() |
e0a7f0ae59 | ||
![]() |
5779691efb | ||
![]() |
496ed18e85 | ||
![]() |
86cf7de430 | ||
![]() |
477d7470c1 | ||
![]() |
3706b51159 | ||
![]() |
b4c8d53394 | ||
![]() |
4c217d4ba3 | ||
![]() |
23b2081385 | ||
![]() |
0534b54e51 | ||
![]() |
faf4575e9a | ||
![]() |
52efe3abff | ||
![]() |
59510cf8a1 | ||
![]() |
905705910b | ||
![]() |
bb78d8dd59 | ||
![]() |
8b72d53dcc | ||
![]() |
ef4aa16730 | ||
![]() |
14b089ef90 | ||
![]() |
b5fef8d0e2 | ||
![]() |
561f3044d6 | ||
![]() |
9c49254abd | ||
![]() |
5e59578e28 | ||
![]() |
7317535c28 | ||
![]() |
920839cf1c | ||
![]() |
d8eec06473 | ||
![]() |
4748405277 | ||
![]() |
13d574b455 | ||
![]() |
2b13d0f527 | ||
![]() |
e054a6512f | ||
![]() |
eb5313f850 | ||
![]() |
bf0fb9f327 |
8
.gitignore
vendored
@@ -20,6 +20,8 @@ config.sub
|
|||||||
configure
|
configure
|
||||||
configure.tmp
|
configure.tmp
|
||||||
depcomp
|
depcomp
|
||||||
|
doxygen*.tmp
|
||||||
|
html/
|
||||||
install-sh
|
install-sh
|
||||||
intl/
|
intl/
|
||||||
libtool
|
libtool
|
||||||
@@ -32,6 +34,7 @@ po/Makefile.in.in
|
|||||||
po/POTFILES
|
po/POTFILES
|
||||||
po/remove-potcdate.sed
|
po/remove-potcdate.sed
|
||||||
po/stamp-po
|
po/stamp-po
|
||||||
|
share/pkgconfig/hexchat-plugin.pc
|
||||||
src/common/dbus/example
|
src/common/dbus/example
|
||||||
src/common/dbus/marshallers.h
|
src/common/dbus/marshallers.h
|
||||||
src/common/dbus/org.hexchat.service.service
|
src/common/dbus/org.hexchat.service.service
|
||||||
@@ -41,7 +44,11 @@ src/common/textenums.h
|
|||||||
src/common/textevents.h
|
src/common/textevents.h
|
||||||
src/fe-gtk/hexchat
|
src/fe-gtk/hexchat
|
||||||
src/fe-text/hexchat-text
|
src/fe-text/hexchat-text
|
||||||
|
src/htm/Main.resources
|
||||||
src/htm/thememan.exe
|
src/htm/thememan.exe
|
||||||
|
src/htm/thememan.exe.config
|
||||||
|
src/htm/thememan.exe.mdb
|
||||||
|
src/htm/thememan
|
||||||
stamp-h1
|
stamp-h1
|
||||||
*.a
|
*.a
|
||||||
*.o
|
*.o
|
||||||
@@ -50,6 +57,7 @@ stamp-h1
|
|||||||
*.gmo
|
*.gmo
|
||||||
*.mo
|
*.mo
|
||||||
*.po~
|
*.po~
|
||||||
|
*.patch
|
||||||
# Win32 generated files
|
# Win32 generated files
|
||||||
plugins/wmpa/wmpa_h.h
|
plugins/wmpa/wmpa_h.h
|
||||||
plugins/wmpa/wmpa_i.c
|
plugins/wmpa/wmpa_i.c
|
||||||
|
14
.travis.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
language: c
|
||||||
|
compiler: gcc
|
||||||
|
before_script:
|
||||||
|
- sudo apt-get build-dep -qq xchat
|
||||||
|
- sudo apt-get install -qq libnotify-dev libproxy-dev libpci-dev libcanberra-dev monodevelop
|
||||||
|
script:
|
||||||
|
- ./autogen.sh
|
||||||
|
- ./configure --enable-textfe --with-theme-manager
|
||||||
|
- make
|
||||||
|
notifications:
|
||||||
|
irc:
|
||||||
|
channels: "chat.freenode.net#hexchat-devel"
|
||||||
|
template: "Build #%{build_number} (%{commit}) by %{author}: %{message}"
|
||||||
|
on_success: change
|
@@ -2,8 +2,7 @@
|
|||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[hexchat.main]
|
[hexchat.main]
|
||||||
file_filter = po\<lang>.po
|
file_filter = po/<lang>.po
|
||||||
source_file = po\hexchat.pot
|
source_file = po/hexchat.pot
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = PO
|
type = PO
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = po intl src plugins man share
|
SUBDIRS = po intl src plugins man share
|
||||||
|
|
||||||
EXTRA_DIST = autogen.sh
|
EXTRA_DIST = autogen.sh
|
||||||
|
@@ -78,7 +78,7 @@ if test "$?" != "0"; then
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
echo running libtoolize...
|
echo running libtoolize...
|
||||||
libtoolize --force
|
libtoolize --copy --force --install
|
||||||
if test "$?" != "0"; then
|
if test "$?" != "0"; then
|
||||||
echo libtoolize failed, stopping.
|
echo libtoolize failed, stopping.
|
||||||
exit 3
|
exit 3
|
||||||
@@ -90,7 +90,7 @@ if test "$?" != "0"; then
|
|||||||
exit 4
|
exit 4
|
||||||
fi
|
fi
|
||||||
echo running $AUTOMAKE...
|
echo running $AUTOMAKE...
|
||||||
$AUTOMAKE -a
|
$AUTOMAKE -a -c
|
||||||
if test "$?" != "0"; then
|
if test "$?" != "0"; then
|
||||||
echo automake failed, stopping.
|
echo automake failed, stopping.
|
||||||
exit 5
|
exit 5
|
||||||
|
@@ -7,12 +7,12 @@
|
|||||||
#define USE_IPV6
|
#define USE_IPV6
|
||||||
#define HAVE_ISO_CODES
|
#define HAVE_ISO_CODES
|
||||||
#define PACKAGE_NAME "hexchat"
|
#define PACKAGE_NAME "hexchat"
|
||||||
#define PACKAGE_VERSION "2.9.5"
|
#define PACKAGE_VERSION "2.9.6"
|
||||||
#define HEXCHATLIBDIR "."
|
#define HEXCHATLIBDIR ".\\plugins"
|
||||||
#define HEXCHATSHAREDIR "."
|
#define HEXCHATSHAREDIR "."
|
||||||
#define OLD_PERL
|
#define OLD_PERL
|
||||||
#define GETTEXT_PACKAGE "hexchat"
|
#define GETTEXT_PACKAGE "hexchat"
|
||||||
#define PACKAGE_TARNAME "hexchat-2.9.5"
|
#define PACKAGE_TARNAME "hexchat-2.9.6"
|
||||||
#ifndef USE_IPV6
|
#ifndef USE_IPV6
|
||||||
#define socklen_t int
|
#define socklen_t int
|
||||||
#endif
|
#endif
|
||||||
|
268
configure.ac
@@ -1,6 +1,6 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
AC_INIT([HexChat],[2.9.5])
|
AC_INIT([HexChat],[2.9.6])
|
||||||
|
|
||||||
AC_PREREQ([2.60])
|
AC_PREREQ([2.60])
|
||||||
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
|
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
|
||||||
@@ -8,8 +8,9 @@ AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
|
|||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_SRCDIR([configure.ac])
|
AC_CONFIG_SRCDIR([configure.ac])
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.11 dist-bzip2 subdir-objects no-define foreign])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE([1.11 dist-bzip2 subdir-objects no-define foreign])
|
||||||
AM_SILENT_RULES([yes])
|
AM_SILENT_RULES([yes])
|
||||||
|
|
||||||
AC_USE_SYSTEM_EXTENSIONS
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
@@ -20,6 +21,7 @@ AC_PROG_CPP
|
|||||||
AM_PROG_AS
|
AM_PROG_AS
|
||||||
AM_DISABLE_STATIC
|
AM_DISABLE_STATIC
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
|
AC_PATH_PROG(MDTOOL, mdtool, no)
|
||||||
|
|
||||||
dnl -----------------------------------------------------------
|
dnl -----------------------------------------------------------
|
||||||
dnl Language Support
|
dnl Language Support
|
||||||
@@ -45,6 +47,7 @@ AH_VERBATIM([USE_GTKSPELL],[#undef USE_GTKSPELL])
|
|||||||
AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY])
|
AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY])
|
||||||
AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES])
|
AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES])
|
||||||
AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY])
|
AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY])
|
||||||
|
AH_VERBATIM([USE_LIBCANBERRA],[#undef USE_LIBCANBERRA])
|
||||||
AH_VERBATIM([USE_IPV6],[#undef USE_IPV6])
|
AH_VERBATIM([USE_IPV6],[#undef USE_IPV6])
|
||||||
AH_VERBATIM([USE_MMX],[#undef USE_MMX])
|
AH_VERBATIM([USE_MMX],[#undef USE_MMX])
|
||||||
AH_VERBATIM([USE_OPENSSL],[#undef USE_OPENSSL])
|
AH_VERBATIM([USE_OPENSSL],[#undef USE_OPENSSL])
|
||||||
@@ -114,21 +117,18 @@ AC_ARG_ENABLE(xlib,
|
|||||||
xlib=$enableval, xlib=yes)
|
xlib=$enableval, xlib=yes)
|
||||||
|
|
||||||
AC_ARG_ENABLE(python,
|
AC_ARG_ENABLE(python,
|
||||||
[AS_HELP_STRING([--enable-python=pythonversion],[build the python plugin (default on, python2)])],
|
[AS_HELP_STRING([--enable-python=pythonversion],[build the python plugin; possible values: "python2", "python3" or specific such as "python3.3" (default on, python2)])],
|
||||||
python=$enableval, python=python2)
|
python=$enableval, python=python2)
|
||||||
|
AS_IF([test "x$python" = "xyes"], [python=python2])
|
||||||
|
|
||||||
AC_ARG_ENABLE(perl,
|
AC_ARG_ENABLE(perl,
|
||||||
[AS_HELP_STRING([--disable-perl],[don't build the perl plugin])],
|
[AS_HELP_STRING([--disable-perl],[don\'t build the perl plugin])],
|
||||||
perl=$enableval, perl=yes)
|
perl=$enableval, perl=yes)
|
||||||
|
|
||||||
AC_ARG_ENABLE(perl_old,
|
AC_ARG_ENABLE(perl_old,
|
||||||
[AS_HELP_STRING([--disable-perl_old],[no backwards compatibility for perl plugin])],
|
[AS_HELP_STRING([--disable-perl_old],[no backwards compatibility for perl plugin])],
|
||||||
perl_old=$enableval, perl_old=yes)
|
perl_old=$enableval, perl_old=yes)
|
||||||
|
|
||||||
dnl AC_ARG_ENABLE(tcl,
|
|
||||||
dnl [AS_HELP_STRING([--enable-tcl[=PATH]],[directory with Tcl config file: tclConfig.sh])],
|
|
||||||
dnl tcl=$enableval, tcl=yes)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(plugin,
|
AC_ARG_ENABLE(plugin,
|
||||||
[AS_HELP_STRING([--disable-plugin],[disable plugin support])],
|
[AS_HELP_STRING([--disable-plugin],[disable plugin support])],
|
||||||
plugin=$enableval, plugin=yes)
|
plugin=$enableval, plugin=yes)
|
||||||
@@ -145,10 +145,6 @@ AC_ARG_ENABLE(fishlim,
|
|||||||
[AS_HELP_STRING([--disable-fishlim],[disable the FiSHLiM plugin])],
|
[AS_HELP_STRING([--disable-fishlim],[disable the FiSHLiM plugin])],
|
||||||
fishlim=$enableval, fishlim=yes)
|
fishlim=$enableval, fishlim=yes)
|
||||||
|
|
||||||
dnl AC_ARG_ENABLE(sasl,
|
|
||||||
dnl [AS_HELP_STRING([--disable-sasl],[disable the SASL plugin])],
|
|
||||||
dnl sasl=$enableval, sasl=yes)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(sysinfo,
|
AC_ARG_ENABLE(sysinfo,
|
||||||
[AS_HELP_STRING([--disable-sysinfo],[disable the SysInfo plugin])],
|
[AS_HELP_STRING([--disable-sysinfo],[disable the SysInfo plugin])],
|
||||||
sysinfo=$enableval, sysinfo=yes)
|
sysinfo=$enableval, sysinfo=yes)
|
||||||
@@ -161,6 +157,11 @@ AC_ARG_ENABLE(libnotify,
|
|||||||
[AS_HELP_STRING([--disable-libnotify],[disable libnotify support])],
|
[AS_HELP_STRING([--disable-libnotify],[disable libnotify support])],
|
||||||
libnotify=$enableval, libnotify=yes)
|
libnotify=$enableval, libnotify=yes)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(libcanberra,
|
||||||
|
[AS_HELP_STRING([--disable-libcanberra],[disable libcanberra support])],
|
||||||
|
libcanberra=$enableval, libcanberra=yes)
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(mmx,
|
AC_ARG_ENABLE(mmx,
|
||||||
[AS_HELP_STRING([--disable-mmx],[disable MMX assembly routines])],
|
[AS_HELP_STRING([--disable-mmx],[disable MMX assembly routines])],
|
||||||
mmx=$enableval, mmx=yes)
|
mmx=$enableval, mmx=yes)
|
||||||
@@ -171,29 +172,49 @@ AC_ARG_ENABLE(shm,
|
|||||||
|
|
||||||
AC_ARG_ENABLE(spell,
|
AC_ARG_ENABLE(spell,
|
||||||
[AS_HELP_STRING([--enable-spell=type],[enable spelling type: none static libsexy gtkspell])],
|
[AS_HELP_STRING([--enable-spell=type],[enable spelling type: none static libsexy gtkspell])],
|
||||||
spell=$enableval, spell=static)
|
spell=$enableval, spell=libsexy)
|
||||||
|
|
||||||
AC_ARG_ENABLE(ntlm,
|
AC_ARG_ENABLE(ntlm,
|
||||||
[AS_HELP_STRING([--enable-ntlm],[enable Microsoft's NTLM auth (libntlm) library support (default: no)])],
|
[AS_HELP_STRING([--enable-ntlm],[enable Microsoft\'s NTLM auth (libntlm) library support (default: no)])],
|
||||||
ntlm=$enableval, ntlm=no)
|
ntlm=$enableval, ntlm=no)
|
||||||
|
|
||||||
AC_ARG_ENABLE(libproxy,
|
AC_ARG_ENABLE(libproxy,
|
||||||
[AS_HELP_STRING([--disable-libproxy],[disable libproxy support (default: auto)])],
|
[AS_HELP_STRING([--disable-libproxy],[disable libproxy support (default: auto)])],
|
||||||
libproxy=$enableval, libproxy=auto)
|
libproxy=$enableval, libproxy=auto)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(minimal-flags,
|
||||||
|
[AS_HELP_STRING([--enable-minimal-flags],[only add those CFLAGS that are really needed or not intrusive (default: no)])],
|
||||||
|
minimalflags=$enableval, minimalflags=no)
|
||||||
|
|
||||||
|
AC_ARG_WITH(theme-manager,
|
||||||
|
[AS_HELP_STRING([--with-theme-manager],[compile theme manager (needs monodevelop, default: off)])],
|
||||||
|
theme_manager=$withval, theme_manager=no)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dnl *********************************************************************
|
||||||
|
dnl ** THEME-MANAGER ****************************************************
|
||||||
|
dnl *********************************************************************
|
||||||
|
if test "x$theme_manager" != "xno" ; then
|
||||||
|
if test "x$MDTOOL" = "xno"; then
|
||||||
|
AC_MSG_ERROR([No "mdtool" found, you need to install monodevelop!])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** GLIB *************************************************************
|
dnl ** GLIB *************************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
|
|
||||||
AM_PATH_GLIB_2_0(2.14.0, glib=yes, glib=no)
|
AM_PATH_GLIB_2_0(2.28.0, glib=yes, glib=no)
|
||||||
if test "$glib" = no; then
|
if test "$glib" = no; then
|
||||||
AC_MSG_ERROR(Cannot find GLib!)
|
AC_MSG_ERROR(Cannot find GLib!)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COMMON_CFLAGS="$GLIB_CFLAGS"
|
PKG_CHECK_MODULES([GOBJECT], [gobject-2.0], [], [AC_MSG_ERROR(Cannot find gobject-2.0!)])
|
||||||
COMMON_LIBS="$GLIB_LIBS"
|
|
||||||
COMMON_LIBS="$COMMON_LIBS -lgmodule-2.0"
|
COMMON_CFLAGS="$GLIB_CFLAGS $GOBJECT_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
|
||||||
|
COMMON_LIBS="$GLIB_LIBS $GOBJECT_LIBS -lgmodule-2.0"
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** GTK **************************************************************
|
dnl ** GTK **************************************************************
|
||||||
@@ -201,7 +222,7 @@ dnl *********************************************************************
|
|||||||
|
|
||||||
# we might get undefined macro without this test
|
# we might get undefined macro without this test
|
||||||
if test "$gtkfe" = yes ; then
|
if test "$gtkfe" = yes ; then
|
||||||
AM_PATH_GTK_2_0(2.10.0, havegtk=yes, havegtk=no)
|
AM_PATH_GTK_2_0(2.24.0, havegtk=yes, havegtk=no)
|
||||||
|
|
||||||
if test "$havegtk" = no; then
|
if test "$havegtk" = no; then
|
||||||
gtkfe=no
|
gtkfe=no
|
||||||
@@ -213,8 +234,6 @@ fi
|
|||||||
|
|
||||||
if test "$gtkfe" != yes; then
|
if test "$gtkfe" != yes; then
|
||||||
gnome=no
|
gnome=no
|
||||||
COMMON_LIBS="$GLIB_LIBS"
|
|
||||||
COMMON_CFLAGS="$GLIB_CFLAGS"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
@@ -222,18 +241,17 @@ dnl ** GNOME ************************************************************
|
|||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
|
|
||||||
GUI_LIBS="$GUI_LIBS $GTK_LIBS"
|
GUI_LIBS="$GUI_LIBS $GTK_LIBS"
|
||||||
GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS"
|
GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS -DG_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
|
||||||
|
|
||||||
#if test "$gnome" = yes; then
|
#if test "$gnome" = yes; then
|
||||||
# AC_PATH_PROG(pkgconfigpath, pkg-config)
|
|
||||||
# AC_MSG_CHECKING(Gnome2 compile flags)
|
# AC_MSG_CHECKING(Gnome2 compile flags)
|
||||||
# GNOME_CFLAGS="`$pkgconfigpath libgnome-2.0 --cflags 2>/dev/null`"
|
# GNOME_CFLAGS="`$PKG_CONFIG libgnome-2.0 --cflags 2>/dev/null`"
|
||||||
# if test "_$GNOME_CFLAGS" = _ ; then
|
# if test "_$GNOME_CFLAGS" = _ ; then
|
||||||
# gnome=no
|
# gnome=no
|
||||||
# AC_MSG_RESULT([Gnome not found, building without it.])
|
# AC_MSG_RESULT([Gnome not found, building without it.])
|
||||||
# else
|
# else
|
||||||
# GNOME_VER="`$pkgconfigpath libgnome-2.0 --modversion`"
|
# GNOME_VER="`$PKG_CONFIG libgnome-2.0 --modversion`"
|
||||||
# GUI_LIBS="$GUI_LIBS `$pkgconfigpath libgnome-2.0 --libs`"
|
# GUI_LIBS="$GUI_LIBS `$PKG_CONFIG libgnome-2.0 --libs`"
|
||||||
# GUI_CFLAGS="$GUI_CFLAGS $GNOME_CFLAGS"
|
# GUI_CFLAGS="$GUI_CFLAGS $GNOME_CFLAGS"
|
||||||
# AC_DEFINE(USE_GNOME)
|
# AC_DEFINE(USE_GNOME)
|
||||||
# AC_MSG_RESULT(ok)
|
# AC_MSG_RESULT(ok)
|
||||||
@@ -241,21 +259,20 @@ GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS"
|
|||||||
#fi
|
#fi
|
||||||
|
|
||||||
# GConf
|
# GConf
|
||||||
if test "$gnome" != no ; then
|
#if test "$gnome" != no ; then
|
||||||
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
|
# AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
|
||||||
else
|
#else
|
||||||
GCONFTOOL=no
|
# GCONFTOOL=no
|
||||||
fi
|
#fi
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** XFT **************************************************************
|
dnl ** XFT **************************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
|
|
||||||
if test "$xft" = yes; then
|
if test "$xft" = yes; then
|
||||||
AC_PATH_PROG(pkgconfigpath, pkg-config)
|
if $PKG_CONFIG xft --exists; then
|
||||||
if $pkgconfigpath xft --exists; then
|
GUI_CFLAGS="$GUI_CFLAGS `$PKG_CONFIG xft --cflags`"
|
||||||
GUI_CFLAGS="$GUI_CFLAGS `$pkgconfigpath xft --cflags`"
|
GUI_LIBS="$GUI_LIBS `$PKG_CONFIG xft --libs`"
|
||||||
GUI_LIBS="$GUI_LIBS `$pkgconfigpath xft --libs`"
|
|
||||||
else
|
else
|
||||||
xft=no
|
xft=no
|
||||||
oldCPPFLAGS=$CPPFLAGS
|
oldCPPFLAGS=$CPPFLAGS
|
||||||
@@ -335,70 +352,29 @@ dnl ** PYTHON ***********************************************************
|
|||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
|
|
||||||
if test "x$python" != xno ; then
|
if test "x$python" != xno ; then
|
||||||
if test "$python" = yes ; then
|
case $python in
|
||||||
# default
|
dnl set python2 default here
|
||||||
python="python2"
|
python2)
|
||||||
fi
|
PKG_CHECK_MODULES([PY], [python-2.7], [], [AC_MSG_ERROR(Cannot find python-2.7!)])
|
||||||
AC_PATH_PROG(pythonpath, $python)
|
PY_VER="`$PKG_CONFIG --modversion python-2.7`";;
|
||||||
if test "_$pythonpath" = _ ; then
|
dnl set python3 default here
|
||||||
AC_PATH_PROG(pythonpath, python)
|
python3)
|
||||||
fi
|
PKG_CHECK_MODULES([PY], [python-3.3], [], [AC_MSG_ERROR(Cannot find python-3.3!)])
|
||||||
if test "_$pythonpath" = _ ; then
|
PY_VER="`$PKG_CONFIG --modversion python-3.3`";;
|
||||||
python=no
|
dnl add broken versions here
|
||||||
else
|
python2.5|python2.6|python3.1|python3.2)
|
||||||
|
AC_MSG_ERROR(Unsupported Python version ${python}!);;
|
||||||
|
python*)
|
||||||
|
python="python-${python#python}" # stay posix compliant
|
||||||
|
PKG_CHECK_MODULES([PY], [${python}], [], [AC_MSG_ERROR(Cannot find "${python}.pc"!)])
|
||||||
|
PY_VER="`$PKG_CONFIG --modversion ${python}`";;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR(Unsupported Python ${python}!)
|
||||||
|
esac
|
||||||
AC_MSG_CHECKING(Python version)
|
AC_MSG_CHECKING(Python version)
|
||||||
changequote(<<, >>)dnl
|
|
||||||
PY_VER=`$pythonpath -c 'import distutils.sysconfig; print(distutils.sysconfig.get_config_vars("VERSION")[0]);'`
|
|
||||||
PY_LIB=`$pythonpath -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(standard_lib=1));'`
|
|
||||||
PY_INC=`$pythonpath -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());'`
|
|
||||||
PYPLAT_INC=`$pythonpath -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc(plat_specific=True));'`
|
|
||||||
changequote([, ])dnl
|
|
||||||
AC_MSG_RESULT($PY_VER)
|
AC_MSG_RESULT($PY_VER)
|
||||||
$pythonpath -c "import sys; float(sys.version[[:3]]) >= 2.2 and int(sys.version[[0]]) < 3 or sys.exit(1)"
|
|
||||||
if test "$?" != "1"; then
|
|
||||||
AC_MSG_CHECKING(Python compile flags)
|
|
||||||
PY_PREFIX=`$pythonpath -c 'import sys; print(sys.prefix)'`
|
|
||||||
PY_EXEC_PREFIX=`$pythonpath -c 'import sys; print(sys.exec_prefix)'`
|
|
||||||
if test -f $PY_INC/Python.h || test -f $PYPLAT_INC/Python.h; then
|
|
||||||
PY_LIBS="-L$PY_LIB/config -lpython$PY_VER -lpthread -lutil"
|
|
||||||
PY_CFLAGS="-I$PY_INC -I$PYPLAT_INC"
|
|
||||||
AC_MSG_RESULT(ok)
|
|
||||||
else
|
|
||||||
python=no
|
|
||||||
AC_MSG_RESULT([Can't find Python.h])
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Python is too old or too new. Only 2.2-2.7 are supported."
|
|
||||||
python=no
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl *********************************************************************
|
|
||||||
dnl ** TCL **************************************************************
|
|
||||||
dnl *********************************************************************
|
|
||||||
|
|
||||||
dnl AC_MSG_CHECKING(for location of tclConfig.sh)
|
|
||||||
dnl dirs="$tcl /lib /usr/lib /usr/tcl/lib /usr/lib/tcl8.4 /usr/local/lib /usr/local/tcl-8.4/lib /usr/local/tcl/lib /opt/lib /usr/lib/tcl8.3"
|
|
||||||
dnl found=0
|
|
||||||
dnl if test "$tcl" != "no"; then
|
|
||||||
dnl tcl=no
|
|
||||||
dnl for try in $dirs; do
|
|
||||||
dnl if test -f $try/tclConfig.sh; then
|
|
||||||
dnl found=1
|
|
||||||
dnl . $try/tclConfig.sh
|
|
||||||
dnl TCL_LIBS="$TCL_LIB_SPEC $TCL_LIBS"
|
|
||||||
dnl TCL_CFLAGS="-I${TCL_PREFIX}/include $TCL_INCLUDE_SPEC"
|
|
||||||
dnl tcl=yes
|
|
||||||
dnl AC_MSG_RESULT($try/tclConfig.sh)
|
|
||||||
dnl break
|
|
||||||
dnl fi
|
|
||||||
dnl done
|
|
||||||
dnl if test "$found" -eq 0 ; then
|
|
||||||
dnl AC_MSG_RESULT([tclConfig.sh not found - use the --enable-tcl option])
|
|
||||||
dnl fi
|
|
||||||
dnl fi
|
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** IPv6 *************************************************************
|
dnl ** IPv6 *************************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
@@ -431,11 +407,10 @@ dnl *********************************************************************
|
|||||||
|
|
||||||
retry=no
|
retry=no
|
||||||
if test "$openssl" != no; then
|
if test "$openssl" != no; then
|
||||||
AC_PATH_PROG(pkgconfigpath, pkg-config)
|
|
||||||
AC_MSG_CHECKING(for openssl through pkg-config)
|
AC_MSG_CHECKING(for openssl through pkg-config)
|
||||||
if $pkgconfigpath openssl --exists; then
|
if $PKG_CONFIG openssl --exists; then
|
||||||
CPPFLAGS="$CPPFLAGS `$pkgconfigpath openssl --cflags`"
|
CPPFLAGS="$CPPFLAGS `$PKG_CONFIG openssl --cflags`"
|
||||||
LIBS="$LIBS `$pkgconfigpath openssl --libs`"
|
LIBS="$LIBS `$PKG_CONFIG openssl --libs`"
|
||||||
AC_DEFINE(USE_OPENSSL)
|
AC_DEFINE(USE_OPENSSL)
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
openssl=yes
|
openssl=yes
|
||||||
@@ -511,9 +486,8 @@ if test "$plugin" = yes; then
|
|||||||
fi
|
fi
|
||||||
if test "$have_dl" = yes; then
|
if test "$have_dl" = yes; then
|
||||||
AC_DEFINE(USE_PLUGIN)
|
AC_DEFINE(USE_PLUGIN)
|
||||||
AC_PATH_PROG(pkgconfigpath, pkg-config)
|
|
||||||
dnl we just need the -Wl,--export-dynamic, but not -lgmodule-2.0
|
dnl we just need the -Wl,--export-dynamic, but not -lgmodule-2.0
|
||||||
RDYNAMIC_FLAGS="`$pkgconfigpath gmodule-2.0 --libs | $sedpath 's/ -lgmodule-2.0//'`"
|
RDYNAMIC_FLAGS="`$PKG_CONFIG gmodule-2.0 --libs | $sedpath 's/ -lgmodule-2.0//'`"
|
||||||
LIBS="$LIBS $RDYNAMIC_FLAGS"
|
LIBS="$LIBS $RDYNAMIC_FLAGS"
|
||||||
if test "$LD" = ""; then
|
if test "$LD" = ""; then
|
||||||
VS="`ld --help | grep version-script 2> /dev/null`"
|
VS="`ld --help | grep version-script 2> /dev/null`"
|
||||||
@@ -585,21 +559,6 @@ if test "$fishlim" != "no"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl *********************************************************************
|
|
||||||
dnl ** SASL *************************************************************
|
|
||||||
dnl *********************************************************************
|
|
||||||
|
|
||||||
dnl if test "$sasl" != "no"; then
|
|
||||||
dnl AC_MSG_CHECKING(for plugin interface used by SASL)
|
|
||||||
dnl sasl=no
|
|
||||||
dnl if test "$plugin" = yes; then
|
|
||||||
dnl sasl=yes
|
|
||||||
dnl AC_MSG_RESULT([yes])
|
|
||||||
dnl else
|
|
||||||
dnl AC_MSG_RESULT([plugins are disabled, use the --enable-plugin option for SASL])
|
|
||||||
dnl fi
|
|
||||||
dnl fi
|
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** SYSINFO **********************************************************
|
dnl ** SYSINFO **********************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
@@ -653,6 +612,21 @@ if test "x$libnotify" = "xyes" ; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl *********************************************************************
|
||||||
|
dnl ** LIBCANBERRA ******************************************************
|
||||||
|
dnl *********************************************************************
|
||||||
|
|
||||||
|
if test "x$libcanberra" = "xyes" ; then
|
||||||
|
PKG_CHECK_MODULES(LIBCANBERRA, libcanberra >= 0.22, [], [
|
||||||
|
libcanberra=no
|
||||||
|
])
|
||||||
|
if test "$libcanberra" != "no" ; then
|
||||||
|
COMMON_LIBS="$COMMON_LIBS $LIBCANBERRA_LIBS"
|
||||||
|
COMMON_CFLAGS="$COMMON_CFLAGS $LIBCANBERRA_CFLAGS"
|
||||||
|
AC_DEFINE(USE_LIBCANBERRA)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** SPELL ************************************************************
|
dnl ** SPELL ************************************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
@@ -684,7 +658,7 @@ if test "$spell" = "static" ; then
|
|||||||
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.0.0, [
|
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.0.0, [
|
||||||
AC_DEFINE(HAVE_ISO_CODES)
|
AC_DEFINE(HAVE_ISO_CODES)
|
||||||
AC_DEFINE(USE_LIBSEXY)
|
AC_DEFINE(USE_LIBSEXY)
|
||||||
GUI_CFLAGS="$GUI_CFLAGS -I/usr/include/libxml2"
|
GUI_CFLAGS="$GUI_CFLAGS $LIBXML2_CFLAGS"
|
||||||
LIBS="$LIBS -lxml2"
|
LIBS="$LIBS -lxml2"
|
||||||
], [
|
], [
|
||||||
AC_MSG_ERROR(Cannot find libxml2!)
|
AC_MSG_ERROR(Cannot find libxml2!)
|
||||||
@@ -698,19 +672,19 @@ dnl *********************************************************************
|
|||||||
AM_CONDITIONAL(USE_OPENSSL, test "x$openssl" = "xyes")
|
AM_CONDITIONAL(USE_OPENSSL, test "x$openssl" = "xyes")
|
||||||
AM_CONDITIONAL(USE_LIBSEXY, test "x$spell" = "xstatic")
|
AM_CONDITIONAL(USE_LIBSEXY, test "x$spell" = "xstatic")
|
||||||
AM_CONDITIONAL(USE_LIBNOTIFY, test "x$libnotify" = "xyes")
|
AM_CONDITIONAL(USE_LIBNOTIFY, test "x$libnotify" = "xyes")
|
||||||
|
AM_CONDITIONAL(USE_LIBCANBERRA, test "x$libcanberra" = "xyes")
|
||||||
AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
|
AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
|
||||||
AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes")
|
AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes")
|
||||||
AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes")
|
AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes")
|
||||||
AM_CONDITIONAL(DO_PYTHON, test "x$python" != "xno")
|
AM_CONDITIONAL(DO_PYTHON, test "x$python" != "xno")
|
||||||
dnl AM_CONDITIONAL(DO_TCL, test "x$tcl" = "xyes")
|
|
||||||
AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes")
|
AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes")
|
||||||
AM_CONDITIONAL(DO_CHECKSUM, test "x$checksum" = "xyes")
|
AM_CONDITIONAL(DO_CHECKSUM, test "x$checksum" = "xyes")
|
||||||
AM_CONDITIONAL(DO_DOAT, test "x$doat" = "xyes")
|
AM_CONDITIONAL(DO_DOAT, test "x$doat" = "xyes")
|
||||||
AM_CONDITIONAL(DO_FISHLIM, test "x$fishlim" = "xyes")
|
AM_CONDITIONAL(DO_FISHLIM, test "x$fishlim" = "xyes")
|
||||||
dnl AM_CONDITIONAL(DO_SASL, test "x$sasl" = "xyes")
|
|
||||||
AM_CONDITIONAL(DO_SYSINFO, test "x$sysinfo" = "xyes")
|
AM_CONDITIONAL(DO_SYSINFO, test "x$sysinfo" = "xyes")
|
||||||
AM_CONDITIONAL(USE_DBUS, test "x$dbus" = "xyes")
|
AM_CONDITIONAL(USE_DBUS, test "x$dbus" = "xyes")
|
||||||
AM_CONDITIONAL(DO_GCONF, test "x$GCONFTOOL" != "xno")
|
#AM_CONDITIONAL(DO_GCONF, test "x$GCONFTOOL" != "xno")
|
||||||
|
AM_CONDITIONAL(WITH_TM, test "x$theme_manager" != "xno")
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** SOCKS5 ***********************************************************
|
dnl ** SOCKS5 ***********************************************************
|
||||||
@@ -750,8 +724,8 @@ dnl *********************************************************************
|
|||||||
if test "$shm" = yes; then
|
if test "$shm" = yes; then
|
||||||
oldl=$LIBS
|
oldl=$LIBS
|
||||||
oldc=$CPPFLAGS
|
oldc=$CPPFLAGS
|
||||||
LIBS="$LIBS `$pkgconfigpath --libs-only-L xft`"
|
LIBS="$LIBS `$PKG_CONFIG --libs-only-L xft`"
|
||||||
CPPFLAGS="$CPPFLAGS `$pkgconfigpath --cflags-only-I xft`"
|
CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags-only-I xft`"
|
||||||
shm=no
|
shm=no
|
||||||
AC_CHECK_LIB(Xext, XShmAttach, shm=yes)
|
AC_CHECK_LIB(Xext, XShmAttach, shm=yes)
|
||||||
if test "$shm" = yes; then
|
if test "$shm" = yes; then
|
||||||
@@ -765,7 +739,7 @@ if test "$shm" = yes; then
|
|||||||
|
|
||||||
LIBS=$oldl
|
LIBS=$oldl
|
||||||
if test "$shm" = yes; then
|
if test "$shm" = yes; then
|
||||||
GUI_LIBS="$GUI_LIBS `$pkgconfigpath --libs-only-L xft` -lX11 -lXext"
|
GUI_LIBS="$GUI_LIBS `$PKG_CONFIG --libs-only-L xft` -lX11 -lXext"
|
||||||
AC_DEFINE(USE_SHM)
|
AC_DEFINE(USE_SHM)
|
||||||
else
|
else
|
||||||
CPPFLAGS=$oldc
|
CPPFLAGS=$oldc
|
||||||
@@ -807,6 +781,8 @@ if test "x$GCC" = "xyes"; then
|
|||||||
if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
|
if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
|
||||||
CFLAGS="$CFLAGS -Wall"
|
CFLAGS="$CFLAGS -Wall"
|
||||||
fi
|
fi
|
||||||
|
dnl these flags might be unwanted
|
||||||
|
if test x$minimalflags != xyes; then
|
||||||
if test "$system" = "Linux" -o "$system" = "FreeBSD"; then
|
if test "$system" = "Linux" -o "$system" = "FreeBSD"; then
|
||||||
if test -z "`echo "$CFLAGS" | grep "\-pipe" 2> /dev/null`" ; then
|
if test -z "`echo "$CFLAGS" | grep "\-pipe" 2> /dev/null`" ; then
|
||||||
CFLAGS="$CFLAGS -pipe"
|
CFLAGS="$CFLAGS -pipe"
|
||||||
@@ -815,6 +791,7 @@ if test "x$GCC" = "xyes"; then
|
|||||||
if test -z "`echo "$CFLAGS" | grep "\-g " 2> /dev/null`" ; then
|
if test -z "`echo "$CFLAGS" | grep "\-g " 2> /dev/null`" ; then
|
||||||
CFLAGS="$CFLAGS -g"
|
CFLAGS="$CFLAGS -g"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl does this compiler support -Wno-pointer-sign ?
|
dnl does this compiler support -Wno-pointer-sign ?
|
||||||
@@ -861,12 +838,34 @@ if test x$unsigned_char = xyes; then
|
|||||||
CFLAGS="$CFLAGS -funsigned-char"
|
CFLAGS="$CFLAGS -funsigned-char"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl does this compiler support -Wno-unused-result ?
|
||||||
|
AC_MSG_CHECKING([if gcc accepts -Wno-unused-result ])
|
||||||
|
|
||||||
|
safe_CFLAGS=$CFLAGS
|
||||||
|
CFLAGS="-Wno-unused-result"
|
||||||
|
|
||||||
|
AC_TRY_COMPILE(, [
|
||||||
|
int main () { return 0 ; }
|
||||||
|
],
|
||||||
|
[
|
||||||
|
no_unused_result=yes
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
], [
|
||||||
|
no_unused_result=no
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
])
|
||||||
|
CFLAGS=$safe_CFLAGS
|
||||||
|
|
||||||
|
if test x$no_unused_result = xyes; then
|
||||||
|
CFLAGS="$CFLAGS -Wno-unused-result"
|
||||||
|
fi
|
||||||
|
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
dnl ** FUNCTIONS/LIBS/CFLAGS ********************************************
|
dnl ** FUNCTIONS/LIBS/CFLAGS ********************************************
|
||||||
dnl *********************************************************************
|
dnl *********************************************************************
|
||||||
|
|
||||||
AC_MSG_CHECKING(for modern sigaction)
|
AC_MSG_CHECKING(for modern sigaction)
|
||||||
dnl libc5 on linux and FreeBSD 3.x doesn't have siginfo_t
|
dnl libc5 on linux and FreeBSD 3.x doesn\'t have siginfo_t
|
||||||
dnl and the sa_sigation field.
|
dnl and the sa_sigation field.
|
||||||
AC_TRY_COMPILE(
|
AC_TRY_COMPILE(
|
||||||
[#include <signal.h>],
|
[#include <signal.h>],
|
||||||
@@ -885,7 +884,7 @@ if test "$gtkfe" != no -a "_$gdkpixbufcsourcepath" = _; then
|
|||||||
AC_MSG_ERROR(Cannot find gdk-pixbuf-csource: Install GTK+ 2.0!)
|
AC_MSG_ERROR(Cannot find gdk-pixbuf-csource: Install GTK+ 2.0!)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl if we don't have this, use g_snprintf instead
|
dnl if we don\'t have this, use g_snprintf instead
|
||||||
AC_CHECK_FUNCS(snprintf vsnprintf memrchr strtoull)
|
AC_CHECK_FUNCS(snprintf vsnprintf memrchr strtoull)
|
||||||
|
|
||||||
AC_CHECK_FUNC(gethostbyname, ,
|
AC_CHECK_FUNC(gethostbyname, ,
|
||||||
@@ -933,11 +932,10 @@ AC_SUBST(PERL_CFLAGS)
|
|||||||
AC_SUBST(PERL_LDFLAGS)
|
AC_SUBST(PERL_LDFLAGS)
|
||||||
AC_SUBST(PY_CFLAGS)
|
AC_SUBST(PY_CFLAGS)
|
||||||
AC_SUBST(PY_LIBS)
|
AC_SUBST(PY_LIBS)
|
||||||
dnl AC_SUBST(TCL_LIBS)
|
|
||||||
dnl AC_SUBST(TCL_CFLAGS)
|
|
||||||
AC_SUBST(DBUS_CFLAGS)
|
AC_SUBST(DBUS_CFLAGS)
|
||||||
AC_SUBST(DBUS_LIBS)
|
AC_SUBST(DBUS_LIBS)
|
||||||
|
|
||||||
|
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig))
|
||||||
|
|
||||||
PLUGIN_INCLUDES='-I$(top_srcdir)/plugins'
|
PLUGIN_INCLUDES='-I$(top_srcdir)/plugins'
|
||||||
AC_SUBST(PLUGIN_INCLUDES)
|
AC_SUBST(PLUGIN_INCLUDES)
|
||||||
@@ -948,14 +946,14 @@ test "x$exec_prefix" = xNONE && exec_prefix="$prefix"
|
|||||||
|
|
||||||
AC_DEFINE_UNQUOTED(PREFIX, "${prefix}")
|
AC_DEFINE_UNQUOTED(PREFIX, "${prefix}")
|
||||||
|
|
||||||
AS_AC_EXPAND(HEXCHATLIBDIR, "${libdir}/hexchat")
|
AS_AC_EXPAND(HEXCHATLIBDIR, "${libdir}/hexchat/plugins")
|
||||||
AC_DEFINE_UNQUOTED(HEXCHATLIBDIR, "$HEXCHATLIBDIR")
|
AC_DEFINE_UNQUOTED(HEXCHATLIBDIR, "$HEXCHATLIBDIR")
|
||||||
|
|
||||||
AS_AC_EXPAND(HEXCHATSHAREDIR, "$datadir")
|
AS_AC_EXPAND(HEXCHATSHAREDIR, "$datadir")
|
||||||
AC_DEFINE_UNQUOTED(HEXCHATSHAREDIR, "$HEXCHATSHAREDIR")
|
AC_DEFINE_UNQUOTED(HEXCHATSHAREDIR, "$HEXCHATSHAREDIR")
|
||||||
|
|
||||||
dnl for plugins/xxx/Makefile.am
|
dnl for plugins/xxx/Makefile.am
|
||||||
hexchatlibdir=${libdir}/hexchat
|
hexchatlibdir=${libdir}/hexchat/plugins
|
||||||
AC_SUBST(hexchatlibdir)
|
AC_SUBST(hexchatlibdir)
|
||||||
|
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
@@ -963,11 +961,15 @@ Makefile
|
|||||||
share/Makefile
|
share/Makefile
|
||||||
share/icons/Makefile
|
share/icons/Makefile
|
||||||
share/misc/Makefile
|
share/misc/Makefile
|
||||||
|
share/pkgconfig/Makefile
|
||||||
|
share/pkgconfig/hexchat-plugin.pc
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/common/Makefile
|
src/common/Makefile
|
||||||
src/common/dbus/Makefile
|
src/common/dbus/Makefile
|
||||||
src/fe-text/Makefile
|
src/fe-text/Makefile
|
||||||
src/fe-gtk/Makefile
|
src/fe-gtk/Makefile
|
||||||
|
src/htm/Makefile
|
||||||
|
src/htm/thememan
|
||||||
src/pixmaps/Makefile
|
src/pixmaps/Makefile
|
||||||
plugins/Makefile
|
plugins/Makefile
|
||||||
plugins/python/Makefile
|
plugins/python/Makefile
|
||||||
@@ -980,8 +982,6 @@ intl/Makefile
|
|||||||
po/Makefile.in
|
po/Makefile.in
|
||||||
man/Makefile
|
man/Makefile
|
||||||
])
|
])
|
||||||
dnl plugins/tcl/Makefile
|
|
||||||
dnl plugins/sasl/Makefile
|
|
||||||
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
@@ -990,6 +990,7 @@ echo HexChat $VERSION
|
|||||||
echo
|
echo
|
||||||
echo GTK+ interface ........ : $gtkfe
|
echo GTK+ interface ........ : $gtkfe
|
||||||
echo Text interface ........ : $textfe
|
echo Text interface ........ : $textfe
|
||||||
|
echo Theme manager ......... : $theme_manager
|
||||||
echo
|
echo
|
||||||
echo MMX tinting ........... : $mmx
|
echo MMX tinting ........... : $mmx
|
||||||
echo XShm tinting .......... : $shm
|
echo XShm tinting .......... : $shm
|
||||||
@@ -1001,6 +1002,7 @@ fi
|
|||||||
echo OpenSSL support ....... : $openssl
|
echo OpenSSL support ....... : $openssl
|
||||||
echo D-Bus support ......... : $dbus
|
echo D-Bus support ......... : $dbus
|
||||||
echo libnotify support ..... : $libnotify
|
echo libnotify support ..... : $libnotify
|
||||||
|
echo libcanberra support ... : $libcanberra
|
||||||
echo Spelling .............. : $spell
|
echo Spelling .............. : $spell
|
||||||
echo Plugin interface ...... : $plugin
|
echo Plugin interface ...... : $plugin
|
||||||
echo NLS/gettext ........... : $USE_NLS
|
echo NLS/gettext ........... : $USE_NLS
|
||||||
@@ -1009,13 +1011,11 @@ echo MS Proxy NTLM \(ISA\) ... : $have_ntlm
|
|||||||
echo libproxy support ...... : $libproxy
|
echo libproxy support ...... : $libproxy
|
||||||
echo
|
echo
|
||||||
echo Perl .................. : $perl
|
echo Perl .................. : $perl
|
||||||
echo Python ................ : $python
|
echo Python ................ : python-$PY_VER
|
||||||
dnl echo Tcl ................... : $tcl
|
|
||||||
echo
|
echo
|
||||||
echo Checksum .............. : $checksum
|
echo Checksum .............. : $checksum
|
||||||
echo Do At ................. : $doat
|
echo Do At ................. : $doat
|
||||||
echo FiSHLiM ............... : $fishlim
|
echo FiSHLiM ............... : $fishlim
|
||||||
dnl echo SASL .................. : $sasl
|
|
||||||
echo SysInfo ............... : $sysinfo
|
echo SysInfo ............... : $sysinfo
|
||||||
echo
|
echo
|
||||||
echo The binary will be installed in $prefix/bin
|
echo The binary will be installed in $prefix/bin
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
.TH HEXCHAT "1" "April 2013" "HexChat 2.9.5" "User Commands"
|
.TH HEXCHAT "1" "April 2013" "HexChat 2.9.6" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
HexChat \- manual page for HexChat 2.9.5
|
HexChat \- IRC Client
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.SS "Usage:"
|
.SS "Usage:"
|
||||||
.IP
|
.IP
|
||||||
hexchat [OPTION...]
|
hexchat [OPTION...] URL
|
||||||
.SS "Help Options:"
|
.SS "Help Options:"
|
||||||
.TP
|
.TP
|
||||||
\fB\-h\fR, \fB\-\-help\fR
|
\fB\-h\fR, \fB\-\-help\fR
|
||||||
@@ -33,7 +33,7 @@ Show plugin auto\-load directory
|
|||||||
Show user config directory
|
Show user config directory
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-url\fR=\fIURL\fR
|
\fB\-\-url\fR=\fIURL\fR
|
||||||
Open an irc://server:port/channel URL
|
Open an irc://server:port/channel?key URL
|
||||||
.TP
|
.TP
|
||||||
\fB\-c\fR, \fB\-\-command\fR=\fICOMMAND\fR
|
\fB\-c\fR, \fB\-\-command\fR=\fICOMMAND\fR
|
||||||
Execute command:
|
Execute command:
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
libdir = $(hexchatlibdir)/plugins
|
libdir = $(hexchatlibdir)
|
||||||
|
|
||||||
lib_LTLIBRARIES = checksum.la
|
lib_LTLIBRARIES = checksum.la
|
||||||
checksum_la_SOURCES = checksum.c
|
checksum_la_SOURCES = checksum.c
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -77,7 +79,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -77,7 +79,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
libdir = $(hexchatlibdir)/plugins
|
libdir = $(hexchatlibdir)
|
||||||
|
|
||||||
lib_LTLIBRARIES = doat.la
|
lib_LTLIBRARIES = doat.la
|
||||||
doat_la_SOURCES = doat.c
|
doat_la_SOURCES = doat.c
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -75,7 +77,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
static hexchat_plugin *ph; /* plugin handle */
|
static hexchat_plugin *ph; /* plugin handle */
|
||||||
static char name[] = "Exec";
|
static char name[] = "Exec";
|
||||||
static char desc[] = "Execute commands inside HexChat";
|
static char desc[] = "Execute commands inside HexChat";
|
||||||
static char version[] = "1.1";
|
static char version[] = "1.2";
|
||||||
|
|
||||||
static int
|
static int
|
||||||
run_command (char *word[], char *word_eol[], void *userdata)
|
run_command (char *word[], char *word_eol[], void *userdata)
|
||||||
@@ -41,6 +41,10 @@ run_command (char *word[], char *word_eol[], void *userdata)
|
|||||||
time_t start;
|
time_t start;
|
||||||
double timeElapsed;
|
double timeElapsed;
|
||||||
|
|
||||||
|
char *token;
|
||||||
|
char *context = NULL;
|
||||||
|
int announce = 0;
|
||||||
|
|
||||||
HANDLE readPipe;
|
HANDLE readPipe;
|
||||||
HANDLE writePipe;
|
HANDLE writePipe;
|
||||||
STARTUPINFO sInfo;
|
STARTUPINFO sInfo;
|
||||||
@@ -59,9 +63,8 @@ run_command (char *word[], char *word_eol[], void *userdata)
|
|||||||
|
|
||||||
if (!stricmp("-O", word[2]))
|
if (!stricmp("-O", word[2]))
|
||||||
{
|
{
|
||||||
/*strcat (commandLine, word_eol[3]);*/
|
strcat (commandLine, word_eol[3]);
|
||||||
hexchat_printf (ph, "Printing Exec output to others is not supported yet.\n");
|
announce = 1;
|
||||||
return HEXCHAT_EAT_HEXCHAT;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -90,6 +93,18 @@ run_command (char *word[], char *word_eol[], void *userdata)
|
|||||||
{
|
{
|
||||||
/* avoid garbage */
|
/* avoid garbage */
|
||||||
buffer[dwRead] = '\0';
|
buffer[dwRead] = '\0';
|
||||||
|
|
||||||
|
if (announce)
|
||||||
|
{
|
||||||
|
/* Say each line seperately, TODO: improve... */
|
||||||
|
token = strtok_s (buffer, "\n", &context);
|
||||||
|
while (token != NULL)
|
||||||
|
{
|
||||||
|
hexchat_commandf (ph, "SAY %s", token);
|
||||||
|
token = strtok_s (NULL, "\n", &context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
hexchat_printf (ph, "%s", buffer);
|
hexchat_printf (ph, "%s", buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -100,9 +115,9 @@ run_command (char *word[], char *word_eol[], void *userdata)
|
|||||||
}
|
}
|
||||||
timeElapsed = difftime (time (0), start);
|
timeElapsed = difftime (time (0), start);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* display a newline to separate things */
|
/* display a newline to separate things */
|
||||||
|
if (!announce)
|
||||||
hexchat_printf (ph, "\n");
|
hexchat_printf (ph, "\n");
|
||||||
|
|
||||||
if (timeElapsed >= 10)
|
if (timeElapsed >= 10)
|
||||||
@@ -113,6 +128,11 @@ run_command (char *word[], char *word_eol[], void *userdata)
|
|||||||
CloseHandle (readPipe);
|
CloseHandle (readPipe);
|
||||||
CloseHandle (pInfo.hProcess);
|
CloseHandle (pInfo.hProcess);
|
||||||
CloseHandle (pInfo.hThread);
|
CloseHandle (pInfo.hThread);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hexchat_command (ph, "help exec");
|
||||||
|
}
|
||||||
|
|
||||||
return HEXCHAT_EAT_HEXCHAT;
|
return HEXCHAT_EAT_HEXCHAT;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -75,7 +77,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
EXTRA_DIST = INSTALL LICENSE README
|
EXTRA_DIST = INSTALL LICENSE README
|
||||||
|
|
||||||
libdir = $(hexchatlibdir)/plugins
|
libdir = $(hexchatlibdir)
|
||||||
|
|
||||||
lib_LTLIBRARIES = fishlim.la
|
lib_LTLIBRARIES = fishlim.la
|
||||||
fishlim_la_SOURCES = fish.c irc.c keystore.c misc.c plugin_hexchat.c
|
fishlim_la_SOURCES = fish.c irc.c keystore.c misc.c plugin_hexchat.c
|
||||||
|
@@ -1,5 +0,0 @@
|
|||||||
/* stdbool.h replacement for MSVC */
|
|
||||||
#define false 0
|
|
||||||
#define true 1
|
|
||||||
#define bool _Bool
|
|
||||||
typedef int _Bool;
|
|
@@ -25,11 +25,7 @@
|
|||||||
#ifndef FISH_H
|
#ifndef FISH_H
|
||||||
#define FISH_H
|
#define FISH_H
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#include "bool.h"
|
|
||||||
#else
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#endif
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
char *fish_encrypt(const char *key, size_t keylen, const char *message);
|
char *fish_encrypt(const char *key, size_t keylen, const char *message);
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -77,7 +79,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -25,11 +25,7 @@
|
|||||||
#ifndef IRC_H
|
#ifndef IRC_H
|
||||||
#define IRC_H
|
#define IRC_H
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#include "bool.h"
|
|
||||||
#else
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#endif
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
bool irc_parse_message(const char *words[],
|
bool irc_parse_message(const char *words[],
|
||||||
|
@@ -25,11 +25,7 @@
|
|||||||
#ifndef KEYSTORE_H
|
#ifndef KEYSTORE_H
|
||||||
#define KEYSTORE_H
|
#define KEYSTORE_H
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#include "bool.h"
|
|
||||||
#else
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#endif
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
char *keystore_get_key(const char *nick);
|
char *keystore_get_key(const char *nick);
|
||||||
|
Before Width: | Height: | Size: 32 KiB |
@@ -1,734 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define _WIN32_IE 0x0601
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <commctrl.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
#include "hexchat-plugin.h"
|
|
||||||
#include "utility.h"
|
|
||||||
#include "hextray.h"
|
|
||||||
#include "hexchat.h"
|
|
||||||
#include "callbacks.h"
|
|
||||||
#include "resource.h"
|
|
||||||
#include "sdTray.h"
|
|
||||||
#include "sdAlerts.h"
|
|
||||||
|
|
||||||
HWND g_hPrefTabEvents;
|
|
||||||
HWND g_hPrefTabSettings;
|
|
||||||
HWND g_hPrefTabAlerts;
|
|
||||||
HWND g_hPrefTabAbout;
|
|
||||||
bool g_bCanQuit;
|
|
||||||
int g_iIsActive = 1;
|
|
||||||
|
|
||||||
|
|
||||||
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
|
|
||||||
{
|
|
||||||
TCHAR szTitle[10];
|
|
||||||
GetWindowText(hWnd, szTitle, 9);
|
|
||||||
|
|
||||||
if(_tcsstr(szTitle, _T("HexChat [")))
|
|
||||||
{
|
|
||||||
g_hXchatWnd = hWnd;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************************************************/
|
|
||||||
/******* our HexChat event call back, get the name and info for each event and save it *********/
|
|
||||||
/******* for our alerts later ******************************************************************/
|
|
||||||
/***********************************************************************************************/
|
|
||||||
int event_cb(char *word[], void *userdata)
|
|
||||||
{
|
|
||||||
int iEvent = (int)userdata;
|
|
||||||
|
|
||||||
if(iEvent > 10 && iEvent != 21)
|
|
||||||
return HEXCHAT_EAT_NONE;
|
|
||||||
|
|
||||||
/***************************************************************************************/
|
|
||||||
/***** if the window is minimized or if we're allowed to show alerts when its not **/
|
|
||||||
/***** and if the option to show the specified alert is true and if we're even **/
|
|
||||||
/***** allowed to show alerts at all then we show them (a bit confusing but it works) **/
|
|
||||||
/***************************************************************************************/
|
|
||||||
if(((g_iIsActive == 0) || !(g_dwPrefs & (1<<PREF_OSBWM))) && (g_dwPrefs & (1<<PREF_AMAE)) && (g_dwPrefs & (1<<iEvent)))
|
|
||||||
{
|
|
||||||
/*********************************/
|
|
||||||
/*********** Our Buffers *********/
|
|
||||||
/*********************************/
|
|
||||||
char szInfo[512];
|
|
||||||
char szName[64];
|
|
||||||
DWORD dwInfoFlags;
|
|
||||||
int iTime = g_iTime*1000;
|
|
||||||
char *szTemp = NULL;
|
|
||||||
|
|
||||||
if(g_dwPrefs & (1<<PREF_KAOI))
|
|
||||||
{
|
|
||||||
iTime = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(iEvent)
|
|
||||||
{
|
|
||||||
case CHAN_HILIGHT:
|
|
||||||
_snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Highlight: %s", hexchat_get_info (ph, "channel"));
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
case CHAN_MESSAGE:
|
|
||||||
_snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Channel Message: %s", hexchat_get_info (ph, "channel"));
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
case CHAN_TOPIC_CHANGE:
|
|
||||||
_snprintf(szInfo, 512, "%s has changed the topic to %s", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Topic Change: %s", word[3]);
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
case CHAN_INVITE:
|
|
||||||
_snprintf(szInfo, 512, "%s has invited you into %s", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Invite");
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
case CHAN_KICKED:
|
|
||||||
_snprintf(szInfo, 512, "Kicked from %s by %s:\r\n%s", word[2], word[3], word[4]);
|
|
||||||
_snprintf(szName, 64, "Kick");
|
|
||||||
dwInfoFlags = NIIF_WARNING;
|
|
||||||
break;
|
|
||||||
case CHAN_BANNED:
|
|
||||||
_snprintf(szInfo, 512, "Cannot join %s You are banned.", word[1]);
|
|
||||||
_snprintf(szName, 64, "Banned");
|
|
||||||
dwInfoFlags = NIIF_WARNING;
|
|
||||||
break;
|
|
||||||
case CTCP_GENERIC:
|
|
||||||
_snprintf(szInfo, 512, "%s:\r\nCTCP %s", word[2], word[1]);
|
|
||||||
_snprintf(szName, 64, "CTCP");
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
case PMSG_RECEIVE:
|
|
||||||
_snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Private Message");
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
case SERV_DISCONNECT:
|
|
||||||
_snprintf(szInfo, 512, "Disconnected\r\nError: %s", word[1]);
|
|
||||||
_snprintf(szName, 64, "Disconnect");
|
|
||||||
dwInfoFlags = NIIF_ERROR;
|
|
||||||
break;
|
|
||||||
case SERV_KILLED:
|
|
||||||
_snprintf(szInfo, 512, "Killed(%s(%s))", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Server Admin has killed you");
|
|
||||||
dwInfoFlags = NIIF_ERROR;
|
|
||||||
break;
|
|
||||||
case SERV_NOTICE:
|
|
||||||
_snprintf(szInfo, 512, "Notice:\r\n%s: %s", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Notice");
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
case 11:
|
|
||||||
_snprintf(szInfo, 512, ":\r\n%s: %s", word[1], word[2]);
|
|
||||||
_snprintf(szName, 64, "Notice");
|
|
||||||
dwInfoFlags = NIIF_INFO;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**************************************************************************************/
|
|
||||||
/***** Use windows instead of balloons, and if its a window should we keep it open ****/
|
|
||||||
/***** indefinitely? ****/
|
|
||||||
/**************************************************************************************/
|
|
||||||
szTemp = hexchat_strip_color(szInfo);
|
|
||||||
|
|
||||||
if(g_dwPrefs & (1<<PREF_UWIOB))
|
|
||||||
{
|
|
||||||
sdSystemAlert((HINSTANCE)g_hInstance, IDD_ALERT, szTemp, szName, iTime);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ShowBalloon(g_hXchatWnd, 1, szTemp, szName, iTime, dwInfoFlags);
|
|
||||||
}
|
|
||||||
|
|
||||||
free(szTemp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(g_dwPrefs & (1<<PREF_BLINK) && (g_dwPrefs & (1<<iEvent)))
|
|
||||||
{
|
|
||||||
BlinkIcon(g_hXchatWnd, 1, g_hIcons[0], g_hIcons[(iEvent+1)], 700, 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************/
|
|
||||||
/***** pass the events to HexChat **/
|
|
||||||
/***********************************/
|
|
||||||
return HEXCHAT_EAT_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int command_cb(char *word[], char *word_eol[], void *userdata)
|
|
||||||
{
|
|
||||||
char szInfo[512];
|
|
||||||
char *szTemp = NULL;
|
|
||||||
int iTime = g_iTime*1000;
|
|
||||||
|
|
||||||
_snprintf(szInfo, 512, word_eol[2]);
|
|
||||||
szTemp = hexchat_strip_color(szInfo);
|
|
||||||
|
|
||||||
if(g_dwPrefs & (1<<PREF_KAOI))
|
|
||||||
{
|
|
||||||
iTime = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(((g_iIsActive == 0) || !(g_dwPrefs & (1<<PREF_OSBWM))) && (g_dwPrefs & (1<<PREF_AMAE)))
|
|
||||||
{
|
|
||||||
if(g_dwPrefs & (1<<PREF_UWIOB))
|
|
||||||
{
|
|
||||||
sdSystemAlert((HINSTANCE)g_hInstance, IDD_ALERT, szTemp, "Alert", iTime);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ShowBalloon(g_hXchatWnd, 1, szTemp, "Alert", iTime, NIIF_INFO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
free(szTemp);
|
|
||||||
|
|
||||||
return HEXCHAT_EAT_ALL;
|
|
||||||
}
|
|
||||||
|
|
||||||
LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
switch(msg)
|
|
||||||
{
|
|
||||||
case WM_CLOSE:
|
|
||||||
{
|
|
||||||
if((g_dwPrefs & (1<<PREF_MIOC)) && (g_bCanQuit == false))
|
|
||||||
{
|
|
||||||
/*******************************************/
|
|
||||||
/**** to autoaway or not to autoaway... ***/
|
|
||||||
/*******************************************/
|
|
||||||
if(g_dwPrefs & (1<<PREF_AOM))
|
|
||||||
{
|
|
||||||
hexchat_globally_away(g_szAway);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**************************************************/
|
|
||||||
/**** Win32 API call to hide the window and **/
|
|
||||||
/**** save the fact that its minimized for later **/
|
|
||||||
/**************************************************/
|
|
||||||
g_iIsActive = 0;
|
|
||||||
ShowWindow(hWnd, SW_HIDE);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(g_hPrefDlg != NULL)
|
|
||||||
{
|
|
||||||
DestroyWindow(g_hPrefDlg);
|
|
||||||
}
|
|
||||||
|
|
||||||
StopBlink(hWnd, 1, g_hIcons[0]);
|
|
||||||
|
|
||||||
if(sdAlertNum())
|
|
||||||
{
|
|
||||||
sdCloseAlerts();
|
|
||||||
HoldClose();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_SIZE:
|
|
||||||
{
|
|
||||||
/******************************************/
|
|
||||||
/***** User wants to minimize HexChat, ****/
|
|
||||||
/***** are we allowed to go to tray? ******/
|
|
||||||
/******************************************/
|
|
||||||
if((g_dwPrefs & (1<<PREF_TOT)) && (wparam == SIZE_MINIMIZED))
|
|
||||||
{
|
|
||||||
/*******************************************/
|
|
||||||
/**** to autoaway or not to autoaway... ***/
|
|
||||||
/*******************************************/
|
|
||||||
if(g_dwPrefs & (1<<PREF_AOM))
|
|
||||||
{
|
|
||||||
hexchat_globally_away(g_szAway);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**************************************************/
|
|
||||||
/**** Win32 API call to hide the window and **/
|
|
||||||
/**** save the fact that its minimized for later **/
|
|
||||||
/**************************************************/
|
|
||||||
g_iIsActive = 0;
|
|
||||||
ShowWindow(hWnd, SW_HIDE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
/**********************************/
|
|
||||||
/*** user clicked the tray icon ***/
|
|
||||||
/**********************************/
|
|
||||||
case WM_TRAYMSG:
|
|
||||||
{
|
|
||||||
switch(lparam)
|
|
||||||
{
|
|
||||||
case WM_LBUTTONDOWN:
|
|
||||||
{
|
|
||||||
if(!g_iIsActive)
|
|
||||||
{
|
|
||||||
/*********************************************************/
|
|
||||||
/*** 0: its hiden, restore it and show it, if autoaway ***/
|
|
||||||
/*** is on, set us as back ***/
|
|
||||||
/*********************************************************/
|
|
||||||
SendMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE, 0);
|
|
||||||
SetForegroundWindow(hWnd);
|
|
||||||
g_iIsActive = 1;
|
|
||||||
|
|
||||||
if(g_dwPrefs & (1<<PREF_AOM))
|
|
||||||
{
|
|
||||||
hexchat_globally_back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SendMessage(hWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_RBUTTONDOWN:
|
|
||||||
{
|
|
||||||
/******************************************/
|
|
||||||
/*** user wants to see the menu find out **/
|
|
||||||
/*** where the mouse is and show it **/
|
|
||||||
/******************************************/
|
|
||||||
POINT pt;
|
|
||||||
int iRet;
|
|
||||||
|
|
||||||
GetCursorPos(&pt);
|
|
||||||
SetForegroundWindow(hWnd);
|
|
||||||
|
|
||||||
ModifyMenu(g_hTrayMenu, 2, (MF_POPUP | MF_BYPOSITION), (UINT)setServerMenu(), _T("Away"));
|
|
||||||
|
|
||||||
Sleep(175);
|
|
||||||
|
|
||||||
iRet = TrackPopupMenuEx(g_hTrayMenu, (TPM_RETURNCMD | TPM_LEFTALIGN), pt.x, pt.y, hWnd, NULL);
|
|
||||||
|
|
||||||
/***********************************/
|
|
||||||
/*** nRet is the users selection, **/
|
|
||||||
/*** process it **/
|
|
||||||
/***********************************/
|
|
||||||
sdTrayProc(hWnd, iRet);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
/*****************************************************/
|
|
||||||
/*** the taskbar has been restarted, re-add our icon */
|
|
||||||
/*****************************************************/
|
|
||||||
if(msg == RegisterWindowMessage(_T("TaskbarCreated")))
|
|
||||||
{
|
|
||||||
char szVersion[64];
|
|
||||||
_snprintf(szVersion, 64, "HexChat [%s]", hexchat_get_info(ph, "version"));
|
|
||||||
AddIcon(g_hXchatWnd, 1, g_hIcons[0], szVersion, (NIF_ICON | NIF_MESSAGE | NIF_TIP), WM_TRAYMSG);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return CallWindowProc(g_hOldProc, hWnd, msg, wparam, lparam);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************/
|
|
||||||
/*** process messages from the tray menu ************/
|
|
||||||
/****************************************************/
|
|
||||||
LRESULT CALLBACK sdTrayProc(HWND hWnd, int msg)
|
|
||||||
{
|
|
||||||
switch(msg)
|
|
||||||
{
|
|
||||||
case ACT_EXIT:
|
|
||||||
{
|
|
||||||
g_bCanQuit = true;
|
|
||||||
PostMessage(hWnd, WM_CLOSE, 0, 0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ACT_RESTORE:
|
|
||||||
{
|
|
||||||
/*************************************************/
|
|
||||||
/** user wants us to restore the HexChat window **/
|
|
||||||
/** and of autoaway is on, set as back ******** **/
|
|
||||||
/*************************************************/
|
|
||||||
SendMessage(g_hXchatWnd, WM_SYSCOMMAND, SC_RESTORE, 0);
|
|
||||||
SetForegroundWindow(hWnd);
|
|
||||||
|
|
||||||
if((!g_iIsActive) && (g_dwPrefs & (1<<PREF_AOM)))
|
|
||||||
{
|
|
||||||
hexchat_globally_back();
|
|
||||||
g_iIsActive = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ACT_SETTINGS:
|
|
||||||
{
|
|
||||||
ShowWindow(g_hPrefDlg, SW_SHOW);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ACT_AWAY:
|
|
||||||
{
|
|
||||||
hexchat_globally_away(g_szAway);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ACT_BACK:
|
|
||||||
{
|
|
||||||
hexchat_globally_back();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
if(msg > 0)
|
|
||||||
{
|
|
||||||
hexchat_set_context(ph, hexchat_find_server(msg-1));
|
|
||||||
|
|
||||||
if(!hexchat_get_info(ph, "away"))
|
|
||||||
{
|
|
||||||
hexchat_away(g_szAway);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hexchat_back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int CALLBACK PrefProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
switch(msg)
|
|
||||||
{
|
|
||||||
case WM_INITDIALOG:
|
|
||||||
{
|
|
||||||
TCITEM tci1;
|
|
||||||
TCITEM tci2;
|
|
||||||
TCITEM tci3;
|
|
||||||
TCITEM tci4;
|
|
||||||
|
|
||||||
tci1.mask = TCIF_TEXT;
|
|
||||||
tci1.pszText = _T("Settings");
|
|
||||||
tci1.cchTextMax = strlen("Settings");
|
|
||||||
SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 0, (LPARAM)&tci1);
|
|
||||||
|
|
||||||
tci2.mask = TCIF_TEXT;
|
|
||||||
tci2.pszText = _T("Alerts");
|
|
||||||
tci2.cchTextMax = strlen("Alerts");
|
|
||||||
SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 1, (LPARAM)&tci2);
|
|
||||||
|
|
||||||
tci3.mask = TCIF_TEXT;
|
|
||||||
tci3.pszText = _T("Events");
|
|
||||||
tci3.cchTextMax = strlen("Events");
|
|
||||||
SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 2, (LPARAM)&tci3);
|
|
||||||
|
|
||||||
tci4.mask = TCIF_TEXT;
|
|
||||||
tci4.pszText = _T("About");
|
|
||||||
tci4.cchTextMax = strlen("About");
|
|
||||||
SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 3, (LPARAM)&tci4);
|
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
|
||||||
/***********************************************************************************/
|
|
||||||
/***********************************************************************************/
|
|
||||||
|
|
||||||
g_hPrefTabSettings = CreateDialog((HINSTANCE)g_hInstance,
|
|
||||||
MAKEINTRESOURCE(IDD_SETTINGS),
|
|
||||||
hWnd,
|
|
||||||
(DLGPROC)SettingsProc);
|
|
||||||
SetDialog(g_hPrefTabSettings, IDD_SETTINGS);
|
|
||||||
|
|
||||||
g_hPrefTabAlerts = CreateDialog((HINSTANCE)g_hInstance,
|
|
||||||
MAKEINTRESOURCE(IDD_ALERTS),
|
|
||||||
hWnd,
|
|
||||||
(DLGPROC)AlertsProc);
|
|
||||||
SetDialog(g_hPrefTabAlerts, IDD_ALERTS);
|
|
||||||
|
|
||||||
g_hPrefTabEvents = CreateDialog((HINSTANCE)g_hInstance,
|
|
||||||
MAKEINTRESOURCE(IDD_EVENTS),
|
|
||||||
hWnd,
|
|
||||||
(DLGPROC)EventsProc);
|
|
||||||
SetDialog(g_hPrefTabEvents, IDD_EVENTS);
|
|
||||||
|
|
||||||
g_hPrefTabAbout = CreateDialog((HINSTANCE)g_hInstance,
|
|
||||||
MAKEINTRESOURCE(IDD_ABOUT),
|
|
||||||
hWnd,
|
|
||||||
(DLGPROC)AboutProc);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_SHOWWINDOW:
|
|
||||||
{
|
|
||||||
if(wparam)
|
|
||||||
{
|
|
||||||
SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_SETCURSEL, 0, 0);
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_SHOW);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_HIDE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_NOTIFY:
|
|
||||||
{
|
|
||||||
NMHDR *pData = (NMHDR *)lparam;
|
|
||||||
|
|
||||||
switch(pData->code)
|
|
||||||
{
|
|
||||||
case TCN_SELCHANGE:
|
|
||||||
{
|
|
||||||
switch(SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_GETCURSEL, 0, 0))
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_SHOW);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_HIDE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_SHOW);
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_HIDE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_SHOW);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_HIDE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_SHOW);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_CLOSE:
|
|
||||||
{
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_HIDE);
|
|
||||||
ShowWindow(hWnd, SW_HIDE);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_COMMAND:
|
|
||||||
{
|
|
||||||
switch(wparam)
|
|
||||||
{
|
|
||||||
case IDC_PREF_OK:
|
|
||||||
{
|
|
||||||
CheckPrefs(g_hPrefTabEvents, IDD_EVENTS);
|
|
||||||
CheckPrefs(g_hPrefTabSettings, IDD_SETTINGS);
|
|
||||||
CheckPrefs(g_hPrefTabAlerts, IDD_ALERTS);
|
|
||||||
|
|
||||||
SavePrefs(0);
|
|
||||||
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_HIDE);
|
|
||||||
ShowWindow(hWnd, SW_HIDE);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IDC_PREF_CANCEL:
|
|
||||||
{
|
|
||||||
ShowWindow(g_hPrefTabEvents, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabSettings, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAlerts, SW_HIDE);
|
|
||||||
ShowWindow(g_hPrefTabAbout, SW_HIDE);
|
|
||||||
ShowWindow(hWnd, SW_HIDE);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IDC_PREF_APPLY:
|
|
||||||
{
|
|
||||||
CheckPrefs(g_hPrefTabEvents, IDD_EVENTS);
|
|
||||||
CheckPrefs(g_hPrefTabSettings, IDD_SETTINGS);
|
|
||||||
CheckPrefs(g_hPrefTabAlerts, IDD_ALERTS);
|
|
||||||
|
|
||||||
SavePrefs(0);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_DESTROY:
|
|
||||||
{
|
|
||||||
SendMessage(g_hPrefTabEvents, WM_CLOSE, 0, 0);
|
|
||||||
SendMessage(g_hPrefTabSettings, WM_CLOSE, 0, 0);
|
|
||||||
SendMessage(g_hPrefTabAbout, WM_CLOSE, 0, 0);
|
|
||||||
SendMessage(g_hPrefTabAlerts, WM_CLOSE, 0, 0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************/
|
|
||||||
/****************************************************/
|
|
||||||
/****************************************************/
|
|
||||||
LRESULT CALLBACK AlertsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
switch(msg)
|
|
||||||
{
|
|
||||||
case WM_CLOSE:
|
|
||||||
{
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
return TRUE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_COMMAND:
|
|
||||||
{
|
|
||||||
switch(LOWORD(wparam))
|
|
||||||
{
|
|
||||||
case PREF_AMAE:
|
|
||||||
{
|
|
||||||
SetToggle(hWnd, PREF_OSBWM, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hWnd, PREF_UWIOB, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hWnd, PREF_KAOI, PREF_AMAE, TRUE);
|
|
||||||
|
|
||||||
if(IsDlgButtonChecked(hWnd, PREF_AMAE))
|
|
||||||
{
|
|
||||||
SetToggle(hWnd, IDC_ALERT_HOTKEY, PREF_UWIOB, TRUE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT, PREF_UWIOB, TRUE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_TIME, PREF_KAOI, FALSE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_TIME_TEXT, PREF_KAOI, FALSE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SetToggle(hWnd, IDC_ALERT_HOTKEY, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_TIME, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_TIME_TEXT, PREF_AMAE, TRUE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PREF_UWIOB:
|
|
||||||
{
|
|
||||||
SetToggle(hWnd, IDC_ALERT_HOTKEY, PREF_UWIOB, TRUE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT, PREF_UWIOB, TRUE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PREF_KAOI:
|
|
||||||
{
|
|
||||||
SetToggle(hWnd, IDC_ALERT_TIME, PREF_KAOI, FALSE);
|
|
||||||
SetToggle(hWnd, IDC_ALERT_TIME_TEXT, PREF_KAOI, FALSE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************/
|
|
||||||
/****************************************************/
|
|
||||||
/****************************************************/
|
|
||||||
LRESULT CALLBACK AboutProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
if(msg == WM_CLOSE)
|
|
||||||
{
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************/
|
|
||||||
/** Process the events for our event dialog **********/
|
|
||||||
/*****************************************************/
|
|
||||||
LRESULT CALLBACK EventsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
if(msg == WM_CLOSE)
|
|
||||||
{
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************/
|
|
||||||
/** Process the events for our settings dialog this **/
|
|
||||||
/** is alot more complicated because options are **/
|
|
||||||
/** enabled/disabled based on the state of others **/
|
|
||||||
/*****************************************************/
|
|
||||||
LRESULT CALLBACK SettingsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
if(msg == WM_CLOSE)
|
|
||||||
{
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************/
|
|
||||||
/** this is the hotkey message processing function **/
|
|
||||||
/** this window is always open and ready to be told **/
|
|
||||||
/** if someone has hit the hotkey, if they did, we **/
|
|
||||||
/** need to close out all of the tray alerts, for **/
|
|
||||||
/** this I wrote sdCloseAlerts, more info there **/
|
|
||||||
/*****************************************************/
|
|
||||||
LRESULT CALLBACK HotKeyProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
if(msg == WM_CLOSE)
|
|
||||||
{
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if(msg == WM_HOTKEY)
|
|
||||||
{
|
|
||||||
sdCloseAlerts();
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,37 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _H_CALLBACKS_H
|
|
||||||
#define _H_CALLBACKS_H
|
|
||||||
|
|
||||||
int event_cb (char *word[], void *userdata);
|
|
||||||
int command_cb (char *word[], char *word_eol[], void *userdata);
|
|
||||||
|
|
||||||
LRESULT CALLBACK WindowProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
BOOL CALLBACK EnumWindowsProc (HWND hWnd, LPARAM lParam);
|
|
||||||
LRESULT CALLBACK sdTrayProc (HWND hwnd, int msg);
|
|
||||||
|
|
||||||
LRESULT CALLBACK AlertProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
LRESULT CALLBACK HotKeyProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
LRESULT CALLBACK EventsProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
LRESULT CALLBACK AboutProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
LRESULT CALLBACK AlertsProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
LRESULT CALLBACK SettingsProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
int CALLBACK PrefProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,320 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 1998, 2005 Peter Zelezny, Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <vector>
|
|
||||||
#include <algorithm>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
#include "hexchat-plugin.h"
|
|
||||||
#include "hextray.h"
|
|
||||||
#include "resource.h"
|
|
||||||
#include "hexchat.h"
|
|
||||||
#include "utility.h"
|
|
||||||
|
|
||||||
// from util.c of HexChat source code ( slightly modified to fit HexTray Syntax )
|
|
||||||
char *hexchat_strip_color (char *text)
|
|
||||||
{
|
|
||||||
int nc = 0;
|
|
||||||
int i = 0;
|
|
||||||
int col = 0;
|
|
||||||
int len = strlen(text);
|
|
||||||
char *new_str = (char *)malloc(len + 2);
|
|
||||||
|
|
||||||
while (len > 0)
|
|
||||||
{
|
|
||||||
if ((col && isdigit(*text) && (nc < 2)) || (col && isdigit(*(text+1)) && (nc < 3) && (*text == ',')))
|
|
||||||
{
|
|
||||||
nc++;
|
|
||||||
|
|
||||||
if(*text == ',')
|
|
||||||
{
|
|
||||||
nc = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
col = 0;
|
|
||||||
|
|
||||||
switch (*text)
|
|
||||||
{
|
|
||||||
case '\003': /*ATTR_COLOR: */
|
|
||||||
{
|
|
||||||
col = 1;
|
|
||||||
nc = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case '\007': /*ATTR_BEEP: */
|
|
||||||
case '\017': /*ATTR_RESET: */
|
|
||||||
case '\026': /*ATTR_REVERSE: */
|
|
||||||
case '\002': /*ATTR_BOLD: */
|
|
||||||
case '\037': /*ATTR_UNDERLINE: */
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
new_str[i] = *text;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
text++;
|
|
||||||
len--;
|
|
||||||
}
|
|
||||||
|
|
||||||
new_str[i] = 0;
|
|
||||||
|
|
||||||
return new_str;
|
|
||||||
}
|
|
||||||
|
|
||||||
void check_special_chars (char *cmd)
|
|
||||||
{
|
|
||||||
int occur = 0;
|
|
||||||
int len = strlen (cmd);
|
|
||||||
int i = 0, j = 0;
|
|
||||||
char *buf;
|
|
||||||
|
|
||||||
if (!len)
|
|
||||||
return;
|
|
||||||
|
|
||||||
buf = (char *)malloc (len + 1);
|
|
||||||
|
|
||||||
if (buf)
|
|
||||||
{
|
|
||||||
while (cmd[j])
|
|
||||||
{
|
|
||||||
switch (cmd[j])
|
|
||||||
{
|
|
||||||
case '%':
|
|
||||||
{
|
|
||||||
occur++;
|
|
||||||
|
|
||||||
switch (cmd[j + 1])
|
|
||||||
{
|
|
||||||
case 'R':
|
|
||||||
buf[i] = '\026';
|
|
||||||
break;
|
|
||||||
case 'U':
|
|
||||||
buf[i] = '\037';
|
|
||||||
break;
|
|
||||||
case 'B':
|
|
||||||
buf[i] = '\002';
|
|
||||||
break;
|
|
||||||
case 'C':
|
|
||||||
buf[i] = '\003';
|
|
||||||
break;
|
|
||||||
case 'O':
|
|
||||||
buf[i] = '\017';
|
|
||||||
break;
|
|
||||||
case '%':
|
|
||||||
buf[i] = '%';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
buf[i] = '%';
|
|
||||||
j--;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
j++;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
buf[i] = cmd[j];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
j++;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
buf[i] = 0;
|
|
||||||
|
|
||||||
if (occur)
|
|
||||||
strcpy (cmd, buf);
|
|
||||||
|
|
||||||
free (buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void hexchat_globally_away(TCHAR *tszAway)
|
|
||||||
{
|
|
||||||
char szTemp[512];
|
|
||||||
char szAway[512];
|
|
||||||
|
|
||||||
ConvertString(tszAway, szAway, 512);
|
|
||||||
_snprintf(szTemp, 512, "ALLSERV AWAY %s\0", szAway);
|
|
||||||
check_special_chars(szTemp);
|
|
||||||
hexchat_exec(szTemp);
|
|
||||||
}
|
|
||||||
|
|
||||||
void hexchat_away(TCHAR *tszAway)
|
|
||||||
{
|
|
||||||
char szTemp[512];
|
|
||||||
char szAway[512];
|
|
||||||
|
|
||||||
ConvertString(tszAway, szAway, 512);
|
|
||||||
_snprintf(szTemp, 512, szAway);
|
|
||||||
check_special_chars(szTemp);
|
|
||||||
hexchat_commandf(ph, "AWAY %s\0", szTemp);
|
|
||||||
}
|
|
||||||
|
|
||||||
void hexchat_globally_back()
|
|
||||||
{
|
|
||||||
std::vector<int> xs;
|
|
||||||
std::vector<int>::iterator xsi;
|
|
||||||
hexchat_list *xl = hexchat_list_get(ph, "channels");
|
|
||||||
|
|
||||||
if(xl)
|
|
||||||
{
|
|
||||||
while(hexchat_list_next(ph, xl))
|
|
||||||
{
|
|
||||||
xsi = std::find(xs.begin(), xs.end(), hexchat_list_int(ph, xl, "id"));
|
|
||||||
|
|
||||||
if((xsi == xs.end()) &&
|
|
||||||
((strlen(hexchat_list_str(ph, xl, "server")) > 0) ||
|
|
||||||
(strlen(hexchat_list_str(ph, xl, "channel")) > 0)))
|
|
||||||
{
|
|
||||||
xs.push_back(hexchat_list_int(ph, xl, "id"));
|
|
||||||
hexchat_set_context(ph, (hexchat_context *)hexchat_list_str(ph, xl, "context"));
|
|
||||||
hexchat_back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hexchat_list_free(ph, xl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void hexchat_back()
|
|
||||||
{
|
|
||||||
if(hexchat_get_info(ph, "away"))
|
|
||||||
{
|
|
||||||
hexchat_command(ph, "BACK");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HMENU setServerMenu()
|
|
||||||
{
|
|
||||||
HMENU sTemp = CreateMenu();
|
|
||||||
TCHAR wszServer[128];
|
|
||||||
TCHAR wszNick[128];
|
|
||||||
TCHAR wszMenuEntry[256];
|
|
||||||
|
|
||||||
std::vector<int> xs;
|
|
||||||
std::vector<int>::iterator xsi;
|
|
||||||
hexchat_list *xl = hexchat_list_get(ph, "channels");
|
|
||||||
|
|
||||||
AppendMenu(sTemp, MF_STRING, ACT_AWAY, _T("Set Globally Away"));
|
|
||||||
AppendMenu(sTemp, MF_STRING, ACT_BACK, _T("Set Globally Back"));
|
|
||||||
AppendMenu(sTemp, MF_SEPARATOR, 0, NULL);
|
|
||||||
|
|
||||||
if(xl)
|
|
||||||
{
|
|
||||||
while(hexchat_list_next(ph, xl))
|
|
||||||
{
|
|
||||||
xsi = std::find(xs.begin(), xs.end(), hexchat_list_int(ph, xl, "id"));
|
|
||||||
|
|
||||||
if( (xsi == xs.end()) &&
|
|
||||||
((strlen(hexchat_list_str(ph, xl, "server")) > 0) ||
|
|
||||||
(strlen(hexchat_list_str(ph, xl, "channel")) > 0)))
|
|
||||||
{
|
|
||||||
hexchat_set_context(ph, (hexchat_context *)hexchat_list_str(ph, xl, "context"));
|
|
||||||
xs.push_back(hexchat_list_int(ph, xl, "id"));
|
|
||||||
|
|
||||||
char *network = _strdup(hexchat_list_str(ph, xl, "network"));
|
|
||||||
char *server = _strdup(hexchat_list_str(ph, xl, "server"));
|
|
||||||
char *nick = _strdup(hexchat_get_info(ph, "nick"));
|
|
||||||
|
|
||||||
if(network != NULL)
|
|
||||||
{
|
|
||||||
ConvertString(network, wszServer, 128);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ConvertString(server, wszServer, 128);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(server != NULL)
|
|
||||||
{
|
|
||||||
ConvertString(nick, wszNick, 128);
|
|
||||||
_sntprintf(wszMenuEntry, 256, _T("%s @ %s\0"), wszNick, wszServer);
|
|
||||||
|
|
||||||
if(!hexchat_get_info(ph, "away"))
|
|
||||||
{
|
|
||||||
AppendMenu(sTemp, MF_STRING, (hexchat_list_int(ph, xl, "id") + 1), wszMenuEntry);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppendMenu(sTemp, (MF_CHECKED | MF_STRING), (hexchat_list_int(ph, xl, "id") + 1), wszMenuEntry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
free(network);
|
|
||||||
free(server);
|
|
||||||
free(nick);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hexchat_list_free(ph, xl);
|
|
||||||
}
|
|
||||||
|
|
||||||
return sTemp;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct _hexchat_context *hexchat_find_server(int find_id)
|
|
||||||
{
|
|
||||||
hexchat_context *xc;
|
|
||||||
hexchat_list *xl = hexchat_list_get(ph, "channels");
|
|
||||||
int id;
|
|
||||||
|
|
||||||
if(!xl)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
while(hexchat_list_next(ph, xl))
|
|
||||||
{
|
|
||||||
id = hexchat_list_int(ph, xl, "id");
|
|
||||||
|
|
||||||
if(id == -1)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
else if(id == find_id)
|
|
||||||
{
|
|
||||||
xc = (hexchat_context *)hexchat_list_str(ph, xl, "context");
|
|
||||||
|
|
||||||
hexchat_list_free(ph, xl);
|
|
||||||
|
|
||||||
return xc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hexchat_list_free(ph, xl);
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void hexchat_exec(char *command)
|
|
||||||
{
|
|
||||||
hexchat_set_context(ph, hexchat_find_context(ph, NULL, NULL));
|
|
||||||
hexchat_command(ph, command);
|
|
||||||
}
|
|
@@ -1,32 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _H_XCHAT_H
|
|
||||||
#define _H_XCHAT_H
|
|
||||||
|
|
||||||
void hexchat_exec (char *);
|
|
||||||
char *hexchat_strip_color (char *);
|
|
||||||
void hexchat_parse (char *);
|
|
||||||
struct _hexchat_context *hexchat_find_server (int);
|
|
||||||
void hexchat_globally_away (TCHAR *);
|
|
||||||
void hexchat_away (TCHAR *);
|
|
||||||
void hexchat_globally_back ();
|
|
||||||
void hexchat_back ();
|
|
||||||
HMENU setServerMenu ();
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,246 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define _WIN32_IE 0x0601
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <list>
|
|
||||||
#include <string>
|
|
||||||
#include <shobjidl.h>
|
|
||||||
|
|
||||||
#include "hexchat-plugin.h"
|
|
||||||
#include "resource.h"
|
|
||||||
#include "callbacks.h"
|
|
||||||
#include "utility.h"
|
|
||||||
#include "hextray.h"
|
|
||||||
#include "sdTray.h"
|
|
||||||
#include "sdAlerts.h"
|
|
||||||
|
|
||||||
/*****************************************************/
|
|
||||||
/**** Don't want to pollute the namespace do we? *****/
|
|
||||||
/*****************************************************/
|
|
||||||
std::list<hexchat_hook *> g_vHooks;
|
|
||||||
|
|
||||||
/*****************************************************/
|
|
||||||
/************ Global Identifiers *********************/
|
|
||||||
/*****************************************************/
|
|
||||||
WNDPROC g_hOldProc;
|
|
||||||
hexchat_plugin *ph;
|
|
||||||
|
|
||||||
/*****************************************************/
|
|
||||||
/***************** Resources *************************/
|
|
||||||
/*****************************************************/
|
|
||||||
HWND g_hXchatWnd;
|
|
||||||
HWND g_hHotkeyWnd;
|
|
||||||
HWND g_hPrefDlg;
|
|
||||||
HMENU g_hTrayMenu;
|
|
||||||
HICON g_hIcons[24];
|
|
||||||
HANDLE g_hInstance;
|
|
||||||
/*****************************************************/
|
|
||||||
/***************** Preferences ***********************/
|
|
||||||
/*****************************************************/
|
|
||||||
unsigned int g_dwPrefs;
|
|
||||||
TCHAR g_szAway[512];
|
|
||||||
int g_iTime;
|
|
||||||
|
|
||||||
|
|
||||||
BOOL WINAPI DllMain(HANDLE hModule, DWORD fdwReason, LPVOID lpVoid)
|
|
||||||
{
|
|
||||||
if((fdwReason == DLL_PROCESS_ATTACH) || (fdwReason == DLL_THREAD_ATTACH))
|
|
||||||
{
|
|
||||||
g_hInstance = hModule;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int hexchat_plugin_init(hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
|
|
||||||
{
|
|
||||||
ph = plugin_handle;
|
|
||||||
|
|
||||||
*plugin_name = "HexTray";
|
|
||||||
*plugin_desc = "Minimize HexChat to the Windows system tray";
|
|
||||||
*plugin_version = "1.3.0";
|
|
||||||
|
|
||||||
char buffer[256];
|
|
||||||
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/************************* Initialize our preferences if they don't exist yet **********************************************/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
|
|
||||||
if (hexchat_pluginpref_get_int (ph, "settings") == -1)
|
|
||||||
{
|
|
||||||
hexchat_pluginpref_set_int (ph, "settings", HT_DEF_SET);
|
|
||||||
}
|
|
||||||
if (hexchat_pluginpref_get_int (ph, "aot") == -1)
|
|
||||||
{
|
|
||||||
hexchat_pluginpref_set_int (ph, "aot", HT_DEF_AOT);
|
|
||||||
}
|
|
||||||
if (hexchat_pluginpref_get_int (ph, "key") == -1)
|
|
||||||
{
|
|
||||||
hexchat_pluginpref_set_int (ph, "key", HT_DEF_KEY);
|
|
||||||
}
|
|
||||||
if (hexchat_pluginpref_get_int (ph, "mod") == -1)
|
|
||||||
{
|
|
||||||
hexchat_pluginpref_set_int (ph, "mod", HT_DEF_MOD);
|
|
||||||
}
|
|
||||||
if (hexchat_pluginpref_get_str (ph, "away", buffer) == 0)
|
|
||||||
{
|
|
||||||
hexchat_pluginpref_set_str (ph, "away", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/************************* Load our preferences ****************************************************************************/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
LoadPrefs();
|
|
||||||
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/************************* Finds the HexChat window and saves it for later use *********************************************/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
g_hXchatWnd = (HWND)hexchat_get_info(ph, "win_ptr");
|
|
||||||
|
|
||||||
if(g_hXchatWnd == NULL)
|
|
||||||
{
|
|
||||||
EnumThreadWindows(GetCurrentThreadId(), EnumWindowsProc, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_hOldProc = (WNDPROC)GetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC, (LONG_PTR)WindowProc);
|
|
||||||
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/************************* Grab the HexChat Icon, Load our menu, create the window to receive the hotkey messages *********/
|
|
||||||
/************************* and register the windows message so we know if explorer crashes ***********/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
g_hTrayMenu = GetSubMenu(LoadMenu((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDR_TRAY_MENU)), 0);
|
|
||||||
g_hHotkeyWnd = CreateDialog((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDD_ALERT), NULL, (DLGPROC)HotKeyProc);
|
|
||||||
g_hPrefDlg = CreateDialog((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDD_PREF), g_hXchatWnd, (DLGPROC)PrefProc);
|
|
||||||
|
|
||||||
g_hIcons[0] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_XCHAT), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
g_hIcons[2] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_HIGHLIGHT), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
g_hIcons[5] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_BANNED), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
g_hIcons[6] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_KICKED), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
g_hIcons[8] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_PMSG), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
g_hIcons[10]= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_SNOTICE), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
g_hIcons[11]= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_DISCONNECTED), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
g_hIcons[22] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_CHANMSG), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
|
|
||||||
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/************************* Add our icon to the tray ************************************************************************/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
char szVersion[64];
|
|
||||||
_snprintf(szVersion, 64, "HexChat %s", hexchat_get_info(ph, "version"));
|
|
||||||
AddIcon(g_hXchatWnd, 1, g_hIcons[0], szVersion, (NIF_ICON | NIF_MESSAGE | NIF_TIP), WM_TRAYMSG);
|
|
||||||
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
if(g_dwPrefs & (1<<PREF_DNSIT))
|
|
||||||
{
|
|
||||||
DWORD dwStyle;
|
|
||||||
dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);
|
|
||||||
dwStyle |= (1<<WS_CHILD);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, (LONG_PTR)g_hHotkeyWnd);
|
|
||||||
}
|
|
||||||
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
/************************* Set our hooks and save them for later so we can unhook them *************************************/
|
|
||||||
/***************************************************************************************************************************/
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Channel Msg Hilight", HEXCHAT_PRI_NORM, event_cb, (void *)CHAN_HILIGHT));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Channel Message", HEXCHAT_PRI_NORM, event_cb, (void *)CHAN_MESSAGE));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Topic Change", HEXCHAT_PRI_NORM, event_cb, (void *)CHAN_TOPIC_CHANGE));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Channel Action Hilight", HEXCHAT_PRI_NORM, event_cb, (void *)CHAN_HILIGHT));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Channel INVITE", HEXCHAT_PRI_NORM, event_cb, (void *)CHAN_INVITE));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "You Kicked", HEXCHAT_PRI_NORM, event_cb, (void *)CHAN_KICKED));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Banned", HEXCHAT_PRI_NORM, event_cb, (void *)CHAN_BANNED));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "CTCP Generic", HEXCHAT_PRI_NORM, event_cb, (void *)CTCP_GENERIC));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Private Message", HEXCHAT_PRI_NORM, event_cb, (void *)PMSG_RECEIVE));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Private Message to Dialog", HEXCHAT_PRI_NORM, event_cb, (void *)PMSG_RECEIVE));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Disconnected", HEXCHAT_PRI_NORM, event_cb, (void *)SERV_DISCONNECT));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Killed", HEXCHAT_PRI_NORM, event_cb, (void *)SERV_KILLED));
|
|
||||||
g_vHooks.push_back(hexchat_hook_print(ph, "Notice", HEXCHAT_PRI_NORM, event_cb, (void *)SERV_NOTICE));
|
|
||||||
g_vHooks.push_back(hexchat_hook_command(ph, "tray_alert", HEXCHAT_PRI_NORM, command_cb, "Create an Alert", NULL));
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int hexchat_plugin_deinit(hexchat_plugin *plugin_handle)
|
|
||||||
{
|
|
||||||
/******************************************/
|
|
||||||
/****** Remove the Icon from the tray *****/
|
|
||||||
/******************************************/
|
|
||||||
StopBlink(g_hXchatWnd, 1, g_hIcons[0]);
|
|
||||||
RemoveIcon(g_hXchatWnd, 1);
|
|
||||||
|
|
||||||
/*******************************************/
|
|
||||||
/*******************************************/
|
|
||||||
/*******************************************/
|
|
||||||
if(g_dwPrefs & (1<<PREF_DNSIT))
|
|
||||||
{
|
|
||||||
DWORD dwStyle;
|
|
||||||
dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);
|
|
||||||
dwStyle &= ~(1<<WS_CHILD);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************/
|
|
||||||
/****** Unload our resources **************/
|
|
||||||
/******************************************/
|
|
||||||
DestroyMenu(g_hTrayMenu);
|
|
||||||
|
|
||||||
for(int i = 0; i <= 11; i++)
|
|
||||||
{
|
|
||||||
DestroyIcon(g_hIcons[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************/
|
|
||||||
/****** Remove our window hook ************/
|
|
||||||
/******************************************/
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC, (LONG_PTR)g_hOldProc);
|
|
||||||
|
|
||||||
/******************************************/
|
|
||||||
/****** Remove our hotkey, and destroy ****/
|
|
||||||
/****** the window that receives its ****/
|
|
||||||
/****** messages ****/
|
|
||||||
/******************************************/
|
|
||||||
UnregisterHotKey(g_hHotkeyWnd, 1);
|
|
||||||
DestroyWindow(g_hHotkeyWnd);
|
|
||||||
DestroyWindow(g_hPrefDlg);
|
|
||||||
|
|
||||||
/******************************************/
|
|
||||||
/************* Clean up Isle 7 ************/
|
|
||||||
/******************************************/
|
|
||||||
if(sdAlertNum())
|
|
||||||
{
|
|
||||||
sdCloseAlerts();
|
|
||||||
}
|
|
||||||
/******************************************/
|
|
||||||
/****** remove our hexchat_hook_*s **********/
|
|
||||||
/******************************************/
|
|
||||||
while(!g_vHooks.empty())
|
|
||||||
{
|
|
||||||
if(g_vHooks.back() != NULL)
|
|
||||||
{
|
|
||||||
hexchat_unhook(ph, g_vHooks.back());
|
|
||||||
}
|
|
||||||
g_vHooks.pop_back();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
EXPORTS
|
|
||||||
hexchat_plugin_init
|
|
||||||
hexchat_plugin_deinit
|
|
@@ -1,83 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _XTRAY_H
|
|
||||||
#define _XTRAY_H
|
|
||||||
|
|
||||||
/******************** Default settings*****************/
|
|
||||||
#define HT_DEF_SET 13814
|
|
||||||
#define HT_DEF_AOT 5
|
|
||||||
#define HT_DEF_KEY 84
|
|
||||||
#define HT_DEF_MOD 6
|
|
||||||
|
|
||||||
/******************** Globals *************************/
|
|
||||||
extern HWND g_hXchatWnd;
|
|
||||||
extern HWND g_hHotkeyWnd;
|
|
||||||
extern HWND g_hPrefDlg;
|
|
||||||
extern HMENU g_hTrayMenu;
|
|
||||||
extern HICON g_hIcons[24];
|
|
||||||
extern HANDLE g_hInstance;
|
|
||||||
extern unsigned int g_dwPrefs;
|
|
||||||
extern TCHAR g_szAway[512];
|
|
||||||
extern int g_iTime;
|
|
||||||
extern WNDPROC g_hOldProc;
|
|
||||||
extern struct _hexchat_plugin *ph;
|
|
||||||
/******************************************************/
|
|
||||||
|
|
||||||
/******************** Messages ************************/
|
|
||||||
#define WM_TRAYMSG WM_APP
|
|
||||||
/******************************************************/
|
|
||||||
|
|
||||||
/********************* Events *************************/
|
|
||||||
#define CHAN_HILIGHT 1
|
|
||||||
#define CHAN_INVITE 2
|
|
||||||
#define CHAN_TOPIC_CHANGE 3
|
|
||||||
#define CHAN_BANNED 4
|
|
||||||
#define CHAN_KICKED 5
|
|
||||||
|
|
||||||
#define CTCP_GENERIC 6
|
|
||||||
#define PMSG_RECEIVE 7
|
|
||||||
|
|
||||||
#define SERV_KILLED 8
|
|
||||||
#define SERV_NOTICE 9
|
|
||||||
#define SERV_DISCONNECT 10
|
|
||||||
|
|
||||||
/* new events */
|
|
||||||
#define CHAN_MESSAGE 21
|
|
||||||
|
|
||||||
#define PREF_AOM 11 // away on minimize
|
|
||||||
#define PREF_TOT 12 // Tray on Taskbar
|
|
||||||
#define PREF_AMAE 13 // alert me about events
|
|
||||||
#define PREF_OSBWM 14 // Only Show Balloon When Minimized
|
|
||||||
#define PREF_UWIOB 15 // Use Window Instead of Balloon
|
|
||||||
#define PREF_KAOI 16 // Keep alerts open indefinitely
|
|
||||||
#define PREF_MIOC 17 // Minimize instead of close
|
|
||||||
#define PREF_BLINK 18 // blink icon
|
|
||||||
#define PREF_CICO 19 // change icon - not implemented
|
|
||||||
#define PREF_DNSIT 20 // Do not show in taskbar
|
|
||||||
/******************************************************/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN64
|
|
||||||
/* use replacement with the same value, and use SetWindowLongPtr instead
|
|
||||||
of SetWindowLong. more info:
|
|
||||||
|
|
||||||
http://msdn.microsoft.com/en-us/library/ms633591.aspx
|
|
||||||
http://msdn.microsoft.com/en-us/library/ms644898.aspx */
|
|
||||||
#define GWL_HWNDPARENT GWLP_HWNDPARENT
|
|
||||||
#endif
|
|
@@ -1,103 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files\bitmaps">
|
|
||||||
<UniqueIdentifier>{448b49a5-e68b-451e-bfbc-0855da024b2e}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files\icons">
|
|
||||||
<UniqueIdentifier>{8345128a-0635-43d6-9115-a85ad9c77ee2}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="hextray.def">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="bitmaps\sd.bmp">
|
|
||||||
<Filter>Resource Files\bitmaps</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\ban.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\disconnect.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\highlight.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\kick.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\message.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\sd.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\notice.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="icons\hexchat.ico">
|
|
||||||
<Filter>Resource Files\icons</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="resource.rc">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="callbacks.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="sdAlerts.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="sdTray.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="utility.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="hexchat.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="hextray.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="callbacks.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="resource.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="sdAlerts.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="sdTray.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="utility.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="hexchat.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="hextray.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 24 KiB |
@@ -1,47 +0,0 @@
|
|||||||
//{{NO_DEPENDENCIES}}
|
|
||||||
// Microsoft Visual C++ generated include file.
|
|
||||||
// Used by resource.rc
|
|
||||||
//
|
|
||||||
#define IDD_ALERTS 104
|
|
||||||
#define IDD_EVENTS 105
|
|
||||||
#define IDD_SETTINGS 106
|
|
||||||
#define IDD_ALERT 107
|
|
||||||
#define IDD_PREF 108
|
|
||||||
#define IDD_ABOUT 109
|
|
||||||
#define IDR_TRAY_MENU 110
|
|
||||||
#define ICO_XCHAT 111
|
|
||||||
#define ICO_BANNED 112
|
|
||||||
#define ICO_CHANMSG 113
|
|
||||||
#define ICO_DISCONNECTED 114
|
|
||||||
#define ICO_HIGHLIGHT 115
|
|
||||||
#define ICO_KICKED 116
|
|
||||||
#define ICO_PMSG 117
|
|
||||||
#define ICO_SNOTICE 118
|
|
||||||
#define IDB_SD_LOGO 119
|
|
||||||
#define IDC_PREF_OK 1014
|
|
||||||
#define IDC_PREF_CANCEL 1015
|
|
||||||
#define IDC_PREF_APPLY 1016
|
|
||||||
#define IDC_AWAY_MSG 1017
|
|
||||||
#define IDC_ALERT_TIME 1018
|
|
||||||
#define IDC_TAB_CONTROL 1019
|
|
||||||
#define IDC_ALERT_HOTKEY 1020
|
|
||||||
#define IDC_ALERT_MSG 1021
|
|
||||||
#define IDC_ALERT_HOTKEY_TEXT 1022
|
|
||||||
#define IDC_ALERT_TIME_TEXT 1023
|
|
||||||
#define ACT_EXIT 40001
|
|
||||||
#define ACT_SETTINGS 40002
|
|
||||||
#define ACT_AWAY 40003
|
|
||||||
#define ACT_BACK 40004
|
|
||||||
#define ACT_RESTORE 40005
|
|
||||||
#define IDC_STATIC -1
|
|
||||||
|
|
||||||
// Next default values for new objects
|
|
||||||
//
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 120
|
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40006
|
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1024
|
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
|
||||||
#endif
|
|
||||||
#endif
|
|
@@ -1,309 +0,0 @@
|
|||||||
// Microsoft Visual C++ generated resource script.
|
|
||||||
//
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
|
||||||
//
|
|
||||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
|
||||||
#include "windows.h"
|
|
||||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// English (U.S.) resources
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Dialog
|
|
||||||
//
|
|
||||||
|
|
||||||
IDD_EVENTS DIALOGEX 8, 20, 216, 143
|
|
||||||
STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CHILD
|
|
||||||
FONT 8, "Tahoma", 0, 0, 0x0
|
|
||||||
BEGIN
|
|
||||||
GROUPBOX "HexChat Events",IDC_STATIC,5,5,205,77
|
|
||||||
CONTROL "Banned",4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,18,49,10
|
|
||||||
CONTROL "Kicked",5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,32,49,10
|
|
||||||
CONTROL "Killed",8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,46,49,10
|
|
||||||
CONTROL "Disconnect",10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,60,49,10
|
|
||||||
CONTROL "Private Message",7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,18,69,10
|
|
||||||
CONTROL "Channel Message",21,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,32,69,10
|
|
||||||
CONTROL "Highlight",1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,46,69,10
|
|
||||||
CONTROL "CTCP",6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,60,69,10
|
|
||||||
CONTROL "Topic Change",3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,18,55,10
|
|
||||||
CONTROL "Server Notice",9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,32,55,10
|
|
||||||
CONTROL "Invite",2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,46,55,10
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_SETTINGS DIALOGEX 8, 20, 216, 143
|
|
||||||
STYLE DS_SETFONT | WS_CHILD
|
|
||||||
FONT 8, "Tahoma", 0, 0, 0x0
|
|
||||||
BEGIN
|
|
||||||
GROUPBOX "Options",IDC_STATIC,5,5,205,135
|
|
||||||
CONTROL "Auto away on minimize",11,"Button",BS_AUTOCHECKBOX |
|
|
||||||
WS_TABSTOP,16,60,100,10
|
|
||||||
CONTROL "Minimize HexChat to the system tray",12,"Button",
|
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,16,18,133,10
|
|
||||||
CONTROL "Minimize to the tray instead of closing",17,"Button",
|
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,16,32,174,9
|
|
||||||
EDITTEXT IDC_AWAY_MSG,33,86,169,50,ES_AUTOHSCROLL
|
|
||||||
LTEXT "Away Msg:",IDC_STATIC,27,72,35,8
|
|
||||||
CONTROL "Remove HexChat from the taskbar (only show in tray)",
|
|
||||||
20,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,46,191,9
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_ALERT DIALOGEX 0, 0, 151, 28
|
|
||||||
STYLE DS_LOCALEDIT | DS_SETFONT | DS_NOIDLEMSG | DS_CENTER | WS_CAPTION |
|
|
||||||
WS_SYSMENU
|
|
||||||
EXSTYLE WS_EX_NOPARENTNOTIFY | WS_EX_ACCEPTFILES | WS_EX_TOOLWINDOW
|
|
||||||
CAPTION "Event Name"
|
|
||||||
FONT 8, "Tahoma", 0, 0, 0x1
|
|
||||||
BEGIN
|
|
||||||
LTEXT "Event Text",IDC_ALERT_MSG,3,0,147,27
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_PREF DIALOGEX 0, 0, 233, 190
|
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION |
|
|
||||||
WS_SYSMENU
|
|
||||||
CAPTION "HexTray Preferences"
|
|
||||||
FONT 8, "Tahoma", 0, 0, 0x0
|
|
||||||
BEGIN
|
|
||||||
DEFPUSHBUTTON "Ok",IDC_PREF_OK,57,173,50,14
|
|
||||||
PUSHBUTTON "Cancel",IDC_PREF_CANCEL,115,173,50,14
|
|
||||||
PUSHBUTTON "Apply",IDC_PREF_APPLY,175,173,50,14
|
|
||||||
CONTROL "Tab1",IDC_TAB_CONTROL,"SysTabControl32",0x0,7,7,218,159
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_ABOUT DIALOGEX 8, 20, 216, 143
|
|
||||||
STYLE DS_SETFONT | WS_CHILD
|
|
||||||
FONT 8, "Tahoma", 0, 0, 0x0
|
|
||||||
BEGIN
|
|
||||||
CONTROL 119,IDC_STATIC,"Static",SS_BITMAP | SS_SUNKEN |
|
|
||||||
WS_BORDER,3,6,88,81
|
|
||||||
CTEXT "HexTray\r\nBy: Michael Hotaling\r\n www.SinisterDevelopments.com",
|
|
||||||
IDC_STATIC,95,33,118,30
|
|
||||||
LTEXT "Folken\r\nBasket\r\nDonatzsky\r\nDaemon404",IDC_STATIC,
|
|
||||||
15,103,64,33
|
|
||||||
GROUPBOX "Special Thanks To:",IDC_STATIC,3,91,89,50
|
|
||||||
GROUPBOX "Version Information:",IDC_STATIC,101,92,109,49
|
|
||||||
LTEXT "1.3.0",IDC_STATIC,170,105,33,8,0,WS_EX_RIGHT
|
|
||||||
LTEXT "Compiled In: ",IDC_STATIC,110,117,54,8
|
|
||||||
LTEXT "2012",IDC_STATIC,170,117,33,8,0,WS_EX_RIGHT
|
|
||||||
LTEXT "Version Number:",IDC_STATIC,110,105,54,8
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_ALERTS DIALOGEX 8, 20, 216, 143
|
|
||||||
STYLE DS_SETFONT | WS_CHILD
|
|
||||||
FONT 8, "Tahoma", 0, 0, 0x0
|
|
||||||
BEGIN
|
|
||||||
GROUPBOX "Alerts",IDC_STATIC,5,5,205,117
|
|
||||||
CONTROL "Only show alerts while minimized",14,"Button",
|
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,27,46,117,10
|
|
||||||
CONTROL "Use tray alerts to notify me about events",13,"Button",
|
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,16,32,152,10
|
|
||||||
CONTROL "Use window instead of balloons",15,"Button",
|
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,27,60,141,11
|
|
||||||
EDITTEXT IDC_ALERT_TIME,137,101,61,12,ES_AUTOHSCROLL | ES_NUMBER,
|
|
||||||
WS_EX_RIGHT
|
|
||||||
LTEXT "Show alert for x seconds:",IDC_ALERT_TIME_TEXT,40,103,
|
|
||||||
83,9
|
|
||||||
CONTROL "Alert Hotkey",IDC_ALERT_HOTKEY,"msctls_hotkey32",
|
|
||||||
WS_BORDER | WS_TABSTOP,137,74,61,13
|
|
||||||
LTEXT "Close all alerts hotkey:",IDC_ALERT_HOTKEY_TEXT,39,75,
|
|
||||||
76,10
|
|
||||||
CONTROL "Leave alerts open indefinitely",16,"Button",
|
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,27,88,115,11
|
|
||||||
CONTROL "Blink Icon to alert me about events",18,"Button",
|
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,16,18,127,10
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// DESIGNINFO
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
GUIDELINES DESIGNINFO
|
|
||||||
BEGIN
|
|
||||||
IDD_EVENTS, DIALOG
|
|
||||||
BEGIN
|
|
||||||
BOTTOMMARGIN, 56
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_SETTINGS, DIALOG
|
|
||||||
BEGIN
|
|
||||||
BOTTOMMARGIN, 66
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_ALERT, DIALOG
|
|
||||||
BEGIN
|
|
||||||
RIGHTMARGIN, 150
|
|
||||||
BOTTOMMARGIN, 26
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_PREF, DIALOG
|
|
||||||
BEGIN
|
|
||||||
LEFTMARGIN, 7
|
|
||||||
RIGHTMARGIN, 232
|
|
||||||
TOPMARGIN, 7
|
|
||||||
BOTTOMMARGIN, 176
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_ABOUT, DIALOG
|
|
||||||
BEGIN
|
|
||||||
LEFTMARGIN, 7
|
|
||||||
RIGHTMARGIN, 209
|
|
||||||
TOPMARGIN, 7
|
|
||||||
BOTTOMMARGIN, 136
|
|
||||||
END
|
|
||||||
|
|
||||||
IDD_ALERTS, DIALOG
|
|
||||||
BEGIN
|
|
||||||
LEFTMARGIN, 7
|
|
||||||
RIGHTMARGIN, 208
|
|
||||||
TOPMARGIN, 7
|
|
||||||
BOTTOMMARGIN, 136
|
|
||||||
END
|
|
||||||
END
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// TEXTINCLUDE
|
|
||||||
//
|
|
||||||
|
|
||||||
1 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"resource.h\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
2 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
|
||||||
"#include ""windows.h""\r\n"
|
|
||||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
3 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"hextray.h\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
4 TEXTINCLUDE
|
|
||||||
BEGIN
|
|
||||||
"\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Version
|
|
||||||
//
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
|
||||||
FILEVERSION 1,3,0,0
|
|
||||||
PRODUCTVERSION 1,3,0,0
|
|
||||||
FILEFLAGSMASK 0x3fL
|
|
||||||
#ifdef _DEBUG
|
|
||||||
FILEFLAGS 0x1L
|
|
||||||
#else
|
|
||||||
FILEFLAGS 0x0L
|
|
||||||
#endif
|
|
||||||
FILEOS 0x40004L
|
|
||||||
FILETYPE 0x2L
|
|
||||||
FILESUBTYPE 0x0L
|
|
||||||
BEGIN
|
|
||||||
BLOCK "StringFileInfo"
|
|
||||||
BEGIN
|
|
||||||
BLOCK "040904b0"
|
|
||||||
BEGIN
|
|
||||||
VALUE "CompanyName", "SinisterDevelopments"
|
|
||||||
VALUE "FileDescription", "HexTray"
|
|
||||||
VALUE "FileVersion", "1,3,0,0"
|
|
||||||
VALUE "InternalName", "HexTray"
|
|
||||||
VALUE "LegalCopyright", "Copyright <20> 2005"
|
|
||||||
VALUE "OriginalFilename", "hchextray.dll"
|
|
||||||
VALUE "ProductName", "HexTray - HexChat Win32 System Tray Plugin"
|
|
||||||
VALUE "ProductVersion", "1,3,0,0"
|
|
||||||
END
|
|
||||||
END
|
|
||||||
BLOCK "VarFileInfo"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Translation", 0x409, 1200
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Menu
|
|
||||||
//
|
|
||||||
|
|
||||||
IDR_TRAY_MENU MENU
|
|
||||||
BEGIN
|
|
||||||
POPUP "TRAY"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "Restore", ACT_RESTORE
|
|
||||||
MENUITEM SEPARATOR
|
|
||||||
MENUITEM "Away", 65535
|
|
||||||
MENUITEM "Settings", ACT_SETTINGS
|
|
||||||
MENUITEM SEPARATOR
|
|
||||||
MENUITEM "Exit", ACT_EXIT
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Icon
|
|
||||||
//
|
|
||||||
|
|
||||||
// Icon with lowest ID value placed first to ensure application icon
|
|
||||||
// remains consistent on all systems.
|
|
||||||
ICO_XCHAT ICON "icons\\hexchat.ico"
|
|
||||||
ICO_BANNED ICON "icons\\ban.ico"
|
|
||||||
ICO_CHANMSG ICON "icons\\message.ico"
|
|
||||||
ICO_HIGHLIGHT ICON "icons\\highlight.ico"
|
|
||||||
ICO_KICKED ICON "icons\\kick.ico"
|
|
||||||
ICO_PMSG ICON "icons\\message.ico"
|
|
||||||
ICO_SNOTICE ICON "icons\\notice.ico"
|
|
||||||
ICO_DISCONNECTED ICON "icons\\disconnect.ico"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Bitmap
|
|
||||||
//
|
|
||||||
|
|
||||||
IDB_SD_LOGO BITMAP "bitmaps\\sd.bmp"
|
|
||||||
#endif // English (U.S.) resources
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
|
||||||
//
|
|
||||||
hextray.h
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#endif // not APSTUDIO_INVOKED
|
|
||||||
|
|
@@ -1,109 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <winuser.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "utility.h"
|
|
||||||
#include "resource.h"
|
|
||||||
#include "sdAlerts.h"
|
|
||||||
|
|
||||||
int g_iAlerts = 0;
|
|
||||||
|
|
||||||
void sdSystemAlert(HINSTANCE hModule, UINT uiDialog, char *szMsg, char *szName, unsigned int iTime)
|
|
||||||
{
|
|
||||||
TCHAR wszMsg[256];
|
|
||||||
TCHAR wszName[64];
|
|
||||||
|
|
||||||
HWND hDialog;
|
|
||||||
RECT rcWorkArea, rcDlg;
|
|
||||||
int ixPos, iyPos;
|
|
||||||
int iNumPerCol;
|
|
||||||
|
|
||||||
hDialog = CreateDialog(hModule, MAKEINTRESOURCE(uiDialog), NULL, (DLGPROC)sdAlertProc);
|
|
||||||
|
|
||||||
SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
|
|
||||||
GetWindowRect(hDialog, &rcDlg);
|
|
||||||
|
|
||||||
iNumPerCol = ((rcWorkArea.bottom - rcWorkArea.top) / (rcDlg.bottom - rcDlg.top));
|
|
||||||
ixPos = rcWorkArea.right - (rcDlg.right - rcDlg.left) + 1;
|
|
||||||
iyPos = rcWorkArea.bottom - (rcDlg.bottom - rcDlg.top);
|
|
||||||
|
|
||||||
if((g_iAlerts >= iNumPerCol) && (iNumPerCol > 0))
|
|
||||||
{
|
|
||||||
ixPos -= ((g_iAlerts / iNumPerCol) * (rcDlg.right - rcDlg.left));
|
|
||||||
iyPos -= ((g_iAlerts - (iNumPerCol * (g_iAlerts / iNumPerCol))) * (rcDlg.bottom - rcDlg.top));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
iyPos -= (g_iAlerts * (rcDlg.bottom - rcDlg.top));
|
|
||||||
}
|
|
||||||
SetWindowPos(hDialog, HWND_TOPMOST, ixPos, iyPos, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);
|
|
||||||
|
|
||||||
ConvertString(szName, wszName, 64);
|
|
||||||
ConvertString(szMsg, wszMsg, 256);
|
|
||||||
|
|
||||||
SetWindowText(hDialog, wszName);
|
|
||||||
SetDlgItemText(hDialog, IDC_ALERT_MSG, wszMsg);
|
|
||||||
ShowWindow(hDialog, SW_SHOWNA);
|
|
||||||
|
|
||||||
if(iTime > 0)
|
|
||||||
{
|
|
||||||
SetTimer(hDialog, 1, iTime, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_iAlerts++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void sdCloseAlerts()
|
|
||||||
{
|
|
||||||
PostMessage(HWND_BROADCAST, RegisterWindowMessage(TEXT("xTray:CloseAllAlertWindows")), 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
LRESULT CALLBACK sdAlertProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
|
||||||
{
|
|
||||||
switch(msg)
|
|
||||||
{
|
|
||||||
case WM_CLOSE:
|
|
||||||
if(g_iAlerts > 0){ g_iAlerts--; }
|
|
||||||
DestroyWindow(hwnd);
|
|
||||||
return TRUE;
|
|
||||||
break;
|
|
||||||
case WM_TIMER:
|
|
||||||
if(g_iAlerts > 0){ g_iAlerts--; }
|
|
||||||
AnimateWindow(hwnd, 600, AW_SLIDE | AW_HIDE | AW_VER_POSITIVE);
|
|
||||||
DestroyWindow(hwnd);
|
|
||||||
return TRUE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if(msg == RegisterWindowMessage(TEXT("xTray:CloseAllAlertWindows")))
|
|
||||||
{
|
|
||||||
if(g_iAlerts > 0){ g_iAlerts--; }
|
|
||||||
DestroyWindow(hwnd);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int sdAlertNum()
|
|
||||||
{
|
|
||||||
return g_iAlerts;
|
|
||||||
}
|
|
@@ -1,26 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _H_SDALERTS_H
|
|
||||||
#define _H_SDALERTS_H
|
|
||||||
|
|
||||||
void sdSystemAlert (HINSTANCE, UINT, char *, char *, UINT);
|
|
||||||
LRESULT CALLBACK sdAlertProc (HWND, UINT, WPARAM, LPARAM);
|
|
||||||
int sdAlertNum ();
|
|
||||||
void sdCloseAlerts ();
|
|
||||||
#endif
|
|
@@ -1,207 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
#define _WIN32_IE 0x601
|
|
||||||
#include <windows.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
#include "sdTray.h"
|
|
||||||
#include "utility.h"
|
|
||||||
|
|
||||||
HANDLE hThread;
|
|
||||||
iBlink *tData = NULL;
|
|
||||||
|
|
||||||
int AddIcon(HWND hwnd, UINT id, HICON hicon, char *szTip, unsigned short flags, unsigned int cbMsg)
|
|
||||||
{
|
|
||||||
NOTIFYICONDATA nidata;
|
|
||||||
|
|
||||||
nidata.cbSize = NOTIFYICONDATA_V2_SIZE;
|
|
||||||
nidata.hIcon = hicon;
|
|
||||||
nidata.hWnd = hwnd;
|
|
||||||
nidata.uCallbackMessage = cbMsg;
|
|
||||||
nidata.uFlags = flags;
|
|
||||||
nidata.uID = id;
|
|
||||||
|
|
||||||
if(szTip != NULL)
|
|
||||||
{
|
|
||||||
TCHAR *szTemp = new TCHAR[64];
|
|
||||||
|
|
||||||
ConvertString(szTip, szTemp, 64);
|
|
||||||
_tcsncpy(nidata.szTip, szTemp, 64);
|
|
||||||
|
|
||||||
delete[] szTemp;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Shell_NotifyIcon(NIM_ADD, &nidata);
|
|
||||||
}
|
|
||||||
|
|
||||||
int RemoveIcon(HWND hwnd, UINT id)
|
|
||||||
{
|
|
||||||
if(hThread != NULL)
|
|
||||||
{
|
|
||||||
TerminateThread(hThread, 0);
|
|
||||||
hThread = NULL;
|
|
||||||
|
|
||||||
delete tData;
|
|
||||||
}
|
|
||||||
|
|
||||||
NOTIFYICONDATA nidata;
|
|
||||||
|
|
||||||
nidata.cbSize = NOTIFYICONDATA_V2_SIZE;
|
|
||||||
nidata.hWnd = hwnd;
|
|
||||||
nidata.uID = id;
|
|
||||||
|
|
||||||
return Shell_NotifyIcon(NIM_DELETE, &nidata);
|
|
||||||
}
|
|
||||||
|
|
||||||
int SetIcon(HWND hwnd, UINT id, HICON hicon)
|
|
||||||
{
|
|
||||||
NOTIFYICONDATA nidata;
|
|
||||||
|
|
||||||
nidata.cbSize = NOTIFYICONDATA_V2_SIZE;
|
|
||||||
nidata.hWnd = hwnd;
|
|
||||||
nidata.uID = id;
|
|
||||||
nidata.hIcon = hicon;
|
|
||||||
nidata.uFlags = NIF_ICON;
|
|
||||||
|
|
||||||
return Shell_NotifyIcon(NIM_MODIFY, &nidata);
|
|
||||||
}
|
|
||||||
|
|
||||||
int SetTooltip(HWND hwnd, UINT id, char *szTip)
|
|
||||||
{
|
|
||||||
NOTIFYICONDATA nidata;
|
|
||||||
|
|
||||||
nidata.cbSize = NOTIFYICONDATA_V2_SIZE;
|
|
||||||
nidata.hWnd = hwnd;
|
|
||||||
nidata.uID = id;
|
|
||||||
nidata.uFlags = NIF_TIP;
|
|
||||||
|
|
||||||
if(szTip != NULL)
|
|
||||||
{
|
|
||||||
TCHAR *szTemp = new TCHAR[64];
|
|
||||||
ConvertString(szTip, szTemp, 64);
|
|
||||||
_tcsncpy(nidata.szTip, szTemp, 64);
|
|
||||||
delete[] szTemp;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Shell_NotifyIcon(NIM_MODIFY, &nidata);
|
|
||||||
}
|
|
||||||
|
|
||||||
int ShowBalloon(HWND hwnd, UINT id, char *szInfo, char *szTitle, UINT time, UINT infoFlags)
|
|
||||||
{
|
|
||||||
NOTIFYICONDATA nidata;
|
|
||||||
|
|
||||||
nidata.cbSize = NOTIFYICONDATA_V2_SIZE;
|
|
||||||
nidata.hWnd = hwnd;
|
|
||||||
nidata.uID = id;
|
|
||||||
nidata.uFlags = NIF_INFO;
|
|
||||||
nidata.dwInfoFlags = infoFlags;
|
|
||||||
|
|
||||||
if(time > 0)
|
|
||||||
nidata.uTimeout = time;
|
|
||||||
else
|
|
||||||
nidata.uTimeout = 500000;
|
|
||||||
|
|
||||||
if(szInfo != NULL)
|
|
||||||
{
|
|
||||||
TCHAR *szTemp = new TCHAR[255];
|
|
||||||
|
|
||||||
ConvertString(szInfo, szTemp, 251);
|
|
||||||
szTemp[250] = 0;
|
|
||||||
|
|
||||||
if(strlen(szInfo) > 255)
|
|
||||||
{
|
|
||||||
_sntprintf(szTemp, 255, _T("%s..."), szTemp);
|
|
||||||
}
|
|
||||||
_tcsncpy(nidata.szInfo, szTemp, 255);
|
|
||||||
|
|
||||||
delete[] szTemp;
|
|
||||||
}
|
|
||||||
if(szTitle != NULL)
|
|
||||||
{
|
|
||||||
TCHAR *wszTitle = new TCHAR[64];
|
|
||||||
ConvertString(szTitle, wszTitle, 64);
|
|
||||||
_tcsncpy(nidata.szInfoTitle, wszTitle, 64);
|
|
||||||
delete[] wszTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Shell_NotifyIcon(NIM_MODIFY, &nidata);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
DWORD WINAPI BlinkThread(LPVOID lpParam)
|
|
||||||
{
|
|
||||||
NOTIFYICONDATA nidata;
|
|
||||||
|
|
||||||
nidata.cbSize = NOTIFYICONDATA_V2_SIZE;
|
|
||||||
nidata.hWnd = tData->hwnd;
|
|
||||||
nidata.uID = tData->id;
|
|
||||||
nidata.uFlags = NIF_ICON;
|
|
||||||
|
|
||||||
for(UINT i = 0; i < tData->num; i++)
|
|
||||||
{
|
|
||||||
nidata.hIcon = tData->hBlink;
|
|
||||||
Shell_NotifyIcon(NIM_MODIFY, &nidata);
|
|
||||||
|
|
||||||
Sleep(tData->time);
|
|
||||||
|
|
||||||
nidata.hIcon = tData->hBase;
|
|
||||||
Shell_NotifyIcon(NIM_MODIFY, &nidata);
|
|
||||||
|
|
||||||
Sleep(tData->time);
|
|
||||||
}
|
|
||||||
|
|
||||||
delete tData;
|
|
||||||
hThread = NULL;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int BlinkIcon(HWND hwnd, UINT id, HICON hBase, HICON hBlink, UINT time, UINT num)
|
|
||||||
{
|
|
||||||
if(hThread != NULL)
|
|
||||||
{
|
|
||||||
StopBlink(hwnd, id, hBase);
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD dwThreadID;
|
|
||||||
tData = new iBlink;
|
|
||||||
|
|
||||||
tData->hwnd = hwnd;
|
|
||||||
tData->id = id;
|
|
||||||
tData->hBase = hBase;
|
|
||||||
tData->hBlink = hBlink;
|
|
||||||
tData->time = time;
|
|
||||||
tData->num = num;
|
|
||||||
|
|
||||||
hThread = CreateThread(NULL, 0, BlinkThread, tData, 0, &dwThreadID);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void StopBlink(HWND hwnd, UINT id, HICON hBase)
|
|
||||||
{
|
|
||||||
if(hThread != NULL)
|
|
||||||
{
|
|
||||||
TerminateThread(hThread, 0);
|
|
||||||
hThread = NULL;
|
|
||||||
|
|
||||||
delete tData;
|
|
||||||
}
|
|
||||||
|
|
||||||
SetIcon(hwnd, id, hBase);
|
|
||||||
}
|
|
@@ -1,39 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _H_SDTRAY_H
|
|
||||||
#define _H_SDTRAY_H
|
|
||||||
|
|
||||||
int AddIcon (HWND, UINT, HICON, char *, unsigned short, UINT);
|
|
||||||
int ShowBalloon (HWND, UINT, char *, char *, UINT, UINT);
|
|
||||||
int BlinkIcon (HWND, UINT, HICON, HICON, UINT, UINT);
|
|
||||||
int SetTooltip (HWND, UINT, char *);
|
|
||||||
int SetIcon (HWND, UINT, HICON);
|
|
||||||
void StopBlink (HWND, UINT, HICON);
|
|
||||||
int RemoveIcon (HWND, UINT);
|
|
||||||
|
|
||||||
typedef struct IBLINK
|
|
||||||
{
|
|
||||||
HICON hBase;
|
|
||||||
HICON hBlink;
|
|
||||||
HWND hwnd;
|
|
||||||
UINT id;
|
|
||||||
UINT time;
|
|
||||||
UINT num;
|
|
||||||
}iBlink;
|
|
||||||
#endif
|
|
@@ -1,410 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <commctrl.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
#include "hexchat-plugin.h"
|
|
||||||
#include "utility.h"
|
|
||||||
#include "hextray.h"
|
|
||||||
#include "callbacks.h"
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
struct HOTKEY g_hHotKey;
|
|
||||||
|
|
||||||
/* we need to convert ALT and SHIFT modifiers
|
|
||||||
// from <winuser.h>
|
|
||||||
#define MOD_ALT 0x0001
|
|
||||||
#define MOD_CONTROL 0x0002
|
|
||||||
#define MOD_SHIFT 0x0004
|
|
||||||
// from <commctrl.h>
|
|
||||||
#define HOTKEYF_SHIFT 0x01
|
|
||||||
#define HOTKEYF_CONTROL 0x02
|
|
||||||
#define HOTKEYF_ALT 0x04
|
|
||||||
*/
|
|
||||||
|
|
||||||
WORD HotkeyfToMod(WORD modifiers)
|
|
||||||
{
|
|
||||||
WORD newmods = 0;
|
|
||||||
|
|
||||||
if (modifiers & HOTKEYF_SHIFT)
|
|
||||||
newmods |= MOD_SHIFT;
|
|
||||||
|
|
||||||
if (modifiers & HOTKEYF_CONTROL)
|
|
||||||
newmods |= MOD_CONTROL;
|
|
||||||
|
|
||||||
if (modifiers & HOTKEYF_ALT)
|
|
||||||
newmods |= MOD_ALT;
|
|
||||||
|
|
||||||
return newmods;
|
|
||||||
}
|
|
||||||
|
|
||||||
WORD ModToHotkeyf(WORD modifiers)
|
|
||||||
{
|
|
||||||
WORD newmods = 0;
|
|
||||||
|
|
||||||
if (modifiers & MOD_SHIFT)
|
|
||||||
newmods |= HOTKEYF_SHIFT;
|
|
||||||
|
|
||||||
if (modifiers & MOD_CONTROL)
|
|
||||||
newmods |= HOTKEYF_CONTROL;
|
|
||||||
|
|
||||||
if (modifiers & MOD_ALT)
|
|
||||||
newmods |= HOTKEYF_ALT;
|
|
||||||
|
|
||||||
return newmods;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SavePrefs(int iDlg)
|
|
||||||
{
|
|
||||||
hexchat_pluginpref_set_int (ph, "settings", g_dwPrefs);
|
|
||||||
hexchat_pluginpref_set_int (ph, "aot", g_iTime);
|
|
||||||
hexchat_pluginpref_set_int (ph, "key", g_hHotKey.key);
|
|
||||||
hexchat_pluginpref_set_int (ph, "mod", g_hHotKey.mod);
|
|
||||||
hexchat_pluginpref_set_str (ph, "away", (const char*) g_szAway);
|
|
||||||
}
|
|
||||||
|
|
||||||
void LoadPrefs()
|
|
||||||
{
|
|
||||||
/**************************************************************************************************/
|
|
||||||
/*********************** Our Settings Section *****************************************************/
|
|
||||||
/**************************************************************************************************/
|
|
||||||
|
|
||||||
/**************************************************************************************************/
|
|
||||||
/*************************** Get the value for each of our preferances ****************************/
|
|
||||||
/**************************************************************************************************/
|
|
||||||
|
|
||||||
g_dwPrefs = hexchat_pluginpref_get_int (ph, "settings");
|
|
||||||
g_iTime = hexchat_pluginpref_get_int (ph, "aot");
|
|
||||||
g_hHotKey.key = hexchat_pluginpref_get_int (ph, "key");
|
|
||||||
g_hHotKey.mod = hexchat_pluginpref_get_int (ph, "mod");
|
|
||||||
hexchat_pluginpref_get_str (ph, "away", (char *) g_szAway);
|
|
||||||
|
|
||||||
/**************************************************************************************************/
|
|
||||||
/******************************** Register our hotkey with windows ********************************/
|
|
||||||
/**************************************************************************************************/
|
|
||||||
if(g_dwPrefs & (1<<PREF_UWIOB))
|
|
||||||
{
|
|
||||||
RegisterHotKey(g_hHotkeyWnd, 1, g_hHotKey.mod, g_hHotKey.key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CheckPrefs(HWND hwnd, int iDlg)
|
|
||||||
{
|
|
||||||
/**************************************************************************************************/
|
|
||||||
/**************** save the preferances based on the checkmarks/options ****************************/
|
|
||||||
/**************************************************************************************************/
|
|
||||||
switch(iDlg)
|
|
||||||
{
|
|
||||||
case IDD_EVENTS:
|
|
||||||
{
|
|
||||||
SetOption(hwnd, CHAN_HILIGHT, CHAN_HILIGHT);
|
|
||||||
SetOption(hwnd, CHAN_INVITE, CHAN_INVITE);
|
|
||||||
SetOption(hwnd, CHAN_TOPIC_CHANGE, CHAN_TOPIC_CHANGE);
|
|
||||||
SetOption(hwnd, CHAN_BANNED, CHAN_BANNED);
|
|
||||||
SetOption(hwnd, CHAN_KICKED, CHAN_KICKED);
|
|
||||||
SetOption(hwnd, CTCP_GENERIC, CTCP_GENERIC);
|
|
||||||
SetOption(hwnd, PMSG_RECEIVE, PMSG_RECEIVE);
|
|
||||||
SetOption(hwnd, SERV_KILLED, SERV_KILLED);
|
|
||||||
SetOption(hwnd, SERV_NOTICE, SERV_NOTICE);
|
|
||||||
SetOption(hwnd, SERV_DISCONNECT, SERV_DISCONNECT);
|
|
||||||
SetOption(hwnd, CHAN_MESSAGE, CHAN_MESSAGE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IDD_ALERTS:
|
|
||||||
{
|
|
||||||
SetOption(hwnd, PREF_AMAE, PREF_AMAE);
|
|
||||||
SetOption(hwnd, PREF_OSBWM, PREF_OSBWM);
|
|
||||||
SetOption(hwnd, PREF_UWIOB, PREF_UWIOB);
|
|
||||||
SetOption(hwnd, PREF_KAOI, PREF_KAOI);
|
|
||||||
SetOption(hwnd, PREF_BLINK, PREF_BLINK);
|
|
||||||
|
|
||||||
/**************************************************************************/
|
|
||||||
/**************************************************************************/
|
|
||||||
/**************************************************************************/
|
|
||||||
TCHAR tTime[512];
|
|
||||||
|
|
||||||
GetWindowText(GetDlgItem(hwnd, IDC_ALERT_TIME), tTime, 511);
|
|
||||||
|
|
||||||
g_iTime = _tstoi(tTime);
|
|
||||||
|
|
||||||
/**************************************************************************/
|
|
||||||
/**************** Get our Hotkey and save it **********/
|
|
||||||
/**************** then remove the old hotkey and add the new one **********/
|
|
||||||
/**************************************************************************/
|
|
||||||
DWORD hHotkey;
|
|
||||||
hHotkey = SendDlgItemMessage(hwnd, IDC_ALERT_HOTKEY, HKM_GETHOTKEY, 0, 0);
|
|
||||||
|
|
||||||
g_hHotKey.key = LOBYTE(hHotkey);
|
|
||||||
g_hHotKey.mod = HotkeyfToMod(HIBYTE(hHotkey));
|
|
||||||
|
|
||||||
if(IsDlgButtonChecked(hwnd, PREF_UWIOB) == BST_CHECKED)
|
|
||||||
{
|
|
||||||
UnregisterHotKey(g_hHotkeyWnd, 1);
|
|
||||||
RegisterHotKey(g_hHotkeyWnd, 1, g_hHotKey.mod, g_hHotKey.key);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UnregisterHotKey(g_hHotkeyWnd, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************************************************************/
|
|
||||||
/*********** Get and save the away msg and alert time ********************/
|
|
||||||
/*************************************************************************/
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IDD_SETTINGS:
|
|
||||||
{
|
|
||||||
SetOption(hwnd, PREF_AOM, PREF_AOM);
|
|
||||||
SetOption(hwnd, PREF_TOT, PREF_TOT);
|
|
||||||
SetOption(hwnd, PREF_MIOC, PREF_MIOC);
|
|
||||||
SetOption(hwnd, PREF_DNSIT, PREF_DNSIT);
|
|
||||||
|
|
||||||
GetDlgItemText(hwnd, IDC_AWAY_MSG, g_szAway, 511);
|
|
||||||
|
|
||||||
if(g_dwPrefs & (1<<PREF_DNSIT))
|
|
||||||
{
|
|
||||||
DWORD dwStyle;
|
|
||||||
dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);
|
|
||||||
dwStyle |= (1<<WS_CHILD);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, (LONG_PTR)g_hHotkeyWnd);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DWORD dwStyle;
|
|
||||||
dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE);
|
|
||||||
dwStyle &= ~(1<<WS_CHILD);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle);
|
|
||||||
SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetDialog(HWND hwnd, int iDlg)
|
|
||||||
{
|
|
||||||
switch(iDlg)
|
|
||||||
{
|
|
||||||
case IDD_EVENTS:
|
|
||||||
{
|
|
||||||
SetCheck(hwnd, CHAN_HILIGHT, CHAN_HILIGHT);
|
|
||||||
SetCheck(hwnd, CHAN_INVITE, CHAN_INVITE);
|
|
||||||
SetCheck(hwnd, CHAN_TOPIC_CHANGE, CHAN_TOPIC_CHANGE);
|
|
||||||
SetCheck(hwnd, CHAN_BANNED, CHAN_BANNED);
|
|
||||||
SetCheck(hwnd, CHAN_KICKED, CHAN_KICKED);
|
|
||||||
SetCheck(hwnd, CTCP_GENERIC, CTCP_GENERIC);
|
|
||||||
SetCheck(hwnd, PMSG_RECEIVE, PMSG_RECEIVE);
|
|
||||||
SetCheck(hwnd, SERV_KILLED, SERV_KILLED);
|
|
||||||
SetCheck(hwnd, SERV_NOTICE, SERV_NOTICE);
|
|
||||||
SetCheck(hwnd, SERV_DISCONNECT, SERV_DISCONNECT);
|
|
||||||
SetCheck(hwnd, CHAN_MESSAGE, CHAN_MESSAGE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IDD_SETTINGS:
|
|
||||||
{
|
|
||||||
SetCheck(hwnd, PREF_TOT, PREF_TOT);
|
|
||||||
SetCheck(hwnd, PREF_MIOC, PREF_MIOC);
|
|
||||||
SetCheck(hwnd, PREF_AOM, PREF_AOM);
|
|
||||||
SetCheck(hwnd, PREF_DNSIT, PREF_DNSIT);
|
|
||||||
|
|
||||||
SetDlgItemText(hwnd, IDC_AWAY_MSG, g_szAway);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IDD_ALERTS:
|
|
||||||
{
|
|
||||||
|
|
||||||
SetCheck(hwnd, PREF_BLINK, PREF_BLINK);
|
|
||||||
SetCheck(hwnd, PREF_OSBWM, PREF_OSBWM);
|
|
||||||
SetCheck(hwnd, PREF_UWIOB, PREF_UWIOB);
|
|
||||||
SetCheck(hwnd, PREF_KAOI, PREF_KAOI);
|
|
||||||
|
|
||||||
/**********************************************************/
|
|
||||||
/**********************************************************/
|
|
||||||
/**********************************************************/
|
|
||||||
if(SetCheck(hwnd, PREF_AMAE, PREF_AMAE) == false)
|
|
||||||
{
|
|
||||||
SetToggle(hwnd, PREF_OSBWM, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hwnd, PREF_UWIOB, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hwnd, PREF_KAOI, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hwnd, IDC_ALERT_TIME, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hwnd, IDC_ALERT_TIME_TEXT, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hwnd, IDC_ALERT_HOTKEY, PREF_AMAE, TRUE);
|
|
||||||
SetToggle(hwnd, IDC_ALERT_HOTKEY_TEXT, PREF_AMAE, TRUE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
SetToggle(hwnd, IDC_ALERT_HOTKEY, PREF_UWIOB, TRUE);
|
|
||||||
SetToggle(hwnd, IDC_ALERT_HOTKEY_TEXT, PREF_UWIOB, TRUE);
|
|
||||||
SetToggle(hwnd, IDC_ALERT_TIME, PREF_KAOI, FALSE);
|
|
||||||
SetToggle(hwnd, IDC_ALERT_TIME_TEXT, PREF_KAOI, FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**********************************************************/
|
|
||||||
/**********************************************************/
|
|
||||||
/**********************************************************/
|
|
||||||
TCHAR tTime[255];
|
|
||||||
SendDlgItemMessage(hwnd, IDC_ALERT_TIME, WM_SETTEXT, 0, (LPARAM)_itot(g_iTime, tTime, 10));
|
|
||||||
SendDlgItemMessage(hwnd, IDC_ALERT_HOTKEY, HKM_SETHOTKEY, MAKEWORD(g_hHotKey.key, ModToHotkeyf(g_hHotKey.mod)), 0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int SetCheck(HWND hDialog, unsigned int uiCheckBox, unsigned int uiPref)
|
|
||||||
{
|
|
||||||
if((g_dwPrefs & (1<<uiPref)))
|
|
||||||
{
|
|
||||||
CheckDlgButton(hDialog, uiCheckBox, BST_CHECKED);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CheckDlgButton(hDialog, uiCheckBox, BST_UNCHECKED);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int SetToggle(HWND hDialog, unsigned int uiCheckBox, unsigned int uiTestbox, bool offeqoff)
|
|
||||||
{
|
|
||||||
/**************************************************************************************************/
|
|
||||||
/*********************** if(true) then if option is off turn toggle off ***************************/
|
|
||||||
/*********************** if(false) then if option is off turn toggle on ***************************/
|
|
||||||
/**************************************************************************************************/
|
|
||||||
if(offeqoff)
|
|
||||||
{
|
|
||||||
if(IsDlgButtonChecked(hDialog, uiTestbox) == BST_CHECKED)
|
|
||||||
{
|
|
||||||
EnableWindow(GetDlgItem(hDialog, uiCheckBox), TRUE);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EnableWindow(GetDlgItem(hDialog, uiCheckBox), FALSE);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(IsDlgButtonChecked(hDialog, uiTestbox) == BST_CHECKED)
|
|
||||||
{
|
|
||||||
EnableWindow(GetDlgItem(hDialog, uiCheckBox), FALSE);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EnableWindow(GetDlgItem(hDialog, uiCheckBox), TRUE);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int SetOption(HWND hDialog, unsigned int uiCheckBox, unsigned int uiPref)
|
|
||||||
{
|
|
||||||
if(IsDlgButtonChecked(hDialog, uiCheckBox) == BST_CHECKED)
|
|
||||||
{
|
|
||||||
g_dwPrefs |= (1<<uiPref);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_dwPrefs &= ~(1<<uiPref);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (g_dwPrefs & (1<<uiPref));
|
|
||||||
}
|
|
||||||
|
|
||||||
// For cleanup ( Closing windows and the such )
|
|
||||||
void HoldClose()
|
|
||||||
{
|
|
||||||
HANDLE hcThread;
|
|
||||||
DWORD dwThreadID;
|
|
||||||
hcThread = CreateThread(NULL, 0, HoldCloseThread, 0, 0, &dwThreadID);
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD WINAPI HoldCloseThread(LPVOID lpParam)
|
|
||||||
{
|
|
||||||
Sleep(1000);
|
|
||||||
PostMessage(g_hXchatWnd, WM_CLOSE, 0, 0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool FileExists(TCHAR *file)
|
|
||||||
{
|
|
||||||
HANDLE hTemp = CreateFile(file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
|
||||||
int nRet = GetLastError();
|
|
||||||
CloseHandle(hTemp);
|
|
||||||
|
|
||||||
if(nRet == 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConvertString(const char *in, wchar_t *out, int size)
|
|
||||||
{
|
|
||||||
MultiByteToWideChar(CP_UTF8, 0, in, -1, out, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConvertString(const wchar_t *in, char *out, int size)
|
|
||||||
{
|
|
||||||
WideCharToMultiByte(CP_UTF8, 0, in, (size - 1), out, size, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConvertString(const char *in, char *out, int size)
|
|
||||||
{
|
|
||||||
strncpy(out, in, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ErrorDebug(LPTSTR lpszFunction)
|
|
||||||
{
|
|
||||||
TCHAR szBuf[80];
|
|
||||||
LPVOID lpMsgBuf;
|
|
||||||
DWORD dw = GetLastError();
|
|
||||||
|
|
||||||
FormatMessage(
|
|
||||||
FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
|
||||||
FORMAT_MESSAGE_FROM_SYSTEM,
|
|
||||||
NULL,
|
|
||||||
dw,
|
|
||||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
|
||||||
(LPTSTR) &lpMsgBuf,
|
|
||||||
0, NULL );
|
|
||||||
|
|
||||||
_stprintf(szBuf,
|
|
||||||
_T("%s failed with error %d: %s"),
|
|
||||||
lpszFunction, dw, lpMsgBuf);
|
|
||||||
|
|
||||||
MessageBox(NULL, szBuf, _T("Error"), MB_OK);
|
|
||||||
|
|
||||||
LocalFree(lpMsgBuf);
|
|
||||||
}
|
|
||||||
|
|
@@ -1,46 +0,0 @@
|
|||||||
/* X-Tray
|
|
||||||
* Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
|
|
||||||
*
|
|
||||||
* X-Tray is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* X-Tray is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with X-Tray; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _H_UTILITY_H
|
|
||||||
#define _H_UTILITY_H
|
|
||||||
|
|
||||||
WORD HotkeyfToMod (WORD);
|
|
||||||
WORD ModToHotkeyf (WORD);
|
|
||||||
|
|
||||||
int SetOption (HWND, unsigned int, unsigned int);
|
|
||||||
int SetCheck (HWND, unsigned int, unsigned int);
|
|
||||||
int SetToggle (HWND, unsigned int, unsigned int, bool);
|
|
||||||
void ErrorDebug (LPTSTR lpszFunction);
|
|
||||||
void SetDialog (HWND, int);
|
|
||||||
void CheckPrefs (HWND, int);
|
|
||||||
bool FileExists (TCHAR *);
|
|
||||||
DWORD WINAPI HoldCloseThread (LPVOID);
|
|
||||||
void SavePrefs (int);
|
|
||||||
void LoadPrefs ();
|
|
||||||
void HoldClose ();
|
|
||||||
|
|
||||||
void ConvertString(const char *in, wchar_t *out, int size);
|
|
||||||
void ConvertString(const wchar_t *in, char *out, int size);
|
|
||||||
void ConvertString(const char *in, char *out, int size);
|
|
||||||
|
|
||||||
struct HOTKEY
|
|
||||||
{
|
|
||||||
WORD key;
|
|
||||||
WORD mod;
|
|
||||||
};
|
|
||||||
#endif
|
|
@@ -131,11 +131,11 @@ int hexchat_plugin_init(hexchat_plugin *plugin_handle, char **plugin_name, char
|
|||||||
hexchat_hook_command(ph, "mpc", HEXCHAT_PRI_NORM, mpc_tell,"no help text", 0);
|
hexchat_hook_command(ph, "mpc", HEXCHAT_PRI_NORM, mpc_tell,"no help text", 0);
|
||||||
hexchat_hook_command(ph, "mpc_themes", HEXCHAT_PRI_NORM, print_themes,"no help text", 0);
|
hexchat_hook_command(ph, "mpc_themes", HEXCHAT_PRI_NORM, print_themes,"no help text", 0);
|
||||||
hexchat_hook_command(ph, "mpc_reloadthemes", HEXCHAT_PRI_NORM, mpc_themeReload,"no help text", 0);
|
hexchat_hook_command(ph, "mpc_reloadthemes", HEXCHAT_PRI_NORM, mpc_themeReload,"no help text", 0);
|
||||||
hexchat_command (ph, "MENU -ietc\\music.png ADD \"Window/Display Current Song (MPC)\" \"MPC\"");
|
hexchat_command (ph, "MENU -ishare\\music.png ADD \"Window/Display Current Song (MPC)\" \"MPC\"");
|
||||||
|
|
||||||
themeInit();
|
themeInit();
|
||||||
loadThemes();
|
loadThemes();
|
||||||
hexchat_printf(ph, "%s %s plugin loaded\n",*plugin_name, VERSION);
|
hexchat_printf(ph, "%s plugin loaded\n", *plugin_name);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -75,7 +77,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
EXTRA_DIST=alt_completion.pl generate_header lib/Xchat.pm lib/Xchat/Embed.pm lib/Xchat/List/Network.pm \
|
EXTRA_DIST=alt_completion.pl generate_header lib/Xchat.pm lib/Xchat/Embed.pm lib/Xchat/List/Network.pm \
|
||||||
lib/Xchat/List/Network/Entry.pm lib/Xchat/List/Network/AutoJoin.pm lib/IRC.pm
|
lib/Xchat/List/Network/Entry.pm lib/Xchat/List/Network/AutoJoin.pm lib/IRC.pm
|
||||||
|
|
||||||
libdir = $(hexchatlibdir)/plugins
|
libdir = $(hexchatlibdir)
|
||||||
|
|
||||||
lib_LTLIBRARIES = perl.la
|
lib_LTLIBRARIES = perl.la
|
||||||
perl_la_SOURCES = perl.c
|
perl_la_SOURCES = perl.c
|
||||||
|
@@ -10,26 +10,24 @@ use overload
|
|||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
my $line = shift;
|
|
||||||
|
|
||||||
my @autojoins;
|
my @autojoins;
|
||||||
|
|
||||||
if ( $line ) {
|
return bless \@autojoins, $class;
|
||||||
my ( $channels, $keys ) = split / /, $line, 2;
|
}
|
||||||
my @channels = split /,/, $channels;
|
|
||||||
my @keys = split /,/, ($keys || '');
|
|
||||||
|
|
||||||
for my $channel ( @channels ) {
|
sub add {
|
||||||
my $key = shift @keys;
|
my $self = shift;
|
||||||
$key = '' unless defined $key;
|
|
||||||
|
|
||||||
push @autojoins, {
|
my $line = shift;
|
||||||
|
|
||||||
|
my ( $channel, $key ) = split /,/, $line, 2;
|
||||||
|
$key = $key || '';
|
||||||
|
|
||||||
|
push @$self, {
|
||||||
channel => $channel,
|
channel => $channel,
|
||||||
key => $key,
|
key => $key,
|
||||||
};
|
};
|
||||||
}
|
|
||||||
}
|
|
||||||
return bless \@autojoins, $class;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub channels {
|
sub channels {
|
||||||
|
@@ -39,6 +39,8 @@ sub parse {
|
|||||||
my @fields = split /\n/, $data;
|
my @fields = split /\n/, $data;
|
||||||
chomp @fields;
|
chomp @fields;
|
||||||
|
|
||||||
|
$entry->{ autojoins } = Xchat::List::Network::AutoJoin->new();
|
||||||
|
|
||||||
for my $field ( @fields ) {
|
for my $field ( @fields ) {
|
||||||
SWITCH: for ( $field ) {
|
SWITCH: for ( $field ) {
|
||||||
/^($letter_key_re)=(.*)/ && do {
|
/^($letter_key_re)=(.*)/ && do {
|
||||||
@@ -47,8 +49,7 @@ sub parse {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/^J.(.*)/ && do {
|
/^J.(.*)/ && do {
|
||||||
$entry->{ autojoins } =
|
$entry->{ autojoins }->add( $1 );
|
||||||
Xchat::List::Network::AutoJoin->new( $1 );
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/^F.(.*)/ && do {
|
/^F.(.*)/ && do {
|
||||||
|
@@ -1,124 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{58654438-F674-42F7-88FA-73EF90AD80B1}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>perl516</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\win32\hexchat.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\win32\hexchat.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<TargetName>$(Perl516Output)</TargetName>
|
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<TargetName>$(Perl516Output)</TargetName>
|
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>$(Perl516Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>$(Perl516Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
|
|
||||||
<DelayLoadDLLs>$(Perl516Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
|
||||||
</Link>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>"$(GendefPath)\gendef" "$(Perl516Path)\bin\$(Perl516Lib).dll"
|
|
||||||
move $(Perl516Lib).def "$(IntDir)"
|
|
||||||
lib /nologo /machine:x86 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib"
|
|
||||||
"$(Perl516Path)\bin\perl.exe" generate_header
|
|
||||||
move irc.pm.h "$(IntDir)"
|
|
||||||
move xchat.pm.h "$(IntDir)"</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>$(Perl516Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>$(Perl516Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
|
|
||||||
<DelayLoadDLLs>$(Perl516Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
|
||||||
</Link>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>"$(GendefPath)\gendef" "$(Perl516Path)\bin\$(Perl516Lib).dll"
|
|
||||||
move $(Perl516Lib).def "$(IntDir)"
|
|
||||||
lib /nologo /machine:x64 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib"
|
|
||||||
"$(Perl516Path)\bin\perl.exe" generate_header
|
|
||||||
move irc.pm.h "$(IntDir)"
|
|
||||||
move xchat.pm.h "$(IntDir)"</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="perl.def" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="perl.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
@@ -296,7 +296,7 @@ list_item_to_sv ( hexchat_list *list, const char *const *fields )
|
|||||||
default:
|
default:
|
||||||
field_value = &PL_sv_undef;
|
field_value = &PL_sv_undef;
|
||||||
}
|
}
|
||||||
hv_store (hash, field_name, name_len, field_value, 0);
|
(void)hv_store (hash, field_name, name_len, field_value, 0);
|
||||||
field_index++;
|
field_index++;
|
||||||
}
|
}
|
||||||
return sv_2mortal (newRV_noinc ((SV *) hash));
|
return sv_2mortal (newRV_noinc ((SV *) hash));
|
||||||
@@ -1520,7 +1520,7 @@ perl_command_unload (char *word[], char *word_eol[], void *userdata)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
perl_command_reload (char *word[], char *word_eol[], void *userdata)
|
perl_command_reload (char *word[], char *word_eol[], void *eat)
|
||||||
{
|
{
|
||||||
char *file = get_filename (word, word_eol);
|
char *file = get_filename (word, word_eol);
|
||||||
|
|
||||||
@@ -1529,7 +1529,10 @@ perl_command_reload (char *word[], char *word_eol[], void *userdata)
|
|||||||
return HEXCHAT_EAT_HEXCHAT;
|
return HEXCHAT_EAT_HEXCHAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (eat)
|
||||||
return HEXCHAT_EAT_HEXCHAT;
|
return HEXCHAT_EAT_HEXCHAT;
|
||||||
|
else
|
||||||
|
return HEXCHAT_EAT_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1570,7 +1573,7 @@ hexchat_plugin_init (hexchat_plugin * plugin_handle, char **plugin_name,
|
|||||||
hexchat_hook_command (ph, "reload", HEXCHAT_PRI_NORM, perl_command_reload, 0,
|
hexchat_hook_command (ph, "reload", HEXCHAT_PRI_NORM, perl_command_reload, 0,
|
||||||
0);
|
0);
|
||||||
hexchat_hook_command (ph, "pl_reload", HEXCHAT_PRI_NORM, perl_command_reload, 0,
|
hexchat_hook_command (ph, "pl_reload", HEXCHAT_PRI_NORM, perl_command_reload, 0,
|
||||||
0);
|
(int*)1);
|
||||||
hexchat_hook_command (ph, "unloadall", HEXCHAT_PRI_NORM,
|
hexchat_hook_command (ph, "unloadall", HEXCHAT_PRI_NORM,
|
||||||
perl_command_unloadall, 0, 0);
|
perl_command_unloadall, 0, 0);
|
||||||
hexchat_hook_command (ph, "reloadall", HEXCHAT_PRI_NORM,
|
hexchat_hook_command (ph, "reloadall", HEXCHAT_PRI_NORM,
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -42,13 +45,13 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>$(Perl518Output)</TargetName>
|
<TargetName>$(PerlOutput)</TargetName>
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
<OutDir>$(HexChatBin)</OutDir>
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>$(Perl518Output)</TargetName>
|
<TargetName>$(PerlOutput)</TargetName>
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
<OutDir>$(HexChatBin)</OutDir>
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@@ -56,11 +59,10 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL518_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL518_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(Perl518Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(PerlPath)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -69,15 +71,15 @@
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(Perl518Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(PerlLib).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
|
||||||
<DelayLoadDLLs>$(Perl518Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>$(PerlLib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>"$(GendefPath)\gendef" "$(Perl518Path)\bin\$(Perl518Lib).dll"
|
<Command>"$(GendefPath)\gendef" "$(PerlPath)\bin\$(PerlLib).dll"
|
||||||
move $(Perl518Lib).def "$(IntDir)"
|
move $(PerlLib).def "$(IntDir)"
|
||||||
lib /nologo /machine:x86 "/def:$(IntDir)$(Perl518Lib).def" "/out:$(OutDir)\$(Perl518Lib).lib"
|
lib /nologo /machine:x86 "/def:$(IntDir)$(PerlLib).def" "/out:$(OutDir)\$(PerlLib).lib"
|
||||||
"$(Perl518Path)\bin\perl.exe" generate_header
|
"$(PerlPath)\bin\perl.exe" generate_header
|
||||||
move irc.pm.h "$(IntDir)"
|
move irc.pm.h "$(IntDir)"
|
||||||
move xchat.pm.h "$(IntDir)"</Command>
|
move xchat.pm.h "$(IntDir)"</Command>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
@@ -86,11 +88,10 @@ move xchat.pm.h "$(IntDir)"</Command>
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PERL518_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PERL518_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(Perl518Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(PerlPath)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -99,15 +100,15 @@ move xchat.pm.h "$(IntDir)"</Command>
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>$(Perl518Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>$(PerlLib).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
|
||||||
<DelayLoadDLLs>$(Perl518Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>$(PerlLib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
</Link>
|
</Link>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
<Command>"$(GendefPath)\gendef" "$(Perl518Path)\bin\$(Perl518Lib).dll"
|
<Command>"$(GendefPath)\gendef" "$(PerlPath)\bin\$(PerlLib).dll"
|
||||||
move $(Perl518Lib).def "$(IntDir)"
|
move $(PerlLib).def "$(IntDir)"
|
||||||
lib /nologo /machine:x64 "/def:$(IntDir)$(Perl518Lib).def" "/out:$(OutDir)\$(Perl518Lib).lib"
|
lib /nologo /machine:x64 "/def:$(IntDir)$(PerlLib).def" "/out:$(OutDir)\$(PerlLib).lib"
|
||||||
"$(Perl518Path)\bin\perl.exe" generate_header
|
"$(PerlPath)\bin\perl.exe" generate_header
|
||||||
move irc.pm.h "$(IntDir)"
|
move irc.pm.h "$(IntDir)"
|
||||||
move xchat.pm.h "$(IntDir)"</Command>
|
move xchat.pm.h "$(IntDir)"</Command>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
@@ -1,6 +1,6 @@
|
|||||||
EXTRA_DIST =
|
EXTRA_DIST =
|
||||||
|
|
||||||
libdir = $(hexchatlibdir)/plugins
|
libdir = $(hexchatlibdir)
|
||||||
|
|
||||||
lib_LTLIBRARIES = python.la
|
lib_LTLIBRARIES = python.la
|
||||||
python_la_SOURCES = python.c
|
python_la_SOURCES = python.c
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -13,7 +16,7 @@
|
|||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{19C52A0A-A790-409E-A28A-9745FF990F5C}</ProjectGuid>
|
<ProjectGuid>{19C52A0A-A790-409E-A28A-9745FF990F5C}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>python</RootNamespace>
|
<RootNamespace>python2</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
@@ -42,13 +45,13 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>$(PythonOutput)</TargetName>
|
<TargetName>$(Python2Output)</TargetName>
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
<OutDir>$(HexChatBin)</OutDir>
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>$(PythonOutput)</TargetName>
|
<TargetName>$(Python2Output)</TargetName>
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
<OutDir>$(HexChatBin)</OutDir>
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@@ -56,11 +59,10 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(Glib);$(PythonPath)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(Glib);$(Python2Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -69,19 +71,18 @@
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
|
||||||
<AdditionalDependencies>"$(PythonLib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>"$(Python2Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python2Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(Glib);$(PythonPath)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(Glib);$(Python2Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -90,8 +91,8 @@
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
|
||||||
<AdditionalDependencies>"$(PythonLib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>"$(Python2Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python2Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -11,9 +14,9 @@
|
|||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{3024CF36-85E5-4E00-9608-7002E2C7EF14}</ProjectGuid>
|
<ProjectGuid>{C2321A03-0BA7-45B3-8740-ABD82B36B0BF}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>hextray</RootNamespace>
|
<RootNamespace>python3</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
@@ -42,85 +45,61 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<TargetName>$(Python3Output)</TargetName>
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
<OutDir>$(HexChatBin)</OutDir>
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
||||||
<TargetName>hchextray</TargetName>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<TargetName>$(Python3Output)</TargetName>
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
<OutDir>$(HexChatBin)</OutDir>
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
||||||
<TargetName>hchextray</TargetName>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(Glib);$(Python3Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<AdditionalIncludeDirectories>..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<ModuleDefinitionFile>hextray.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
|
||||||
|
<AdditionalDependencies>"$(Python3Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python3Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(Glib);$(Python3Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<AdditionalIncludeDirectories>..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<ModuleDefinitionFile>hextray.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
|
||||||
|
<AdditionalDependencies>"$(Python3Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python3Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="bitmaps\sd.bmp" />
|
<None Include="python.def" />
|
||||||
<None Include="icons\ban.ico" />
|
|
||||||
<None Include="icons\disconnect.ico" />
|
|
||||||
<None Include="icons\highlight.ico" />
|
|
||||||
<None Include="icons\kick.ico" />
|
|
||||||
<None Include="icons\message.ico" />
|
|
||||||
<None Include="icons\sd.ico" />
|
|
||||||
<None Include="icons\notice.ico" />
|
|
||||||
<None Include="icons\hexchat.ico" />
|
|
||||||
<None Include="hextray.def" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="resource.rc" />
|
<ClCompile Include="python.c" />
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="callbacks.cpp" />
|
|
||||||
<ClCompile Include="sdAlerts.cpp" />
|
|
||||||
<ClCompile Include="sdTray.cpp" />
|
|
||||||
<ClCompile Include="utility.cpp" />
|
|
||||||
<ClCompile Include="hexchat.cpp" />
|
|
||||||
<ClCompile Include="hextray.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="callbacks.h" />
|
|
||||||
<ClInclude Include="resource.h" />
|
|
||||||
<ClInclude Include="sdAlerts.h" />
|
|
||||||
<ClInclude Include="sdTray.h" />
|
|
||||||
<ClInclude Include="utility.h" />
|
|
||||||
<ClInclude Include="hexchat.h" />
|
|
||||||
<ClInclude Include="hextray.h" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
@@ -2,22 +2,20 @@
|
|||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{f4eaf231-f095-42d3-8427-b2b6006cacb1}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{0166c0f9-7968-4a09-9ef5-a5179c7746eb}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="perl.def">
|
<ClCompile Include="python.c">
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="perl.c">
|
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="python.def">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@@ -1,4 +1,4 @@
|
|||||||
libdir = $(hexchatlibdir)/plugins
|
libdir = $(hexchatlibdir)
|
||||||
|
|
||||||
lib_LTLIBRARIES = sysinfo.la
|
lib_LTLIBRARIES = sysinfo.la
|
||||||
sysinfo_la_SOURCES = hwmon.c match.c parse.c pci.c xsys.c
|
sysinfo_la_SOURCES = hwmon.c match.c parse.c pci.c xsys.c
|
||||||
|
@@ -34,6 +34,7 @@ int hwmon_chip_present()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
void get_hwmon_chip_name(char *name)
|
void get_hwmon_chip_name(char *name)
|
||||||
{
|
{
|
||||||
char *position, buffer[bsize];
|
char *position, buffer[bsize];
|
||||||
@@ -47,6 +48,7 @@ void get_hwmon_chip_name(char *name)
|
|||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void get_hwmon_temp(unsigned int *value, unsigned int *sensor)
|
void get_hwmon_temp(unsigned int *value, unsigned int *sensor)
|
||||||
{
|
{
|
||||||
|
@@ -65,14 +65,31 @@ char *pretty_freespace(const char *desc, unsigned long long *free_k, unsigned lo
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void remove_leading_whitespace(char *buffer)
|
void remove_leading_whitespace(char *buffer)
|
||||||
{
|
{
|
||||||
char *pos;
|
char *buffer2 = NULL;
|
||||||
while((pos = memchr(buffer, 0x20, 1)))
|
int i = 0, j = 0, ews = 0;
|
||||||
|
|
||||||
|
buffer2 = (char*)malloc(strlen(buffer) * sizeof(char));
|
||||||
|
if (buffer2 == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
memset (buffer2, (char)0, strlen(buffer));
|
||||||
|
while (i < strlen(buffer))
|
||||||
{
|
{
|
||||||
pos += 1;
|
/* count tabs, spaces as whitespace. */
|
||||||
strcpy(buffer, pos);
|
if (!(buffer[i] == (char)32 || buffer[i] == (char)9) || ews == 1)
|
||||||
|
{
|
||||||
|
ews = 1;
|
||||||
|
buffer2[j] = buffer[i];
|
||||||
|
j++;
|
||||||
}
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
memset (buffer, (char)0, strlen(buffer));
|
||||||
|
strcpy (buffer, buffer2);
|
||||||
|
free (buffer2);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *decruft_filename(char *buffer)
|
char *decruft_filename(char *buffer)
|
||||||
|
@@ -379,21 +379,8 @@ int xs_parse_distro(char *name)
|
|||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
char buffer[bsize], *pos = NULL;
|
char buffer[bsize], *pos = NULL;
|
||||||
|
|
||||||
if((fp = fopen("/etc/lsb-release", "r")) != NULL)
|
if((fp = fopen("/etc/portage/make.conf", "r")) != NULL ||
|
||||||
{
|
(fp = fopen("/etc/make.conf", "r")) != NULL)
|
||||||
char id[bsize], codename[bsize], release[bsize];
|
|
||||||
strcpy(id, "?");
|
|
||||||
strcpy(codename, "?");
|
|
||||||
strcpy(release, "?");
|
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
|
||||||
{
|
|
||||||
find_match_char(buffer, "DISTRIB_ID", id);
|
|
||||||
find_match_char(buffer, "DISTRIB_CODENAME", codename);
|
|
||||||
find_match_char(buffer, "DISTRIB_RELEASE", release);
|
|
||||||
}
|
|
||||||
snprintf(buffer, bsize, "%s \"%s\" %s", id, codename, release);
|
|
||||||
}
|
|
||||||
else if((fp = fopen("/etc/make.conf", "r")) != NULL)
|
|
||||||
{
|
{
|
||||||
char keywords[bsize];
|
char keywords[bsize];
|
||||||
while(fgets(buffer, bsize, fp) != NULL)
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
@@ -424,6 +411,20 @@ int xs_parse_distro(char *name)
|
|||||||
fgets(buffer, bsize, fp);
|
fgets(buffer, bsize, fp);
|
||||||
else if((fp = fopen("/etc/arch-release", "r")) != NULL)
|
else if((fp = fopen("/etc/arch-release", "r")) != NULL)
|
||||||
snprintf(buffer, bsize, "ArchLinux");
|
snprintf(buffer, bsize, "ArchLinux");
|
||||||
|
else if((fp = fopen("/etc/lsb-release", "r")) != NULL)
|
||||||
|
{
|
||||||
|
char id[bsize], codename[bsize], release[bsize];
|
||||||
|
strcpy(id, "?");
|
||||||
|
strcpy(codename, "?");
|
||||||
|
strcpy(release, "?");
|
||||||
|
while(fgets(buffer, bsize, fp) != NULL)
|
||||||
|
{
|
||||||
|
find_match_char(buffer, "DISTRIB_ID", id);
|
||||||
|
find_match_char(buffer, "DISTRIB_CODENAME", codename);
|
||||||
|
find_match_char(buffer, "DISTRIB_RELEASE", release);
|
||||||
|
}
|
||||||
|
snprintf(buffer, bsize, "%s \"%s\" %s", id, codename, release);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
snprintf(buffer, bsize, "Unknown Distro");
|
snprintf(buffer, bsize, "Unknown Distro");
|
||||||
if(fp != NULL) fclose(fp);
|
if(fp != NULL) fclose(fp);
|
||||||
@@ -438,8 +439,10 @@ int xs_parse_hwmon_chip(char *chip)
|
|||||||
{
|
{
|
||||||
if (!hwmon_chip_present())
|
if (!hwmon_chip_present())
|
||||||
return 1;
|
return 1;
|
||||||
|
#if 0
|
||||||
else
|
else
|
||||||
get_hwmon_chip_name(chip);
|
get_hwmon_chip_name(chip);
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -31,6 +31,7 @@ static hexchat_plugin *ph; /* plugin handle */
|
|||||||
static char name[] = "SysInfo";
|
static char name[] = "SysInfo";
|
||||||
static char desc[] = "Display info about your hardware and OS";
|
static char desc[] = "Display info about your hardware and OS";
|
||||||
static char version[] = "1.1";
|
static char version[] = "1.1";
|
||||||
|
static char helptext[] = "USAGE: /sysinfo - Sends info about your hardware and OS to current channel.";
|
||||||
static int firstRun;
|
static int firstRun;
|
||||||
static char *wmiOs;
|
static char *wmiOs;
|
||||||
static char *wmiCpu;
|
static char *wmiCpu;
|
||||||
@@ -397,8 +398,8 @@ hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **p
|
|||||||
|
|
||||||
firstRun = 1;
|
firstRun = 1;
|
||||||
|
|
||||||
hexchat_hook_command (ph, "SYSINFO", HEXCHAT_PRI_NORM, printInfo, NULL, NULL);
|
hexchat_hook_command (ph, "SYSINFO", HEXCHAT_PRI_NORM, printInfo, helptext, NULL);
|
||||||
hexchat_command (ph, "MENU -ietc\\system.png ADD \"Window/Display System Info\" \"SYSINFO\"");
|
hexchat_command (ph, "MENU -ishare\\system.png ADD \"Window/Send System Info\" \"SYSINFO\"");
|
||||||
|
|
||||||
hexchat_printf (ph, "%s plugin loaded\n", name);
|
hexchat_printf (ph, "%s plugin loaded\n", name);
|
||||||
|
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SYSINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SYSINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -78,7 +80,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;SYSINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;SYSINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#define DEFAULT_FORMAT "%B%1:%B %2 **"
|
#define DEFAULT_FORMAT "%B%1:%B %2 **"
|
||||||
#define DEFAULT_PERCENT 1
|
#define DEFAULT_PERCENT 1
|
||||||
|
#define DEFAULT_ANNOUNCE 1
|
||||||
#define DEFAULT_PCIIDS "/usr/share/hwdata/pci.ids"
|
#define DEFAULT_PCIIDS "/usr/share/hwdata/pci.ids"
|
||||||
|
|
||||||
static hexchat_plugin *ph; /* plugin handle */
|
static hexchat_plugin *ph; /* plugin handle */
|
||||||
@@ -43,7 +44,7 @@ static int error_printed = 0; /* semaphore, make sure not to print the same erro
|
|||||||
static char name[] = "SysInfo";
|
static char name[] = "SysInfo";
|
||||||
static char desc[] = "Display info about your hardware and OS";
|
static char desc[] = "Display info about your hardware and OS";
|
||||||
static char version[] = "3.0";
|
static char version[] = "3.0";
|
||||||
static char sysinfo_help[] = "SysInfo Usage:\n /SYSINFO [OS|DISTRO|CPU|RAM|DISK|VGA|SOUND|ETHERNET|UPTIME], print various details about your system or print a summary without arguments\n /SYSINFO LIST, print current settings\n /SYSINFO SET <variable>, update given setting\n /SYSINFO RESET, reset settings to defaults\n /NETDATA <iface>, show transmitted data on given interface\n /NETSTREAM <iface>, show current bandwidth on given interface\n";
|
static char sysinfo_help[] = "SysInfo Usage:\n /SYSINFO [-e|-o] [OS|DISTRO|CPU|RAM|DISK|VGA|SOUND|ETHERNET|UPTIME], print various details about your system or print a summary without arguments\n /SYSINFO LIST, print current settings\n /SYSINFO SET <variable>, update given setting\n /SYSINFO RESET, reset settings to defaults\n /NETDATA <iface>, show transmitted data on given interface\n /NETSTREAM <iface>, show current bandwidth on given interface\n";
|
||||||
|
|
||||||
void
|
void
|
||||||
sysinfo_get_pciids (char* dest)
|
sysinfo_get_pciids (char* dest)
|
||||||
@@ -57,6 +58,12 @@ sysinfo_get_percent ()
|
|||||||
return hexchat_pluginpref_get_int (ph, "percent");
|
return hexchat_pluginpref_get_int (ph, "percent");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
sysinfo_get_announce ()
|
||||||
|
{
|
||||||
|
return hexchat_pluginpref_get_int (ph, "announce");
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sysinfo_print_error (const char* msg)
|
sysinfo_print_error (const char* msg)
|
||||||
{
|
{
|
||||||
@@ -705,13 +712,15 @@ reset_settings ()
|
|||||||
hexchat_pluginpref_set_str (ph, "pciids", DEFAULT_PCIIDS);
|
hexchat_pluginpref_set_str (ph, "pciids", DEFAULT_PCIIDS);
|
||||||
hexchat_pluginpref_set_str (ph, "format", DEFAULT_FORMAT);
|
hexchat_pluginpref_set_str (ph, "format", DEFAULT_FORMAT);
|
||||||
hexchat_pluginpref_set_int (ph, "percent", DEFAULT_PERCENT);
|
hexchat_pluginpref_set_int (ph, "percent", DEFAULT_PERCENT);
|
||||||
|
hexchat_pluginpref_set_int (ph, "announce", DEFAULT_ANNOUNCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
sysinfo_cb (char *word[], char *word_eol[], void *userdata)
|
sysinfo_cb (char *word[], char *word_eol[], void *userdata)
|
||||||
{
|
{
|
||||||
error_printed = 0;
|
error_printed = 0;
|
||||||
int announce = 0;
|
int announce = sysinfo_get_announce ();
|
||||||
|
int offset = 0;
|
||||||
int buffer;
|
int buffer;
|
||||||
char format[bsize];
|
char format[bsize];
|
||||||
|
|
||||||
@@ -721,36 +730,49 @@ sysinfo_cb (char *word[], char *word_eol[], void *userdata)
|
|||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hexchat_list_int (ph, NULL, "type") >= 2)
|
/* Cannot send to server tab */
|
||||||
|
if (hexchat_list_int (ph, NULL, "type") == 1)
|
||||||
{
|
{
|
||||||
announce = 1;
|
announce = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!g_ascii_strcasecmp ("HELP", word[2]))
|
/* Allow overriding global announce setting */
|
||||||
|
if (!strcmp ("-e", word[2]))
|
||||||
|
{
|
||||||
|
announce = 0;
|
||||||
|
offset++;
|
||||||
|
}
|
||||||
|
else if (!strcmp ("-o", word[2]))
|
||||||
|
{
|
||||||
|
announce = 1;
|
||||||
|
offset++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!g_ascii_strcasecmp ("HELP", word[2+offset]))
|
||||||
{
|
{
|
||||||
hexchat_printf (ph, sysinfo_help);
|
hexchat_printf (ph, sysinfo_help);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("LIST", word[2]))
|
else if (!g_ascii_strcasecmp ("LIST", word[2+offset]))
|
||||||
{
|
{
|
||||||
list_settings ();
|
list_settings ();
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("SET", word[2]))
|
else if (!g_ascii_strcasecmp ("SET", word[2+offset]))
|
||||||
{
|
{
|
||||||
if (!g_ascii_strcasecmp ("", word_eol[4]))
|
if (!g_ascii_strcasecmp ("", word_eol[4+offset]))
|
||||||
{
|
{
|
||||||
hexchat_printf (ph, "%s\tEnter a value!\n", name);
|
hexchat_printf (ph, "%s\tEnter a value!\n", name);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
if (!g_ascii_strcasecmp ("format", word[3]))
|
if (!g_ascii_strcasecmp ("format", word[3+offset]))
|
||||||
{
|
{
|
||||||
hexchat_pluginpref_set_str (ph, "format", word_eol[4]);
|
hexchat_pluginpref_set_str (ph, "format", word_eol[4+offset]);
|
||||||
hexchat_printf (ph, "%s\tformat is set to: %s\n", name, word_eol[4]);
|
hexchat_printf (ph, "%s\tformat is set to: %s\n", name, word_eol[4+offset]);
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("percent", word[3]))
|
else if (!g_ascii_strcasecmp ("percent", word[3+offset]))
|
||||||
{
|
{
|
||||||
buffer = atoi (word[4]); /* don't use word_eol, numbers must not contain spaces */
|
buffer = atoi (word[4+offset]); /* don't use word_eol, numbers must not contain spaces */
|
||||||
|
|
||||||
if (buffer > 0 && buffer < INT_MAX)
|
if (buffer > 0 && buffer < INT_MAX)
|
||||||
{
|
{
|
||||||
@@ -762,10 +784,25 @@ sysinfo_cb (char *word[], char *word_eol[], void *userdata)
|
|||||||
hexchat_printf (ph, "%s\tInvalid input!\n", name);
|
hexchat_printf (ph, "%s\tInvalid input!\n", name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("pciids", word[3]))
|
else if (!g_ascii_strcasecmp ("announce", word[3+offset]))
|
||||||
{
|
{
|
||||||
hexchat_pluginpref_set_str (ph, "pciids", word_eol[4]);
|
buffer = atoi (word[4+offset]); /* don't use word_eol, numbers must not contain spaces */
|
||||||
hexchat_printf (ph, "%s\tpciids is set to: %s\n", name, word_eol[4]);
|
|
||||||
|
if (buffer > 0)
|
||||||
|
{
|
||||||
|
hexchat_pluginpref_set_int (ph, "announce", 1);
|
||||||
|
hexchat_printf (ph, "%s\tannounce is set to: On\n", name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hexchat_pluginpref_set_int (ph, "announce", 0);
|
||||||
|
hexchat_printf (ph, "%s\tannounce is set to: Off\n", name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!g_ascii_strcasecmp ("pciids", word[3+offset]))
|
||||||
|
{
|
||||||
|
hexchat_pluginpref_set_str (ph, "pciids", word_eol[4+offset]);
|
||||||
|
hexchat_printf (ph, "%s\tpciids is set to: %s\n", name, word_eol[4+offset]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -775,58 +812,58 @@ sysinfo_cb (char *word[], char *word_eol[], void *userdata)
|
|||||||
|
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("RESET", word[2]))
|
else if (!g_ascii_strcasecmp ("RESET", word[2+offset]))
|
||||||
{
|
{
|
||||||
reset_settings ();
|
reset_settings ();
|
||||||
hexchat_printf (ph, "%s\tSettings have been restored to defaults.\n", name);
|
hexchat_printf (ph, "%s\tSettings have been restored to defaults.\n", name);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("OS", word[2]))
|
else if (!g_ascii_strcasecmp ("OS", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_os (announce, format);
|
print_os (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("DISTRO", word[2]))
|
else if (!g_ascii_strcasecmp ("DISTRO", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_distro (announce, format);
|
print_distro (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("CPU", word[2]))
|
else if (!g_ascii_strcasecmp ("CPU", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_cpu (announce, format);
|
print_cpu (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("RAM", word[2]))
|
else if (!g_ascii_strcasecmp ("RAM", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_ram (announce, format);
|
print_ram (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("DISK", word[2]))
|
else if (!g_ascii_strcasecmp ("DISK", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_disk (announce, format);
|
print_disk (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("VGA", word[2]))
|
else if (!g_ascii_strcasecmp ("VGA", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_vga (announce, format);
|
print_vga (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("SOUND", word[2]))
|
else if (!g_ascii_strcasecmp ("SOUND", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_sound (announce, format);
|
print_sound (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("ETHERNET", word[2]))
|
else if (!g_ascii_strcasecmp ("ETHERNET", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_ethernet (announce, format);
|
print_ethernet (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("UPTIME", word[2]))
|
else if (!g_ascii_strcasecmp ("UPTIME", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_uptime (announce, format);
|
print_uptime (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
}
|
}
|
||||||
else if (!g_ascii_strcasecmp ("", word[2]))
|
else if (!g_ascii_strcasecmp ("", word[2+offset]))
|
||||||
{
|
{
|
||||||
print_summary (announce, format);
|
print_summary (announce, format);
|
||||||
return HEXCHAT_EAT_ALL;
|
return HEXCHAT_EAT_ALL;
|
||||||
@@ -867,7 +904,12 @@ hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **p
|
|||||||
hexchat_pluginpref_set_int (ph, "percent", DEFAULT_PERCENT);
|
hexchat_pluginpref_set_int (ph, "percent", DEFAULT_PERCENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
hexchat_command (ph, "MENU ADD \"Window/Display System Info\" \"SYSINFO\"");
|
if (hexchat_pluginpref_get_int (ph, "announce") == -1)
|
||||||
|
{
|
||||||
|
hexchat_pluginpref_set_int (ph, "announce", DEFAULT_ANNOUNCE);
|
||||||
|
}
|
||||||
|
|
||||||
|
hexchat_command (ph, "MENU ADD \"Window/Send System Info\" \"SYSINFO\"");
|
||||||
hexchat_printf (ph, "%s plugin loaded\n", name);
|
hexchat_printf (ph, "%s plugin loaded\n", name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -27,74 +27,19 @@
|
|||||||
|
|
||||||
#include "hexchat-plugin.h"
|
#include "hexchat-plugin.h"
|
||||||
|
|
||||||
#define DEFAULT_DELAY 10 /* 10 seconds */
|
#define DEFAULT_DELAY 30 /* 30 seconds */
|
||||||
#define DEFAULT_FREQ 360 /* 6 hours */
|
#define DEFAULT_FREQ 360 /* 6 hours */
|
||||||
|
#define DOWNLOAD_URL "http://dl.hexchat.net/hexchat"
|
||||||
|
|
||||||
static hexchat_plugin *ph; /* plugin handle */
|
static hexchat_plugin *ph; /* plugin handle */
|
||||||
static char name[] = "Update Checker";
|
static char name[] = "Update Checker";
|
||||||
static char desc[] = "Check for HexChat updates automatically";
|
static char desc[] = "Check for HexChat updates automatically";
|
||||||
static char version[] = "4.0";
|
static char version[] = "4.0";
|
||||||
static const char upd_help[] = "Update Checker Usage:\n /UPDCHK, check for HexChat updates\n /UPDCHK SET delay|freq, set startup delay or check frequency\n";
|
static const char upd_help[] = "Update Checker Usage:\n /UPDCHK, check for HexChat updates\n /UPDCHK SET delay|freq, set startup delay or check frequency\n";
|
||||||
static int legacy_os = 0;
|
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
check_version ()
|
check_version ()
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
HINTERNET hINet, hFile;
|
|
||||||
hINet = InternetOpen ("Update Checker", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
|
|
||||||
|
|
||||||
if (!hINet)
|
|
||||||
{
|
|
||||||
return "Unknown";
|
|
||||||
}
|
|
||||||
|
|
||||||
hFile = InternetOpenUrl (hINet,
|
|
||||||
"https://raw.github.com/hexchat/hexchat/master/win32/version.txt",
|
|
||||||
NULL,
|
|
||||||
0,
|
|
||||||
INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD,
|
|
||||||
0);
|
|
||||||
if (hFile)
|
|
||||||
{
|
|
||||||
static char buffer[1024];
|
|
||||||
DWORD dwRead;
|
|
||||||
while (InternetReadFile (hFile, buffer, 1023, &dwRead))
|
|
||||||
{
|
|
||||||
if (dwRead == 0)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
buffer[dwRead] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
InternetCloseHandle (hFile);
|
|
||||||
InternetCloseHandle (hINet);
|
|
||||||
if (strlen (buffer) == 5)
|
|
||||||
return buffer;
|
|
||||||
else
|
|
||||||
return "Unknown";
|
|
||||||
}
|
|
||||||
|
|
||||||
InternetCloseHandle (hINet);
|
|
||||||
return "Unknown";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Google Code's messing up with requests, use HTTP/1.0 as suggested. More info:
|
|
||||||
|
|
||||||
http://code.google.com/p/support/issues/detail?id=6095
|
|
||||||
|
|
||||||
Of course it would be still too simple, coz IE will override settings, so
|
|
||||||
you have to disable HTTP/1.1 manually and globally. More info:
|
|
||||||
|
|
||||||
http://support.microsoft.com/kb/258425
|
|
||||||
|
|
||||||
So this code's basically useless since disabling HTTP/1.1 will work with the
|
|
||||||
above code too.
|
|
||||||
|
|
||||||
Update: a Connection: close header seems to disable chunked encoding.
|
|
||||||
*/
|
|
||||||
|
|
||||||
HINTERNET hOpen, hConnect, hResource;
|
HINTERNET hOpen, hConnect, hResource;
|
||||||
|
|
||||||
hOpen = InternetOpen (TEXT ("Update Checker"),
|
hOpen = InternetOpen (TEXT ("Update Checker"),
|
||||||
@@ -121,19 +66,6 @@ check_version ()
|
|||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (legacy_os)
|
|
||||||
{
|
|
||||||
hResource = HttpOpenRequest (hConnect,
|
|
||||||
TEXT ("GET"),
|
|
||||||
TEXT ("/hexchat/hexchat/master/win32/version-xp.txt"),
|
|
||||||
TEXT ("HTTP/1.0"),
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hResource = HttpOpenRequest (hConnect,
|
hResource = HttpOpenRequest (hConnect,
|
||||||
TEXT ("GET"),
|
TEXT ("GET"),
|
||||||
TEXT ("/hexchat/hexchat/master/win32/version.txt"),
|
TEXT ("/hexchat/hexchat/master/win32/version.txt"),
|
||||||
@@ -142,9 +74,6 @@ check_version ()
|
|||||||
NULL,
|
NULL,
|
||||||
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH,
|
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH,
|
||||||
0);
|
0);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!hResource)
|
if (!hResource)
|
||||||
{
|
{
|
||||||
InternetCloseHandle (hConnect);
|
InternetCloseHandle (hConnect);
|
||||||
@@ -154,7 +83,11 @@ check_version ()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
static char buffer[1024];
|
static char buffer[1024];
|
||||||
|
char infobuffer[32];
|
||||||
|
int statuscode;
|
||||||
|
|
||||||
DWORD dwRead;
|
DWORD dwRead;
|
||||||
|
DWORD infolen = sizeof(infobuffer);
|
||||||
|
|
||||||
HttpAddRequestHeaders (hResource, TEXT ("Connection: close\r\n"), -1L, HTTP_ADDREQ_FLAG_ADD); /* workaround for GC bug */
|
HttpAddRequestHeaders (hResource, TEXT ("Connection: close\r\n"), -1L, HTTP_ADDREQ_FLAG_ADD); /* workaround for GC bug */
|
||||||
HttpSendRequest (hResource, NULL, 0, NULL, 0);
|
HttpSendRequest (hResource, NULL, 0, NULL, 0);
|
||||||
@@ -168,10 +101,18 @@ check_version ()
|
|||||||
buffer[dwRead] = 0;
|
buffer[dwRead] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HttpQueryInfo(hResource,
|
||||||
|
HTTP_QUERY_STATUS_CODE,
|
||||||
|
&infobuffer,
|
||||||
|
&infolen,
|
||||||
|
NULL);
|
||||||
|
|
||||||
InternetCloseHandle (hResource);
|
InternetCloseHandle (hResource);
|
||||||
InternetCloseHandle (hConnect);
|
InternetCloseHandle (hConnect);
|
||||||
InternetCloseHandle (hOpen);
|
InternetCloseHandle (hOpen);
|
||||||
if (strlen (buffer) == 5)
|
|
||||||
|
statuscode = atoi(infobuffer);
|
||||||
|
if (statuscode == 200)
|
||||||
return buffer;
|
return buffer;
|
||||||
else
|
else
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
@@ -250,9 +191,9 @@ print_version (char *word[], char *word_eol[], void *userdata)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef _WIN64 /* use this approach, the wProcessorArchitecture method always returns 0 (=x86) for some reason */
|
#ifdef _WIN64 /* use this approach, the wProcessorArchitecture method always returns 0 (=x86) for some reason */
|
||||||
hexchat_printf (ph, "%s\tA HexChat update is available! You can download it from here:\nhttp://dl.hexchat.org/hexchat/HexChat%%20%s%%20x64.exe\n", name, version);
|
hexchat_printf (ph, "%s:\tA HexChat update is available! You can download it from here:\n%s/HexChat%%20%s%%20x64.exe\n", name, DOWNLOAD_URL, version);
|
||||||
#else
|
#else
|
||||||
hexchat_printf (ph, "%s\tA HexChat update is available! You can download it from here:\nhttp://dl.hexchat.org/hexchat/HexChat%%20%s%%20x86.exe\n", name, version);
|
hexchat_printf (ph, "%s:\tA HexChat update is available! You can download it from here:\n%s/HexChat%%20%s%%20x86.exe\n", name, DOWNLOAD_URL, version);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return HEXCHAT_EAT_HEXCHAT;
|
return HEXCHAT_EAT_HEXCHAT;
|
||||||
@@ -273,9 +214,9 @@ print_version_quiet (void *userdata)
|
|||||||
if (!(strcmp (version, hexchat_get_info (ph, "version")) == 0) && !(strcmp (version, "Unknown") == 0))
|
if (!(strcmp (version, hexchat_get_info (ph, "version")) == 0) && !(strcmp (version, "Unknown") == 0))
|
||||||
{
|
{
|
||||||
#ifdef _WIN64 /* use this approach, the wProcessorArchitecture method always returns 0 (=x86) for plugins for some reason */
|
#ifdef _WIN64 /* use this approach, the wProcessorArchitecture method always returns 0 (=x86) for plugins for some reason */
|
||||||
hexchat_printf (ph, "%s\tA HexChat update is available! You can download it from here:\nhttps://github.com/downloads/hexchat/hexchat/HexChat%%20%s%%20x64.exe\n", name, version);
|
hexchat_printf (ph, "%s\tA HexChat update is available! You can download it from here:\n%s/HexChat%%20%s%%20x64.exe\n", name, DOWNLOAD_URL, version);
|
||||||
#else
|
#else
|
||||||
hexchat_printf (ph, "%s\tA HexChat update is available! You can download it from here:\nhttps://github.com/downloads/hexchat/hexchat/HexChat%%20%s%%20x86.exe\n", name, version);
|
hexchat_printf (ph, "%s\tA HexChat update is available! You can download it from here:\n%s/HexChat%%20%s%%20x86.exe\n", name, DOWNLOAD_URL, version);
|
||||||
#endif
|
#endif
|
||||||
/* print update url once, then stop the timer */
|
/* print update url once, then stop the timer */
|
||||||
return 0;
|
return 0;
|
||||||
@@ -303,21 +244,12 @@ int
|
|||||||
hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
|
hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
|
||||||
{
|
{
|
||||||
int delay;
|
int delay;
|
||||||
OSVERSIONINFOEX osvi;
|
|
||||||
ph = plugin_handle;
|
ph = plugin_handle;
|
||||||
|
|
||||||
*plugin_name = name;
|
*plugin_name = name;
|
||||||
*plugin_desc = desc;
|
*plugin_desc = desc;
|
||||||
*plugin_version = version;
|
*plugin_version = version;
|
||||||
|
|
||||||
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
|
|
||||||
GetVersionEx ((OSVERSIONINFO*) &osvi);
|
|
||||||
|
|
||||||
if (osvi.dwMajorVersion == 5)
|
|
||||||
{
|
|
||||||
legacy_os = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* these are required for the very first run */
|
/* these are required for the very first run */
|
||||||
delay = hexchat_pluginpref_get_int (ph, "delay");
|
delay = hexchat_pluginpref_get_int (ph, "delay");
|
||||||
if (delay == -1)
|
if (delay == -1)
|
||||||
@@ -333,7 +265,7 @@ hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **p
|
|||||||
|
|
||||||
hexchat_hook_command (ph, "UPDCHK", HEXCHAT_PRI_NORM, print_version, upd_help, NULL);
|
hexchat_hook_command (ph, "UPDCHK", HEXCHAT_PRI_NORM, print_version, upd_help, NULL);
|
||||||
hexchat_hook_timer (ph, delay * 1000, delayed_check, NULL);
|
hexchat_hook_timer (ph, delay * 1000, delayed_check, NULL);
|
||||||
hexchat_command (ph, "MENU -ietc\\download.png ADD \"Help/Check for Updates\" \"UPDCHK\"");
|
hexchat_command (ph, "MENU -ishare\\download.png ADD \"Help/Check for Updates\" \"UPDCHK\"");
|
||||||
hexchat_printf (ph, "%s plugin loaded\n", name);
|
hexchat_printf (ph, "%s plugin loaded\n", name);
|
||||||
|
|
||||||
return 1; /* return 1 for success */
|
return 1; /* return 1 for success */
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -77,7 +79,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -173,7 +173,7 @@ hexchat_plugin_init(hexchat_plugin *plugin_handle,
|
|||||||
*plugin_version = "0.5";
|
*plugin_version = "0.5";
|
||||||
|
|
||||||
hexchat_hook_command (ph, "WINAMP", HEXCHAT_PRI_NORM, winamp, "Usage: /WINAMP [PAUSE|PLAY|STOP|NEXT|PREV|START] - control Winamp or show what's currently playing", 0);
|
hexchat_hook_command (ph, "WINAMP", HEXCHAT_PRI_NORM, winamp, "Usage: /WINAMP [PAUSE|PLAY|STOP|NEXT|PREV|START] - control Winamp or show what's currently playing", 0);
|
||||||
hexchat_command (ph, "MENU -ietc\\music.png ADD \"Window/Display Current Song (Winamp)\" \"WINAMP\"");
|
hexchat_command (ph, "MENU -ishare\\music.png ADD \"Window/Display Current Song (Winamp)\" \"WINAMP\"");
|
||||||
|
|
||||||
hexchat_print (ph, "Winamp plugin loaded\n");
|
hexchat_print (ph, "Winamp plugin loaded\n");
|
||||||
|
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset>v120</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
@@ -56,7 +59,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -75,7 +77,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@@ -1,70 +0,0 @@
|
|||||||
========================================================================
|
|
||||||
MICROSOFT FOUNDATION CLASS LIBRARY : wmpa
|
|
||||||
========================================================================
|
|
||||||
|
|
||||||
|
|
||||||
AppWizard has created this wmpa DLL for you. This DLL not only
|
|
||||||
demonstrates the basics of using the Microsoft Foundation classes but
|
|
||||||
is also a starting point for writing your DLL.
|
|
||||||
|
|
||||||
This file contains a summary of what you will find in each of the files that
|
|
||||||
make up your wmpa DLL.
|
|
||||||
|
|
||||||
wmpa.dsp
|
|
||||||
This file (the project file) contains information at the project level and
|
|
||||||
is used to build a single project or subproject. Other users can share the
|
|
||||||
project (.dsp) file, but they should export the makefiles locally.
|
|
||||||
|
|
||||||
wmpa.h
|
|
||||||
This is the main header file for the DLL. It declares the
|
|
||||||
CWmpaApp class.
|
|
||||||
|
|
||||||
wmpa.cpp
|
|
||||||
This is the main DLL source file. It contains the class CWmpaApp.
|
|
||||||
It also contains the OLE entry points required of inproc servers.
|
|
||||||
|
|
||||||
wmpa.odl
|
|
||||||
This file contains the Object Description Language source code for the
|
|
||||||
type library of your DLL.
|
|
||||||
|
|
||||||
wmpa.rc
|
|
||||||
This is a listing of all of the Microsoft Windows resources that the
|
|
||||||
program uses. It includes the icons, bitmaps, and cursors that are stored
|
|
||||||
in the RES subdirectory. This file can be directly edited in Microsoft
|
|
||||||
Visual C++.
|
|
||||||
|
|
||||||
wmpa.clw
|
|
||||||
This file contains information used by ClassWizard to edit existing
|
|
||||||
classes or add new classes. ClassWizard also uses this file to store
|
|
||||||
information needed to create and edit message maps and dialog data
|
|
||||||
maps and to create prototype member functions.
|
|
||||||
|
|
||||||
res\wmpa.rc2
|
|
||||||
This file contains resources that are not edited by Microsoft
|
|
||||||
Visual C++. You should place all resources not editable by
|
|
||||||
the resource editor in this file.
|
|
||||||
|
|
||||||
wmpa.def
|
|
||||||
This file contains information about the DLL that must be
|
|
||||||
provided to run with Microsoft Windows. It defines parameters
|
|
||||||
such as the name and description of the DLL. It also exports
|
|
||||||
functions from the DLL.
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
Other standard files:
|
|
||||||
|
|
||||||
StdAfx.h, StdAfx.cpp
|
|
||||||
These files are used to build a precompiled header (PCH) file
|
|
||||||
named wmpa.pch and a precompiled types file named StdAfx.obj.
|
|
||||||
|
|
||||||
Resource.h
|
|
||||||
This is the standard header file, which defines new resource IDs.
|
|
||||||
Microsoft Visual C++ reads and updates this file.
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
Other notes:
|
|
||||||
|
|
||||||
AppWizard uses "TODO:" to indicate parts of the source code you
|
|
||||||
should add to or customize.
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
@@ -1,8 +0,0 @@
|
|||||||
// stdafx.cpp : source file that includes just the standard includes
|
|
||||||
// wmpa.pch will be the pre-compiled header
|
|
||||||
// stdafx.obj will contain the pre-compiled type information
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -1,62 +0,0 @@
|
|||||||
// stdafx.h : include file for standard system include files,
|
|
||||||
// or project specific include files that are used frequently, but
|
|
||||||
// are changed infrequently
|
|
||||||
//
|
|
||||||
|
|
||||||
#if !defined(AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_)
|
|
||||||
#define AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
|
|
||||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
|
||||||
|
|
||||||
#include <afxwin.h> // MFC core and standard components
|
|
||||||
#include <afxext.h> // MFC extensions
|
|
||||||
|
|
||||||
#ifndef _AFX_NO_OLE_SUPPORT
|
|
||||||
#include <afxole.h> // MFC OLE classes
|
|
||||||
#include <afxodlgs.h> // MFC OLE dialog classes
|
|
||||||
#include <afxdisp.h> // MFC Automation classes
|
|
||||||
#endif // _AFX_NO_OLE_SUPPORT
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _AFX_NO_DB_SUPPORT
|
|
||||||
#include <afxdb.h> // MFC ODBC database classes
|
|
||||||
#endif // _AFX_NO_DB_SUPPORT
|
|
||||||
|
|
||||||
#ifndef _AFX_NO_DAO_SUPPORT
|
|
||||||
#include <afxdao.h> // MFC DAO database classes
|
|
||||||
#endif // _AFX_NO_DAO_SUPPORT
|
|
||||||
|
|
||||||
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
|
|
||||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
|
||||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
|
||||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* Includes
|
|
||||||
******************************************************************/
|
|
||||||
#include "wmpcdrom.h"
|
|
||||||
#include "wmpcdromcollection.h"
|
|
||||||
#include "wmpclosedcaption.h"
|
|
||||||
#include "wmpcontrols.h"
|
|
||||||
#include "wmpdvd.h"
|
|
||||||
#include "wmperror.h"
|
|
||||||
#include "wmperroritem.h"
|
|
||||||
#include "wmpmedia.h"
|
|
||||||
#include "wmpmediacollection.h"
|
|
||||||
#include "wmpnetwork.h"
|
|
||||||
#include "wmpplayer4.h"
|
|
||||||
#include "wmpplayerapplication.h"
|
|
||||||
#include "wmpplaylist.h"
|
|
||||||
#include "wmpplaylistarray.h"
|
|
||||||
#include "wmpplaylistcollection.h"
|
|
||||||
#include "wmpsettings.h"
|
|
||||||
#include "wmpstringcollection.h"
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_)
|
|
@@ -1,590 +0,0 @@
|
|||||||
/******************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* $Log$
|
|
||||||
*
|
|
||||||
* Copyright <20> 2005 David Cullen, All rights reserved
|
|
||||||
*
|
|
||||||
******************************************************************/
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "hexchat-plugin.h"
|
|
||||||
#include <windows.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
#include "wmpa.h"
|
|
||||||
#include "WMPADialog.h"
|
|
||||||
|
|
||||||
#define XMMS_SESSION 0
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* Globalss
|
|
||||||
******************************************************************/
|
|
||||||
hexchat_plugin *ph = NULL;
|
|
||||||
CWMPPlayer4 *wmp;
|
|
||||||
static const char subKey[] = "Software\\FlowerSoft\\WMPA";
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* hexchat_plugin_init
|
|
||||||
******************************************************************/
|
|
||||||
int hexchat_plugin_init(hexchat_plugin *plugin_handle,
|
|
||||||
char **plugin_name,
|
|
||||||
char **plugin_desc,
|
|
||||||
char **plugin_version,
|
|
||||||
char *arg)
|
|
||||||
{
|
|
||||||
BOOL success;
|
|
||||||
|
|
||||||
ph = plugin_handle;
|
|
||||||
|
|
||||||
*plugin_name = "WMPA";
|
|
||||||
*plugin_desc = "Announce the current song from Windows Media Player.";
|
|
||||||
*plugin_version = VER_STRING;
|
|
||||||
|
|
||||||
// Show the song browser
|
|
||||||
success = StartWindowsMediaPlayer();
|
|
||||||
if (!success) {
|
|
||||||
hexchat_printf(ph, "WMPA: Failed to show the song browser.");
|
|
||||||
hexchat_printf(ph, "WMPA: Could not load plug-in version %s.", VER_STRING);
|
|
||||||
return(E_FAIL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get a pointer to the Windows Media Player control
|
|
||||||
wmp = GetWindowsMediaPlayer();
|
|
||||||
if (wmp == NULL) {
|
|
||||||
hexchat_printf(ph, "WMPA: Failed to get a pointer to the Windows Media Player interface.");
|
|
||||||
hexchat_printf(ph, "WMPA: Could not load plug-in version %s.", VER_STRING);
|
|
||||||
return(E_POINTER);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Restore the settings (need wmp first)
|
|
||||||
success = wmpaRestoreSettings();
|
|
||||||
if (!success) {
|
|
||||||
hexchat_printf(ph, "WMPA: Failed to restore the settings.");
|
|
||||||
}
|
|
||||||
|
|
||||||
hexchat_hook_command(ph, "auto", HEXCHAT_PRI_NORM, wmpaAuto, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "curr", HEXCHAT_PRI_NORM, wmpaCurr, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "find", HEXCHAT_PRI_NORM, wmpaFind, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "slist", HEXCHAT_PRI_NORM, wmpaList, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "next", HEXCHAT_PRI_NORM, wmpaNext, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "play", HEXCHAT_PRI_NORM, wmpaPlay, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "pause", HEXCHAT_PRI_NORM, wmpaPause, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "prev", HEXCHAT_PRI_NORM, wmpaPrev, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "song", HEXCHAT_PRI_NORM, wmpaSong, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "stop", HEXCHAT_PRI_NORM, wmpaStop, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "volume", HEXCHAT_PRI_NORM, wmpaVolume, 0, 0);
|
|
||||||
hexchat_hook_command(ph, "wmpahelp", HEXCHAT_PRI_NORM, wmpaHelp, 0, 0);
|
|
||||||
|
|
||||||
hexchat_printf(ph, "WMPA %s successfully loaded.", VER_STRING);
|
|
||||||
wmpaCommands();
|
|
||||||
hexchat_printf(ph, "WMPA: e-mail me if you find any bugs: dcullen@intergate.com");
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* hexchat_plugin_deinit
|
|
||||||
******************************************************************/
|
|
||||||
int hexchat_plugin_deinit(void)
|
|
||||||
{
|
|
||||||
BOOL success;
|
|
||||||
|
|
||||||
hexchat_printf(ph, "WMPA %s is unloading.", VER_STRING);
|
|
||||||
|
|
||||||
// Save the settings
|
|
||||||
success = wmpaSaveSettings();
|
|
||||||
if (!success) {
|
|
||||||
hexchat_printf(ph, "WMPA: Failed to save the settings.");
|
|
||||||
}
|
|
||||||
|
|
||||||
wmp = NULL;
|
|
||||||
|
|
||||||
BOOL result = StopWindowsMediaPlayer();
|
|
||||||
if (!result) {
|
|
||||||
hexchat_printf(ph, "WMPA could not shut down Windows Media Player.");
|
|
||||||
}
|
|
||||||
|
|
||||||
hexchat_printf(ph, "WMPA %s has unloaded.", VER_STRING);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* hexchat_plugin_get_info
|
|
||||||
******************************************************************/
|
|
||||||
void hexchat_plugin_get_info(char **name, char **desc, char **version, void **reserved)
|
|
||||||
{
|
|
||||||
*name = "WMPA";
|
|
||||||
*desc = "Announce the current song from Windows Media Player.";
|
|
||||||
*version = VER_STRING;
|
|
||||||
if (reserved) *reserved = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaCommands
|
|
||||||
******************************************************************/
|
|
||||||
void wmpaCommands(void)
|
|
||||||
{
|
|
||||||
hexchat_printf(ph, "WMPA: /auto [on/off] : Turn on/off auto announce of the current song or display the current setting");
|
|
||||||
hexchat_printf(ph, "WMPA: /curr : Tell what song is currently playing");
|
|
||||||
hexchat_printf(ph, "WMPA: /find [word] : Find songs with \"word\" in their title, create a new playlist, and play it");
|
|
||||||
hexchat_printf(ph, "WMPA: /slist [word] : List songs with \"word\" in their title");
|
|
||||||
hexchat_printf(ph, "WMPA: /next : Play the next song");
|
|
||||||
hexchat_printf(ph, "WMPA: /play : Play the current song");
|
|
||||||
hexchat_printf(ph, "WMPA: /pause : Pause the current song");
|
|
||||||
hexchat_printf(ph, "WMPA: /prev : Play the previous song");
|
|
||||||
hexchat_printf(ph, "WMPA: /song : Announce the current song from Windows Media Player in HexChat");
|
|
||||||
hexchat_printf(ph, "WMPA: /stop : Stop the current song");
|
|
||||||
hexchat_printf(ph, "WMPA: /volume [volume] : Set the volume (0 to 100) or display the current volume");
|
|
||||||
hexchat_printf(ph, "WMPA: /wmpahelp : Display this help.");
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaAuto
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaAuto(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
CWMPADialog *pDialog;
|
|
||||||
char *state;
|
|
||||||
|
|
||||||
pDialog = GetWMPADialog();
|
|
||||||
if (pDialog == NULL) return(HEXCHAT_EAT_ALL);
|
|
||||||
|
|
||||||
if (CString(word[2]).IsEmpty()) {
|
|
||||||
if (pDialog->autoAnnounce) {
|
|
||||||
state = "on";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
state = "off";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
state = word[2];
|
|
||||||
if (CString(state) == "on") {
|
|
||||||
pDialog->autoAnnounce = TRUE;
|
|
||||||
}
|
|
||||||
if (CString(state) == "off") {
|
|
||||||
pDialog->autoAnnounce = FALSE;
|
|
||||||
}
|
|
||||||
wmpaSaveSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
hexchat_printf(ph, "WMPA: auto is %s", state);
|
|
||||||
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaCurr
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaCurr(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaFind
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaFind(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
long index;
|
|
||||||
long count;
|
|
||||||
long found;
|
|
||||||
|
|
||||||
if (wmp != NULL) {
|
|
||||||
CWMPMediaCollection mc = wmp->GetMediaCollection();
|
|
||||||
CWMPPlaylist all = mc.getAll();
|
|
||||||
CWMPPlaylistCollection pc = wmp->GetPlaylistCollection();
|
|
||||||
CWMPPlaylistArray pa = pc.getAll();
|
|
||||||
CWMPPlaylist playlist;
|
|
||||||
CWMPMedia media;
|
|
||||||
|
|
||||||
for (index = 0; index < pc.getAll().GetCount(); index++) {
|
|
||||||
if (pc.getAll().Item(index).GetName() == CString(word_eol[2])) {
|
|
||||||
playlist = pc.getAll().Item(index);
|
|
||||||
pc.remove(playlist);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
playlist = pc.newPlaylist(word_eol[2]);
|
|
||||||
|
|
||||||
count = all.GetCount();
|
|
||||||
found = 0;
|
|
||||||
for (index = 0; index < count; index++) {
|
|
||||||
media = all.GetItem(index);
|
|
||||||
CString artist = media.getItemInfo("Artist");
|
|
||||||
CString title = media.getItemInfo("Title");
|
|
||||||
CString album = media.getItemInfo("Album");
|
|
||||||
if ( (artist.Find(word_eol[2]) != -1) ||
|
|
||||||
(title.Find(word_eol[2]) != -1) ||
|
|
||||||
(album.Find(word_eol[2]) != -1) ) {
|
|
||||||
playlist.appendItem(media);
|
|
||||||
found++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (found > 0) {
|
|
||||||
hexchat_printf(ph, "WMPA: Found %d songs with \"%s\" in them", found, word_eol[2]);
|
|
||||||
wmp->SetCurrentPlaylist(playlist);
|
|
||||||
wmp->GetControls().play();
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
|
|
||||||
CWMPADialog *dialog = GetWMPADialog();
|
|
||||||
if (dialog != NULL) {
|
|
||||||
dialog->UpdateSongList();
|
|
||||||
dialog->SelectCurrentSong();
|
|
||||||
dialog->UpdatePlayLists();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
hexchat_printf(ph, "WMPA: Could not find %s", word_eol[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaList
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaList(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
long index;
|
|
||||||
long count;
|
|
||||||
long found;
|
|
||||||
|
|
||||||
if (wmp != NULL) {
|
|
||||||
hexchat_printf(ph, "WMPA: Listing songs with \"%s\" in them", word_eol[2]);
|
|
||||||
|
|
||||||
CWMPMediaCollection mc = wmp->GetMediaCollection();
|
|
||||||
CWMPPlaylist all = mc.getAll();
|
|
||||||
CWMPMedia media;
|
|
||||||
|
|
||||||
count = all.GetCount();
|
|
||||||
found = 0;
|
|
||||||
for (index = 0; index < count; index++) {
|
|
||||||
media = all.GetItem(index);
|
|
||||||
CString artist = media.getItemInfo("Artist");
|
|
||||||
CString title = media.getItemInfo("Title");
|
|
||||||
CString album = media.getItemInfo("Album");
|
|
||||||
if ( (artist.Find(word_eol[2]) != -1) ||
|
|
||||||
(title.Find(word_eol[2]) != -1) ||
|
|
||||||
(album.Find(word_eol[2]) != -1) ) {
|
|
||||||
hexchat_printf(ph, "WMPA: Found \"%s - %s (%s)\"", artist, title, album);
|
|
||||||
found++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (found > 0) {
|
|
||||||
if (found == 1)
|
|
||||||
hexchat_printf(ph, "WMPA: Found %d song with \"%s\" in it", found, word_eol[2]);
|
|
||||||
else
|
|
||||||
hexchat_printf(ph, "WMPA: Found %d songs with \"%s\" in them", found, word_eol[2]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
hexchat_printf(ph, "WMPA: Could not find any songs with \"%s\" in them", word_eol[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaNext
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaNext(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
if (wmp != NULL) {
|
|
||||||
wmp->GetControls().next();
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaPlay
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaPlay(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
if (wmp != NULL) {
|
|
||||||
wmp->GetControls().play();
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaPause
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaPause(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
if (wmp != NULL) {
|
|
||||||
wmp->GetControls().pause();
|
|
||||||
hexchat_printf(ph, "WMPA: Pausing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaPrev
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaPrev(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
if (wmp != NULL) {
|
|
||||||
wmp->GetControls().previous();
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaSong
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaSong(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
CString songTitle = wmpaGetSongTitle();
|
|
||||||
|
|
||||||
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) songTitle);
|
|
||||||
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaStop
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaStop(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
if (wmp != NULL) {
|
|
||||||
wmp->GetControls().stop();
|
|
||||||
hexchat_printf(ph, "WMPA: Stopping %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaHelp
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaHelp(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
hexchat_printf(ph, "\n");
|
|
||||||
hexchat_printf(ph, "WMPA %s Help", VER_STRING);
|
|
||||||
wmpaCommands();
|
|
||||||
hexchat_printf(ph, "\n");
|
|
||||||
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaVolume
|
|
||||||
******************************************************************/
|
|
||||||
int wmpaVolume(char *word[], char *word_eol[], void *user_data)
|
|
||||||
{
|
|
||||||
char *endPtr;
|
|
||||||
long volume;
|
|
||||||
|
|
||||||
if (CString(word[2]).IsEmpty()) {
|
|
||||||
volume = wmp->GetSettings().GetVolume();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
volume = strtol(word[2], &endPtr, 10);
|
|
||||||
|
|
||||||
if ((wmp != NULL) && (volume >= 0) && (volume <= 100)) {
|
|
||||||
wmp->GetSettings().SetVolume(volume);
|
|
||||||
wmpaSaveSettings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hexchat_printf(ph, "WMPA: volume is %d", volume);
|
|
||||||
|
|
||||||
return(HEXCHAT_EAT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaRestoreSettings
|
|
||||||
******************************************************************/
|
|
||||||
BOOL wmpaRestoreSettings(void)
|
|
||||||
{
|
|
||||||
CWMPADialog *pDialog;
|
|
||||||
DWORD type;
|
|
||||||
int volume;
|
|
||||||
BOOL autoAnnounce;
|
|
||||||
DWORD size;
|
|
||||||
BOOL result;
|
|
||||||
|
|
||||||
if (wmp == NULL) return(FALSE);
|
|
||||||
|
|
||||||
volume = 50;
|
|
||||||
result = GetSetting("Volume", &type, (LPBYTE) &volume, &size);
|
|
||||||
wmp->GetSettings().SetVolume(volume);
|
|
||||||
|
|
||||||
autoAnnounce = FALSE;
|
|
||||||
pDialog = GetWMPADialog();
|
|
||||||
if (pDialog != NULL) {
|
|
||||||
result = result && GetSetting("Auto", &type, (LPBYTE) &autoAnnounce, &size);
|
|
||||||
pDialog->autoAnnounce = autoAnnounce;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaSaveSettings
|
|
||||||
******************************************************************/
|
|
||||||
BOOL wmpaSaveSettings(void)
|
|
||||||
{
|
|
||||||
CWMPADialog *pDialog;
|
|
||||||
int volume;
|
|
||||||
BOOL autoAnnounce;
|
|
||||||
BOOL result;
|
|
||||||
|
|
||||||
if (wmp == NULL) return(FALSE);
|
|
||||||
|
|
||||||
volume = wmp->GetSettings().GetVolume();
|
|
||||||
result = SaveSetting("Volume", REG_DWORD, (CONST BYTE *) &volume, sizeof(volume));
|
|
||||||
|
|
||||||
pDialog = GetWMPADialog();
|
|
||||||
if (pDialog != NULL) {
|
|
||||||
autoAnnounce = pDialog->autoAnnounce;
|
|
||||||
result = result && SaveSetting("Auto", REG_DWORD, (CONST BYTE *) &autoAnnounce, sizeof(autoAnnounce));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* wmpaGetSongTitle
|
|
||||||
******************************************************************/
|
|
||||||
CString wmpaGetSongTitle(void)
|
|
||||||
{
|
|
||||||
char buffer[32];
|
|
||||||
|
|
||||||
if (wmp == NULL) return(CString());
|
|
||||||
|
|
||||||
CWMPMedia media = wmp->GetCurrentMedia();
|
|
||||||
if (media == NULL) {
|
|
||||||
hexchat_printf(ph, "WMPA: Could not get current media");
|
|
||||||
return(CString ("%d", HEXCHAT_EAT_ALL));
|
|
||||||
}
|
|
||||||
|
|
||||||
CString artist = media.getItemInfo("Artist");
|
|
||||||
CString title = media.getItemInfo("Title");
|
|
||||||
CString album = media.getItemInfo("Album");
|
|
||||||
CString bitrate = media.getItemInfo("Bitrate");
|
|
||||||
CString duration = media.GetDurationString();
|
|
||||||
|
|
||||||
long krate = strtoul((LPCTSTR) bitrate, NULL, 10) / 1000;
|
|
||||||
_ultoa(krate, buffer, 10);
|
|
||||||
bitrate = CString(buffer);
|
|
||||||
|
|
||||||
// Creatte the song title
|
|
||||||
CString songTitle("");
|
|
||||||
songTitle += artist;
|
|
||||||
if (songTitle.IsEmpty()) songTitle += "Various";
|
|
||||||
songTitle += " - ";
|
|
||||||
songTitle += title;
|
|
||||||
songTitle += " (";
|
|
||||||
songTitle += album;
|
|
||||||
songTitle += ") [";
|
|
||||||
songTitle += duration;
|
|
||||||
songTitle += "/";
|
|
||||||
songTitle += bitrate;
|
|
||||||
songTitle += "Kbps]";
|
|
||||||
|
|
||||||
return(songTitle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* SaveSetting
|
|
||||||
******************************************************************/
|
|
||||||
BOOL SaveSetting(LPCTSTR name, DWORD type, CONST BYTE *value, DWORD size)
|
|
||||||
{
|
|
||||||
HKEY hKey;
|
|
||||||
DWORD disposition;
|
|
||||||
LONG result;
|
|
||||||
|
|
||||||
if (wmp == NULL) return(FALSE);
|
|
||||||
if (name == NULL) return(FALSE);
|
|
||||||
|
|
||||||
result = RegOpenKeyEx(HKEY_CURRENT_USER,
|
|
||||||
subKey,
|
|
||||||
0,
|
|
||||||
KEY_WRITE,
|
|
||||||
&hKey);
|
|
||||||
|
|
||||||
if (result != ERROR_SUCCESS) {
|
|
||||||
result = RegCreateKeyEx(HKEY_CURRENT_USER,
|
|
||||||
subKey,
|
|
||||||
0,
|
|
||||||
NULL,
|
|
||||||
REG_OPTION_NON_VOLATILE,
|
|
||||||
KEY_WRITE,
|
|
||||||
NULL,
|
|
||||||
&hKey,
|
|
||||||
&disposition);
|
|
||||||
|
|
||||||
if (result != ERROR_SUCCESS) return(FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
result = RegSetValueEx(hKey,
|
|
||||||
name,
|
|
||||||
0,
|
|
||||||
type,
|
|
||||||
value,
|
|
||||||
size);
|
|
||||||
|
|
||||||
if (result == ERROR_SUCCESS) {
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
return(TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
return(FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* GetSetting
|
|
||||||
******************************************************************/
|
|
||||||
BOOL GetSetting(LPCTSTR name, DWORD *type, LPBYTE value, DWORD *size)
|
|
||||||
{
|
|
||||||
HKEY hKey;
|
|
||||||
LONG result;
|
|
||||||
|
|
||||||
if (wmp == NULL) return(FALSE);
|
|
||||||
if (type == NULL) return(FALSE);
|
|
||||||
if (value == NULL) return(FALSE);
|
|
||||||
if (size == NULL) return(FALSE);
|
|
||||||
|
|
||||||
result = RegOpenKeyEx(HKEY_CURRENT_USER,
|
|
||||||
subKey,
|
|
||||||
0,
|
|
||||||
KEY_READ,
|
|
||||||
&hKey);
|
|
||||||
|
|
||||||
if (result != ERROR_SUCCESS) return(FALSE);
|
|
||||||
|
|
||||||
result = RegQueryValueEx(hKey,
|
|
||||||
name,
|
|
||||||
0,
|
|
||||||
type,
|
|
||||||
value,
|
|
||||||
size);
|
|
||||||
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
|
|
||||||
if (result == ERROR_SUCCESS) {
|
|
||||||
return(TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
return(FALSE);
|
|
||||||
}
|
|
||||||
|
|
@@ -1,361 +0,0 @@
|
|||||||
/* You can distribute this header with your plugins for easy compilation */
|
|
||||||
#ifndef HEXCHAT_PLUGIN_H
|
|
||||||
#define HEXCHAT_PLUGIN_H
|
|
||||||
|
|
||||||
#define VER_STRING _T("1.0.2 (BETA)")
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include <windows.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
#define HEXCHAT_PRI_HIGHEST 127
|
|
||||||
#define HEXCHAT_PRI_HIGH 64
|
|
||||||
#define HEXCHAT_PRI_NORM 0
|
|
||||||
#define HEXCHAT_PRI_LOW (-64)
|
|
||||||
#define HEXCHAT_PRI_LOWEST (-128)
|
|
||||||
|
|
||||||
#define HEXCHAT_FD_READ 1
|
|
||||||
#define HEXCHAT_FD_WRITE 2
|
|
||||||
#define HEXCHAT_FD_EXCEPTION 4
|
|
||||||
#define HEXCHAT_FD_NOTSOCKET 8
|
|
||||||
|
|
||||||
#define HEXCHAT_EAT_NONE 0 /* pass it on through! */
|
|
||||||
#define HEXCHAT_EAT_HEXCHAT 1 /* don't let HexChat see this event */
|
|
||||||
#define HEXCHAT_EAT_PLUGIN 2 /* don't let other plugins see this event */
|
|
||||||
#define HEXCHAT_EAT_ALL (HEXCHAT_EAT_HEXCHAT|HEXCHAT_EAT_PLUGIN) /* don't let anything see this event */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _hexchat_plugin hexchat_plugin;
|
|
||||||
typedef struct _hexchat_list hexchat_list;
|
|
||||||
typedef struct _hexchat_hook hexchat_hook;
|
|
||||||
#ifndef PLUGIN_C
|
|
||||||
typedef struct _hexchat_context hexchat_context;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef PLUGIN_C
|
|
||||||
struct _hexchat_plugin {
|
|
||||||
/* these are only used on win32 */
|
|
||||||
hexchat_hook *(*hexchat_hook_command) (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
int pri,
|
|
||||||
int (*callback) (char *word[], char *word_eol[], void *user_data),
|
|
||||||
const char *help_text,
|
|
||||||
void *userdata);
|
|
||||||
hexchat_hook *(*hexchat_hook_server) (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
int pri,
|
|
||||||
int (*callback) (char *word[], char *word_eol[], void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
hexchat_hook *(*hexchat_hook_print) (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
int pri,
|
|
||||||
int (*callback) (char *word[], void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
hexchat_hook *(*hexchat_hook_timer) (hexchat_plugin *ph,
|
|
||||||
int timeout,
|
|
||||||
int (*callback) (void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
hexchat_hook *(*hexchat_hook_fd) (hexchat_plugin *ph,
|
|
||||||
int fd,
|
|
||||||
int flags,
|
|
||||||
int (*callback) (int fd, int flags, void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
void *(*hexchat_unhook) (hexchat_plugin *ph,
|
|
||||||
hexchat_hook *hook);
|
|
||||||
void (*hexchat_print) (hexchat_plugin *ph,
|
|
||||||
const char *text);
|
|
||||||
void (*hexchat_printf) (hexchat_plugin *ph,
|
|
||||||
const char *format, ...);
|
|
||||||
void (*hexchat_command) (hexchat_plugin *ph,
|
|
||||||
const char *command);
|
|
||||||
void (*hexchat_commandf) (hexchat_plugin *ph,
|
|
||||||
const char *format, ...);
|
|
||||||
int (*hexchat_nickcmp) (hexchat_plugin *ph,
|
|
||||||
const char *s1,
|
|
||||||
const char *s2);
|
|
||||||
int (*hexchat_set_context) (hexchat_plugin *ph,
|
|
||||||
hexchat_context *ctx);
|
|
||||||
hexchat_context *(*hexchat_find_context) (hexchat_plugin *ph,
|
|
||||||
const char *servname,
|
|
||||||
const char *channel);
|
|
||||||
hexchat_context *(*hexchat_get_context) (hexchat_plugin *ph);
|
|
||||||
const char *(*hexchat_get_info) (hexchat_plugin *ph,
|
|
||||||
const char *id);
|
|
||||||
int (*hexchat_get_prefs) (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
const char **string,
|
|
||||||
int *integer);
|
|
||||||
hexchat_list * (*hexchat_list_get) (hexchat_plugin *ph,
|
|
||||||
const char *name);
|
|
||||||
void (*hexchat_list_free) (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist);
|
|
||||||
const char * const * (*hexchat_list_fields) (hexchat_plugin *ph,
|
|
||||||
const char *name);
|
|
||||||
int (*hexchat_list_next) (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist);
|
|
||||||
const char * (*hexchat_list_str) (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist,
|
|
||||||
const char *name);
|
|
||||||
int (*hexchat_list_int) (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist,
|
|
||||||
const char *name);
|
|
||||||
void * (*hexchat_plugingui_add) (hexchat_plugin *ph,
|
|
||||||
const char *filename,
|
|
||||||
const char *name,
|
|
||||||
const char *desc,
|
|
||||||
const char *version,
|
|
||||||
char *reserved);
|
|
||||||
void (*hexchat_plugingui_remove) (hexchat_plugin *ph,
|
|
||||||
void *handle);
|
|
||||||
int (*hexchat_emit_print) (hexchat_plugin *ph,
|
|
||||||
const char *event_name, ...);
|
|
||||||
int (*hexchat_read_fd) (hexchat_plugin *ph,
|
|
||||||
void *src,
|
|
||||||
char *buf,
|
|
||||||
int *len);
|
|
||||||
time_t (*hexchat_list_time) (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist,
|
|
||||||
const char *name);
|
|
||||||
char *(*hexchat_gettext) (hexchat_plugin *ph,
|
|
||||||
const char *msgid);
|
|
||||||
void (*hexchat_send_modes) (hexchat_plugin *ph,
|
|
||||||
const char **targets,
|
|
||||||
int ntargets,
|
|
||||||
int modes_per_line,
|
|
||||||
char sign,
|
|
||||||
char mode);
|
|
||||||
char *(*hexchat_strip) (hexchat_plugin *ph,
|
|
||||||
const char *str,
|
|
||||||
int len,
|
|
||||||
int flags);
|
|
||||||
void (*hexchat_free) (hexchat_plugin *ph,
|
|
||||||
void *ptr);
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
hexchat_hook *
|
|
||||||
hexchat_hook_command (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
int pri,
|
|
||||||
int (*callback) (char *word[], char *word_eol[], void *user_data),
|
|
||||||
const char *help_text,
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
hexchat_hook *
|
|
||||||
hexchat_hook_server (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
int pri,
|
|
||||||
int (*callback) (char *word[], char *word_eol[], void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
hexchat_hook *
|
|
||||||
hexchat_hook_print (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
int pri,
|
|
||||||
int (*callback) (char *word[], void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
hexchat_hook *
|
|
||||||
hexchat_hook_timer (hexchat_plugin *ph,
|
|
||||||
int timeout,
|
|
||||||
int (*callback) (void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
hexchat_hook *
|
|
||||||
hexchat_hook_fd (hexchat_plugin *ph,
|
|
||||||
int fd,
|
|
||||||
int flags,
|
|
||||||
int (*callback) (int fd, int flags, void *user_data),
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
void *
|
|
||||||
hexchat_unhook (hexchat_plugin *ph,
|
|
||||||
hexchat_hook *hook);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_print (hexchat_plugin *ph,
|
|
||||||
const char *text);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_printf (hexchat_plugin *ph,
|
|
||||||
const char *format, ...);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_command (hexchat_plugin *ph,
|
|
||||||
const char *command);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_commandf (hexchat_plugin *ph,
|
|
||||||
const char *format, ...);
|
|
||||||
|
|
||||||
int
|
|
||||||
hexchat_nickcmp (hexchat_plugin *ph,
|
|
||||||
const char *s1,
|
|
||||||
const char *s2);
|
|
||||||
|
|
||||||
int
|
|
||||||
hexchat_set_context (hexchat_plugin *ph,
|
|
||||||
hexchat_context *ctx);
|
|
||||||
|
|
||||||
hexchat_context *
|
|
||||||
hexchat_find_context (hexchat_plugin *ph,
|
|
||||||
const char *servname,
|
|
||||||
const char *channel);
|
|
||||||
|
|
||||||
hexchat_context *
|
|
||||||
hexchat_get_context (hexchat_plugin *ph);
|
|
||||||
|
|
||||||
const char *
|
|
||||||
hexchat_get_info (hexchat_plugin *ph,
|
|
||||||
const char *id);
|
|
||||||
|
|
||||||
int
|
|
||||||
hexchat_get_prefs (hexchat_plugin *ph,
|
|
||||||
const char *name,
|
|
||||||
const char **string,
|
|
||||||
int *integer);
|
|
||||||
|
|
||||||
hexchat_list *
|
|
||||||
hexchat_list_get (hexchat_plugin *ph,
|
|
||||||
const char *name);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_list_free (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist);
|
|
||||||
|
|
||||||
const char * const *
|
|
||||||
hexchat_list_fields (hexchat_plugin *ph,
|
|
||||||
const char *name);
|
|
||||||
|
|
||||||
int
|
|
||||||
hexchat_list_next (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist);
|
|
||||||
|
|
||||||
const char *
|
|
||||||
hexchat_list_str (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist,
|
|
||||||
const char *name);
|
|
||||||
|
|
||||||
int
|
|
||||||
hexchat_list_int (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist,
|
|
||||||
const char *name);
|
|
||||||
|
|
||||||
time_t
|
|
||||||
hexchat_list_time (hexchat_plugin *ph,
|
|
||||||
hexchat_list *xlist,
|
|
||||||
const char *name);
|
|
||||||
|
|
||||||
void *
|
|
||||||
hexchat_plugingui_add (hexchat_plugin *ph,
|
|
||||||
const char *filename,
|
|
||||||
const char *name,
|
|
||||||
const char *desc,
|
|
||||||
const char *version,
|
|
||||||
char *reserved);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_plugingui_remove (hexchat_plugin *ph,
|
|
||||||
void *handle);
|
|
||||||
|
|
||||||
int
|
|
||||||
hexchat_emit_print (hexchat_plugin *ph,
|
|
||||||
const char *event_name, ...);
|
|
||||||
|
|
||||||
char *
|
|
||||||
hexchat_gettext (hexchat_plugin *ph,
|
|
||||||
const char *msgid);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_send_modes (hexchat_plugin *ph,
|
|
||||||
const char **targets,
|
|
||||||
int ntargets,
|
|
||||||
int modes_per_line,
|
|
||||||
char sign,
|
|
||||||
char mode);
|
|
||||||
|
|
||||||
char *
|
|
||||||
hexchat_strip (hexchat_plugin *ph,
|
|
||||||
const char *str,
|
|
||||||
int len,
|
|
||||||
int flags);
|
|
||||||
|
|
||||||
void
|
|
||||||
hexchat_free (hexchat_plugin *ph,
|
|
||||||
void *ptr);
|
|
||||||
|
|
||||||
#if !defined(PLUGIN_C) && defined(WIN32)
|
|
||||||
#ifndef HEXCHAT_PLUGIN_HANDLE
|
|
||||||
#define HEXCHAT_PLUGIN_HANDLE (ph)
|
|
||||||
#endif
|
|
||||||
#define hexchat_hook_command ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_command)
|
|
||||||
#define hexchat_hook_server ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_server)
|
|
||||||
#define hexchat_hook_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_print)
|
|
||||||
#define hexchat_hook_timer ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_timer)
|
|
||||||
#define hexchat_hook_fd ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_fd)
|
|
||||||
#define hexchat_unhook ((HEXCHAT_PLUGIN_HANDLE)->hexchat_unhook)
|
|
||||||
#define hexchat_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_print)
|
|
||||||
#define hexchat_printf ((HEXCHAT_PLUGIN_HANDLE)->hexchat_printf)
|
|
||||||
#define hexchat_command ((HEXCHAT_PLUGIN_HANDLE)->hexchat_command)
|
|
||||||
#define hexchat_commandf ((HEXCHAT_PLUGIN_HANDLE)->hexchat_commandf)
|
|
||||||
#define hexchat_nickcmp ((HEXCHAT_PLUGIN_HANDLE)->hexchat_nickcmp)
|
|
||||||
#define hexchat_set_context ((HEXCHAT_PLUGIN_HANDLE)->hexchat_set_context)
|
|
||||||
#define hexchat_find_context ((HEXCHAT_PLUGIN_HANDLE)->hexchat_find_context)
|
|
||||||
#define hexchat_get_context ((HEXCHAT_PLUGIN_HANDLE)->hexchat_get_context)
|
|
||||||
#define hexchat_get_info ((HEXCHAT_PLUGIN_HANDLE)->hexchat_get_info)
|
|
||||||
#define hexchat_get_prefs ((HEXCHAT_PLUGIN_HANDLE)->hexchat_get_prefs)
|
|
||||||
#define hexchat_list_get ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_get)
|
|
||||||
#define hexchat_list_free ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_free)
|
|
||||||
#define hexchat_list_fields ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_fields)
|
|
||||||
#define hexchat_list_str ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_str)
|
|
||||||
#define hexchat_list_int ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_int)
|
|
||||||
#define hexchat_list_time ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_time)
|
|
||||||
#define hexchat_list_next ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_next)
|
|
||||||
#define hexchat_plugingui_add ((HEXCHAT_PLUGIN_HANDLE)->hexchat_plugingui_add)
|
|
||||||
#define hexchat_plugingui_remove ((HEXCHAT_PLUGIN_HANDLE)->hexchat_plugingui_remove)
|
|
||||||
#define hexchat_emit_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_emit_print)
|
|
||||||
#define hexchat_gettext ((HEXCHAT_PLUGIN_HANDLE)->hexchat_gettext)
|
|
||||||
#define hexchat_send_modes ((HEXCHAT_PLUGIN_HANDLE)->hexchat_send_modes)
|
|
||||||
#define hexchat_strip ((HEXCHAT_PLUGIN_HANDLE)->hexchat_strip)
|
|
||||||
#define hexchat_free ((HEXCHAT_PLUGIN_HANDLE)->hexchat_free)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* Globals
|
|
||||||
******************************************************************/
|
|
||||||
extern hexchat_plugin *ph;
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* Prototypes
|
|
||||||
******************************************************************/
|
|
||||||
void wmpaCommands(void);
|
|
||||||
int wmpaAuto(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaCurr(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaFind(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaList(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaNext(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaPlay(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaPause(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaPrev(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaSong(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaStop(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaVolume(char *word[], char *word_eol[], void *user_data);
|
|
||||||
int wmpaHelp(char *word[], char *word_eol[], void *user_data);
|
|
||||||
BOOL wmpaRestoreSettings(void);
|
|
||||||
BOOL wmpaSaveSettings(void);
|
|
||||||
CString wmpaGetSongTitle(void);
|
|
||||||
BOOL SaveSetting(LPCTSTR name, DWORD type, CONST BYTE *value, DWORD size);
|
|
||||||
BOOL GetSetting(LPCTSTR name, DWORD *type, LPBYTE value, DWORD *size);
|
|
||||||
|
|
||||||
#endif /* HEXCHAT_PLUGIN_H */
|
|
||||||
|
|
@@ -1,13 +0,0 @@
|
|||||||
//
|
|
||||||
// WMPA.RC2 - resources Microsoft Visual C++ does not edit directly
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
#error this file is not editable by Microsoft Visual C++
|
|
||||||
#endif //APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Add manually edited resources here...
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
@@ -1,22 +0,0 @@
|
|||||||
//{{NO_DEPENDENCIES}}
|
|
||||||
// Microsoft Developer Studio generated include file.
|
|
||||||
// Used by wmpa.rc
|
|
||||||
//
|
|
||||||
#define IDD_WMPADIALOG 2000
|
|
||||||
#define IDC_PLAYLIST 2001
|
|
||||||
#define IDC_STATIC1 2002
|
|
||||||
#define IDC_WMP 2005
|
|
||||||
#define IDI_XCHAT 2005
|
|
||||||
#define IDC_SONGLIST 2006
|
|
||||||
#define IDC_STATIC2 2007
|
|
||||||
|
|
||||||
// Next default values for new objects
|
|
||||||
//
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 2006
|
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
|
||||||
#define _APS_NEXT_CONTROL_VALUE 2008
|
|
||||||
#define _APS_NEXT_SYMED_VALUE 2000
|
|
||||||
#endif
|
|
||||||
#endif
|
|
@@ -1,212 +0,0 @@
|
|||||||
/******************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* $Log$
|
|
||||||
*
|
|
||||||
* Copyright <20> 2005 David Cullen, All rights reserved
|
|
||||||
*
|
|
||||||
******************************************************************/
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "wmpa.h"
|
|
||||||
#include "WMPADialog.h"
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
#define new DEBUG_NEW
|
|
||||||
#undef THIS_FILE
|
|
||||||
static char THIS_FILE[] = __FILE__;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
|
||||||
// Note!
|
|
||||||
//
|
|
||||||
// If this DLL is dynamically linked against the MFC
|
|
||||||
// DLLs, any functions exported from this DLL which
|
|
||||||
// call into MFC must have the AFX_MANAGE_STATE macro
|
|
||||||
// added at the very beginning of the function.
|
|
||||||
//
|
|
||||||
// For example:
|
|
||||||
//
|
|
||||||
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
|
|
||||||
// {
|
|
||||||
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
// // normal function body here
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// It is very important that this macro appear in each
|
|
||||||
// function, prior to any calls into MFC. This means that
|
|
||||||
// it must appear as the first statement within the
|
|
||||||
// function, even before any object variable declarations
|
|
||||||
// as their constructors may generate calls into the MFC
|
|
||||||
// DLL.
|
|
||||||
//
|
|
||||||
// Please see MFC Technical Notes 33 and 58 for additional
|
|
||||||
// details.
|
|
||||||
//
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWmpaApp
|
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CWmpaApp, CWinApp)
|
|
||||||
//{{AFX_MSG_MAP(CWmpaApp)
|
|
||||||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
||||||
// DO NOT EDIT what you see in these blocks of generated code!
|
|
||||||
//}}AFX_MSG_MAP
|
|
||||||
END_MESSAGE_MAP()
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWmpaApp construction
|
|
||||||
|
|
||||||
CWmpaApp::CWmpaApp()
|
|
||||||
{
|
|
||||||
// TODO: add construction code here,
|
|
||||||
// Place all significant initialization in InitInstance
|
|
||||||
m_pDialog = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// The one and only CWmpaApp object
|
|
||||||
|
|
||||||
CWmpaApp theApp;
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWmpaApp initialization
|
|
||||||
|
|
||||||
BOOL CWmpaApp::InitInstance()
|
|
||||||
{
|
|
||||||
// Register all OLE server (factories) as running. This enables the
|
|
||||||
// OLE libraries to create objects from other applications.
|
|
||||||
COleObjectFactory::RegisterAll();
|
|
||||||
|
|
||||||
// WARNING: This function enables the ActiveX control container
|
|
||||||
// Without this function you will not be able to load the WMP
|
|
||||||
// In fact you will get the following error:
|
|
||||||
// >>> If this dialog has OLE controls:
|
|
||||||
// >>> AfxEnableControlContainer has not been called yet.
|
|
||||||
// >>> You should call it in your app's InitInstance function.
|
|
||||||
AfxEnableControlContainer();
|
|
||||||
|
|
||||||
// WARNING: This function initializes the COM library for use
|
|
||||||
// Without this function you will not be able to load the WMP
|
|
||||||
// In fact you will get the following error:
|
|
||||||
// CoCreateInstance of OLE control {6BF52A52-394A-11D3-B153-00C04F79FAA6} failed.
|
|
||||||
// >>> Result code: 0x800401f0
|
|
||||||
// >>> Is the control is properly registered?
|
|
||||||
// The Error Lookup tool will tell you result code 0x800401F0 means
|
|
||||||
// CoInitialize has not been called.
|
|
||||||
CoInitialize(NULL);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* ShowWMPA
|
|
||||||
******************************************************************/
|
|
||||||
BOOL CWmpaApp::ShowWMPA(void)
|
|
||||||
{
|
|
||||||
HRESULT result = FALSE;
|
|
||||||
BOOL created;
|
|
||||||
|
|
||||||
// WARNING: The following two funcions make sure we look for
|
|
||||||
// our resources in our DLL not in the calling EXE
|
|
||||||
// Without these functions you will not be able to load the
|
|
||||||
// Windows Media Player
|
|
||||||
HMODULE hModule = GetModuleHandle("WMPA.DLL");
|
|
||||||
AfxSetResourceHandle((HINSTANCE) hModule);
|
|
||||||
|
|
||||||
if (m_pDialog == NULL) m_pDialog = new CWMPADialog;
|
|
||||||
|
|
||||||
created = m_pDialog->Create(IDD_WMPADIALOG, m_pDialog);
|
|
||||||
if (!created) return(E_FAIL);
|
|
||||||
m_pDialog->m_hIcon = LoadIcon(IDI_XCHAT);
|
|
||||||
m_pDialog->SetIcon(m_pDialog->m_hIcon, TRUE);
|
|
||||||
|
|
||||||
result = m_pDialog->ShowWindow(SW_SHOWNORMAL);
|
|
||||||
|
|
||||||
return(created);
|
|
||||||
}
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Special entry points required for inproc servers
|
|
||||||
|
|
||||||
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
|
|
||||||
{
|
|
||||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
return AfxDllGetClassObject(rclsid, riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
||||||
STDAPI DllCanUnloadNow(void)
|
|
||||||
{
|
|
||||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
return AfxDllCanUnloadNow();
|
|
||||||
}
|
|
||||||
|
|
||||||
// by exporting DllRegisterServer, you can use regsvr.exe
|
|
||||||
STDAPI DllRegisterServer(void)
|
|
||||||
{
|
|
||||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
COleObjectFactory::UpdateRegistryAll();
|
|
||||||
return(S_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* DestroyWMPA
|
|
||||||
******************************************************************/
|
|
||||||
BOOL CWmpaApp::DestroyWMPA(void)
|
|
||||||
{
|
|
||||||
if (theApp.m_pDialog == NULL) return(FALSE);
|
|
||||||
|
|
||||||
theApp.m_pDialog->m_WMP.GetControls().stop();
|
|
||||||
theApp.m_pDialog->DeleteTrayIcon();
|
|
||||||
theApp.m_pDialog->DestroyWindow();
|
|
||||||
|
|
||||||
return(TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* StartWindowsMediaPlayer
|
|
||||||
******************************************************************/
|
|
||||||
BOOL StartWindowsMediaPlayer(void)
|
|
||||||
{
|
|
||||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
|
|
||||||
BOOL result = theApp.ShowWMPA();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* StopWindowsMediaPlayer
|
|
||||||
******************************************************************/
|
|
||||||
BOOL StopWindowsMediaPlayer(void)
|
|
||||||
{
|
|
||||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
|
|
||||||
BOOL result = theApp.DestroyWMPA();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* GetWindowsMediaPlayer
|
|
||||||
******************************************************************/
|
|
||||||
CWMPPlayer4 *GetWindowsMediaPlayer(void)
|
|
||||||
{
|
|
||||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
|
|
||||||
if (theApp.m_pDialog == NULL) return(NULL);
|
|
||||||
|
|
||||||
return(&(theApp.m_pDialog->m_WMP));
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* GetWMPADialog
|
|
||||||
******************************************************************/
|
|
||||||
CWMPADialog *GetWMPADialog(void)
|
|
||||||
{
|
|
||||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
||||||
|
|
||||||
if (theApp.m_pDialog == NULL) return(NULL);
|
|
||||||
|
|
||||||
return(theApp.m_pDialog);
|
|
||||||
}
|
|
||||||
|
|
@@ -1,15 +0,0 @@
|
|||||||
; wmpa.def : Declares the module parameters for the DLL.
|
|
||||||
|
|
||||||
LIBRARY "hcwmpa"
|
|
||||||
|
|
||||||
EXPORTS
|
|
||||||
; Explicit exports can go here
|
|
||||||
DllCanUnloadNow PRIVATE
|
|
||||||
DllGetClassObject PRIVATE
|
|
||||||
DllRegisterServer PRIVATE
|
|
||||||
hexchat_plugin_init
|
|
||||||
hexchat_plugin_deinit
|
|
||||||
hexchat_plugin_get_info
|
|
||||||
StartWindowsMediaPlayer
|
|
||||||
GetWindowsMediaPlayer
|
|
||||||
GetWMPADialog
|
|
@@ -1,61 +0,0 @@
|
|||||||
/******************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* $Log$
|
|
||||||
*
|
|
||||||
* Copyright <20> 2005 David Cullen, All rights reserved
|
|
||||||
*
|
|
||||||
******************************************************************/
|
|
||||||
#if !defined(AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_)
|
|
||||||
#define AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
|
|
||||||
#ifndef __AFXWIN_H__
|
|
||||||
#error include 'stdafx.h' before including this file for PCH
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "resource.h" // main symbols
|
|
||||||
#include "WMPADialog.h"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWmpaApp
|
|
||||||
// See wmpa.cpp for the implementation of this class
|
|
||||||
//
|
|
||||||
|
|
||||||
class CWmpaApp : public CWinApp
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CWmpaApp();
|
|
||||||
|
|
||||||
BOOL ShowWMPA(void);
|
|
||||||
BOOL DestroyWMPA(void);
|
|
||||||
|
|
||||||
CWMPADialog *m_pDialog;
|
|
||||||
// Overrides
|
|
||||||
// ClassWizard generated virtual function overrides
|
|
||||||
//{{AFX_VIRTUAL(CWmpaApp)
|
|
||||||
public:
|
|
||||||
virtual BOOL InitInstance();
|
|
||||||
//}}AFX_VIRTUAL
|
|
||||||
|
|
||||||
//{{AFX_MSG(CWmpaApp)
|
|
||||||
// NOTE - the ClassWizard will add and remove member functions here.
|
|
||||||
// DO NOT EDIT what you see in these blocks of generated code !
|
|
||||||
//}}AFX_MSG
|
|
||||||
DECLARE_MESSAGE_MAP()
|
|
||||||
};
|
|
||||||
|
|
||||||
BOOL StartWindowsMediaPlayer(void);
|
|
||||||
BOOL StopWindowsMediaPlayer(void);
|
|
||||||
CWMPPlayer4 *GetWindowsMediaPlayer(void);
|
|
||||||
CWMPADialog *GetWMPADialog(void);
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_)
|
|
Before Width: | Height: | Size: 4.2 KiB |
@@ -1,44 +0,0 @@
|
|||||||
// wmpa.odl : type library source for wmpa.dll
|
|
||||||
|
|
||||||
// This file will be processed by the MIDL compiler to produce the
|
|
||||||
// type library (wmpa.tlb).
|
|
||||||
|
|
||||||
[ uuid(2D225385-EFD3-4DD8-9377-A7F244C522D0), version(1.0) ]
|
|
||||||
library Wmpa
|
|
||||||
{
|
|
||||||
importlib("stdole32.tlb");
|
|
||||||
importlib("stdole2.tlb");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Primary dispatch interface for CWMPADIALOG
|
|
||||||
|
|
||||||
[ uuid(01C1B3AA-C7FC-4023-89A5-C814E1B62B9B) ]
|
|
||||||
dispinterface IWMPADIALOG
|
|
||||||
{
|
|
||||||
properties:
|
|
||||||
// NOTE - ClassWizard will maintain property information here.
|
|
||||||
// Use extreme caution when editing this section.
|
|
||||||
//{{AFX_ODL_PROP(CWMPADIALOG)
|
|
||||||
//}}AFX_ODL_PROP
|
|
||||||
|
|
||||||
methods:
|
|
||||||
// NOTE - ClassWizard will maintain method information here.
|
|
||||||
// Use extreme caution when editing this section.
|
|
||||||
//{{AFX_ODL_METHOD(CWMPADIALOG)
|
|
||||||
//}}AFX_ODL_METHOD
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// Class information for CWMPADIALOG
|
|
||||||
|
|
||||||
[ uuid(9007B1B4-0006-453D-A799-DB8CBA1AE22A) ]
|
|
||||||
coclass WMPADIALOG
|
|
||||||
{
|
|
||||||
[default] dispinterface IWMPADIALOG;
|
|
||||||
};
|
|
||||||
|
|
||||||
//{{AFX_APPEND_ODL}}
|
|
||||||
//}}AFX_APPEND_ODL}}
|
|
||||||
};
|
|
@@ -1,207 +0,0 @@
|
|||||||
//Microsoft Developer Studio generated resource script.
|
|
||||||
//
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
|
||||||
//
|
|
||||||
#include "afxres.h"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// English (U.S.) resources
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// TEXTINCLUDE
|
|
||||||
//
|
|
||||||
|
|
||||||
1 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"resource.h\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
2 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"#include ""afxres.h""\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
3 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
|
||||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
|
||||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
|
||||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
|
||||||
"\r\n"
|
|
||||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
|
|
||||||
"#ifdef _WIN32\r\n"
|
|
||||||
"LANGUAGE 9, 1\r\n"
|
|
||||||
"#pragma code_page(1252)\r\n"
|
|
||||||
"#endif //_WIN32\r\n"
|
|
||||||
"#include ""res\\wmpa.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
|
|
||||||
"#include ""afxres.rc"" // Standard components\r\n"
|
|
||||||
"#endif\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _MAC
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Version
|
|
||||||
//
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
|
||||||
FILEVERSION 1,0,0,1
|
|
||||||
PRODUCTVERSION 1,0,0,1
|
|
||||||
FILEFLAGSMASK 0x3fL
|
|
||||||
#ifdef _DEBUG
|
|
||||||
FILEFLAGS 0x1L
|
|
||||||
#else
|
|
||||||
FILEFLAGS 0x0L
|
|
||||||
#endif
|
|
||||||
FILEOS 0x4L
|
|
||||||
FILETYPE 0x2L
|
|
||||||
FILESUBTYPE 0x0L
|
|
||||||
BEGIN
|
|
||||||
BLOCK "StringFileInfo"
|
|
||||||
BEGIN
|
|
||||||
BLOCK "040904B0"
|
|
||||||
BEGIN
|
|
||||||
VALUE "CompanyName", "\0"
|
|
||||||
VALUE "FileDescription", "wmpa DLL\0"
|
|
||||||
VALUE "FileVersion", "1, 0, 0, 1\0"
|
|
||||||
VALUE "InternalName", "wmpa\0"
|
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2005\0"
|
|
||||||
VALUE "LegalTrademarks", "\0"
|
|
||||||
VALUE "OriginalFilename", "wmpa.DLL\0"
|
|
||||||
VALUE "ProductName", "wmpa Dynamic Link Library\0"
|
|
||||||
VALUE "ProductVersion", "1, 0, 0, 1\0"
|
|
||||||
VALUE "OLESelfRegister", "\0"
|
|
||||||
END
|
|
||||||
END
|
|
||||||
BLOCK "VarFileInfo"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Translation", 0x409, 1200
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // !_MAC
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Dialog
|
|
||||||
//
|
|
||||||
|
|
||||||
IDD_WMPADIALOG DIALOG DISCARDABLE 0, 0, 317, 236
|
|
||||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "Unitialized"
|
|
||||||
FONT 8, "MS Sans Serif"
|
|
||||||
BEGIN
|
|
||||||
LISTBOX IDC_PLAYLIST,165,15,145,145,LBS_NOINTEGRALHEIGHT |
|
|
||||||
WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
|
||||||
LTEXT "Play Lists (Double-click to play)",IDC_STATIC1,165,5,
|
|
||||||
145,10
|
|
||||||
CONTROL "",IDC_WMP,"{6BF52A52-394A-11D3-B153-00C04F79FAA6}",
|
|
||||||
WS_TABSTOP,5,5,155,155
|
|
||||||
LISTBOX IDC_SONGLIST,5,175,305,55,LBS_NOINTEGRALHEIGHT |
|
|
||||||
WS_VSCROLL | WS_TABSTOP
|
|
||||||
LTEXT "Song List (Double-click to play)",IDC_STATIC2,5,165,305,
|
|
||||||
10
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// DESIGNINFO
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
GUIDELINES DESIGNINFO DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
IDD_WMPADIALOG, DIALOG
|
|
||||||
BEGIN
|
|
||||||
LEFTMARGIN, 7
|
|
||||||
RIGHTMARGIN, 310
|
|
||||||
TOPMARGIN, 7
|
|
||||||
BOTTOMMARGIN, 229
|
|
||||||
END
|
|
||||||
END
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Dialog Info
|
|
||||||
//
|
|
||||||
|
|
||||||
IDD_WMPADIALOG DLGINIT
|
|
||||||
BEGIN
|
|
||||||
IDC_WMP, 0x376, 166, 0
|
|
||||||
0x0000, 0x0000, 0x0300, 0x0000, 0x0008, 0x0000, 0x0000, 0x0005, 0x0000,
|
|
||||||
0x0000, 0x0000, 0x3ff0, 0x0003, 0x0000, 0x0000, 0x0005, 0x0000, 0x0000,
|
|
||||||
0x0000, 0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x0003, 0x0001, 0x0000,
|
|
||||||
0x000b, 0xffff, 0x0003, 0x0000, 0x0000, 0x000b, 0xffff, 0x0008, 0x0002,
|
|
||||||
0x0000, 0x0000, 0x0003, 0x0032, 0x0000, 0x000b, 0x0000, 0x0008, 0x000a,
|
|
||||||
0x0000, 0x0066, 0x0075, 0x006c, 0x006c, 0x0000, 0x000b, 0x0000, 0x000b,
|
|
||||||
0x0000, 0x000b, 0xffff, 0x000b, 0xffff, 0x000b, 0x0000, 0x0008, 0x0002,
|
|
||||||
0x0000, 0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x0008, 0x0002, 0x0000,
|
|
||||||
0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x000b, 0x0000, 0x1815, 0x0000,
|
|
||||||
0x1a0c, 0x0000,
|
|
||||||
0
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Icon
|
|
||||||
//
|
|
||||||
|
|
||||||
// Icon with lowest ID value placed first to ensure application icon
|
|
||||||
// remains consistent on all systems.
|
|
||||||
//
|
|
||||||
// the WMP icon comes from here:
|
|
||||||
// http://www.iconarchive.com/show/phuzion-icons-by-kyo-tux/Applic-WMP-icon.html
|
|
||||||
IDI_XCHAT ICON DISCARDABLE "wmpa.ico"
|
|
||||||
#endif // English (U.S.) resources
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
|
||||||
//
|
|
||||||
#define _AFX_NO_SPLITTER_RESOURCES
|
|
||||||
#define _AFX_NO_OLE_RESOURCES
|
|
||||||
#define _AFX_NO_TRACKER_RESOURCES
|
|
||||||
#define _AFX_NO_PROPERTY_RESOURCES
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE 9, 1
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
#include "res\wmpa.rc2" // non-Microsoft Visual C++ edited resources
|
|
||||||
#include "afxres.rc" // Standard components
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#endif // not APSTUDIO_INVOKED
|
|
||||||
|
|
@@ -1,20 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
|
||||||
# Visual Studio 2010
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wmpa", "wmpa.vcxproj", "{08AD7C4D-DDDC-9545-A8D7-1808E6056143}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|x64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,160 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>wmpa</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\win32\hexchat.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\win32\hexchat.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<TargetName>hcwmpa</TargetName>
|
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<TargetName>hcwmpa</TargetName>
|
|
||||||
<OutDir>$(HexChatBin)</OutDir>
|
|
||||||
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WMPA_EXPORTS;_AFXDLL;_AFX_NO_DAO_SUPPORT;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MultiProcessorCompilation>false</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<ModuleDefinitionFile>wmpa.def</ModuleDefinitionFile>
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
|
||||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
|
||||||
</Midl>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;WMPA_EXPORTS;_AFXDLL;_AFX_NO_DAO_SUPPORT;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MultiProcessorCompilation>false</MultiProcessorCompilation>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<ModuleDefinitionFile>wmpa.def</ModuleDefinitionFile>
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
|
||||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
|
||||||
</Midl>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="StdAfx.cpp" />
|
|
||||||
<ClCompile Include="wmpa.cpp" />
|
|
||||||
<ClCompile Include="wmpadialog.cpp" />
|
|
||||||
<ClCompile Include="wmpcdrom.cpp" />
|
|
||||||
<ClCompile Include="wmpcdromcollection.cpp" />
|
|
||||||
<ClCompile Include="wmpclosedcaption.cpp" />
|
|
||||||
<ClCompile Include="wmpcontrols.cpp" />
|
|
||||||
<ClCompile Include="wmpdvd.cpp" />
|
|
||||||
<ClCompile Include="wmperror.cpp" />
|
|
||||||
<ClCompile Include="wmperroritem.cpp" />
|
|
||||||
<ClCompile Include="wmpmedia.cpp" />
|
|
||||||
<ClCompile Include="wmpmediacollection.cpp" />
|
|
||||||
<ClCompile Include="wmpnetwork.cpp" />
|
|
||||||
<ClCompile Include="wmpplayer4.cpp" />
|
|
||||||
<ClCompile Include="wmpplayerapplication.cpp" />
|
|
||||||
<ClCompile Include="wmpplaylist.cpp" />
|
|
||||||
<ClCompile Include="wmpplaylistarray.cpp" />
|
|
||||||
<ClCompile Include="wmpplaylistcollection.cpp" />
|
|
||||||
<ClCompile Include="wmpsettings.cpp" />
|
|
||||||
<ClCompile Include="wmpstringcollection.cpp" />
|
|
||||||
<ClCompile Include="hexchat-plugin.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="resource.h" />
|
|
||||||
<ClInclude Include="StdAfx.h" />
|
|
||||||
<ClInclude Include="wmpa.h" />
|
|
||||||
<ClInclude Include="wmpadialog.h" />
|
|
||||||
<ClInclude Include="wmpcdrom.h" />
|
|
||||||
<ClInclude Include="wmpcdromcollection.h" />
|
|
||||||
<ClInclude Include="wmpclosedcaption.h" />
|
|
||||||
<ClInclude Include="wmpcontrols.h" />
|
|
||||||
<ClInclude Include="wmpdvd.h" />
|
|
||||||
<ClInclude Include="wmperror.h" />
|
|
||||||
<ClInclude Include="wmperroritem.h" />
|
|
||||||
<ClInclude Include="wmpmedia.h" />
|
|
||||||
<ClInclude Include="wmpmediacollection.h" />
|
|
||||||
<ClInclude Include="wmpnetwork.h" />
|
|
||||||
<ClInclude Include="wmpplayer4.h" />
|
|
||||||
<ClInclude Include="wmpplayerapplication.h" />
|
|
||||||
<ClInclude Include="wmpplaylist.h" />
|
|
||||||
<ClInclude Include="wmpplaylistarray.h" />
|
|
||||||
<ClInclude Include="wmpplaylistcollection.h" />
|
|
||||||
<ClInclude Include="wmpsettings.h" />
|
|
||||||
<ClInclude Include="wmpstringcollection.h" />
|
|
||||||
<ClInclude Include="hexchat-plugin.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="ReadMe.txt" />
|
|
||||||
<None Include="res\wmpa.rc2" />
|
|
||||||
<None Include="wmpa.aps" />
|
|
||||||
<None Include="wmpa.def" />
|
|
||||||
<None Include="wmpa.ico" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Midl Include="wmpa.odl" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="wmpa.rc" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
@@ -1,180 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files\res">
|
|
||||||
<UniqueIdentifier>{c54ddc93-06ab-4a74-854a-9ec976b7bfd0}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="StdAfx.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpa.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpadialog.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpcdrom.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpcdromcollection.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpclosedcaption.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpcontrols.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpdvd.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmperror.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmperroritem.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpmedia.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpmediacollection.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpnetwork.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpplayer4.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpplayerapplication.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpplaylist.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpplaylistarray.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpplaylistcollection.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpsettings.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="wmpstringcollection.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="hexchat-plugin.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="resource.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="StdAfx.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpa.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpadialog.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpcdrom.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpcdromcollection.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpclosedcaption.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpcontrols.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpdvd.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmperror.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmperroritem.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpmedia.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpmediacollection.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpnetwork.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpplayer4.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpplayerapplication.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpplaylist.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpplaylistarray.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpplaylistcollection.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpsettings.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="wmpstringcollection.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="hexchat-plugin.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="wmpa.aps">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="wmpa.def">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="wmpa.ico">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="ReadMe.txt">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="res\wmpa.rc2">
|
|
||||||
<Filter>Resource Files\res</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Midl Include="wmpa.odl">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</Midl>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="wmpa.rc">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
@@ -1,375 +0,0 @@
|
|||||||
/******************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* $Log$
|
|
||||||
*
|
|
||||||
* Copyright <20> 2005 David Cullen, All rights reserved
|
|
||||||
*
|
|
||||||
******************************************************************/
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "wmpa.h"
|
|
||||||
#include "WMPADialog.h"
|
|
||||||
#include "shellapi.h"
|
|
||||||
#include "hexchat-plugin.h"
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
#define new DEBUG_NEW
|
|
||||||
#undef THIS_FILE
|
|
||||||
static char THIS_FILE[] = __FILE__;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ID_TRAY_ICON 1000
|
|
||||||
#define WM_TRAY_ICON (WM_APP + 1)
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPADialog dialog
|
|
||||||
|
|
||||||
CWMPADialog::CWMPADialog(CWnd* pParent /*=NULL*/)
|
|
||||||
: CDialog(CWMPADialog::IDD, pParent)
|
|
||||||
{
|
|
||||||
EnableAutomation();
|
|
||||||
|
|
||||||
//{{AFX_DATA_INIT(CWMPADialog)
|
|
||||||
//}}AFX_DATA_INIT
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CWMPADialog::OnFinalRelease()
|
|
||||||
{
|
|
||||||
// When the last reference for an automation object is released
|
|
||||||
// OnFinalRelease is called. The base class will automatically
|
|
||||||
// deletes the object. Add additional cleanup required for your
|
|
||||||
// object before calling the base class.
|
|
||||||
|
|
||||||
CDialog::OnFinalRelease();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::DoDataExchange(CDataExchange* pDX)
|
|
||||||
{
|
|
||||||
CDialog::DoDataExchange(pDX);
|
|
||||||
//{{AFX_DATA_MAP(CWMPADialog)
|
|
||||||
DDX_Control(pDX, IDC_SONGLIST, m_SongListBox);
|
|
||||||
DDX_Control(pDX, IDC_PLAYLIST, m_PlaylistBox);
|
|
||||||
DDX_Control(pDX, IDC_WMP, m_WMP);
|
|
||||||
//}}AFX_DATA_MAP
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CWMPADialog, CDialog)
|
|
||||||
//{{AFX_MSG_MAP(CWMPADialog)
|
|
||||||
ON_LBN_DBLCLK(IDC_PLAYLIST, OnDblclkPlaylist)
|
|
||||||
ON_WM_SHOWWINDOW()
|
|
||||||
ON_WM_CLOSE()
|
|
||||||
ON_LBN_DBLCLK(IDC_SONGLIST, OnDblclkSonglist)
|
|
||||||
ON_WM_DESTROY()
|
|
||||||
ON_WM_SIZE()
|
|
||||||
//}}AFX_MSG_MAP
|
|
||||||
END_MESSAGE_MAP()
|
|
||||||
|
|
||||||
BEGIN_DISPATCH_MAP(CWMPADialog, CDialog)
|
|
||||||
//{{AFX_DISPATCH_MAP(CWMPADialog)
|
|
||||||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
||||||
//}}AFX_DISPATCH_MAP
|
|
||||||
END_DISPATCH_MAP()
|
|
||||||
|
|
||||||
// Note: we add support for IID_IWMPADialog to support typesafe binding
|
|
||||||
// from VBA. This IID must match the GUID that is attached to the
|
|
||||||
// dispinterface in the .ODL file.
|
|
||||||
|
|
||||||
// {01C1B3AA-C7FC-4023-89A5-C814E1B62B9B}
|
|
||||||
static const IID IID_IWMPADialog =
|
|
||||||
{ 0x1c1b3aa, 0xc7fc, 0x4023, { 0x89, 0xa5, 0xc8, 0x14, 0xe1, 0xb6, 0x2b, 0x9b } };
|
|
||||||
|
|
||||||
BEGIN_INTERFACE_MAP(CWMPADialog, CDialog)
|
|
||||||
INTERFACE_PART(CWMPADialog, IID_IWMPADialog, Dispatch)
|
|
||||||
END_INTERFACE_MAP()
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPADialog message handlers
|
|
||||||
|
|
||||||
void CWMPADialog::OnDblclkPlaylist()
|
|
||||||
{
|
|
||||||
// TODO: Add your control notification handler code here
|
|
||||||
long index;
|
|
||||||
|
|
||||||
// Get the playlist name
|
|
||||||
index = m_PlaylistBox.GetCurSel();
|
|
||||||
CString playlistName;
|
|
||||||
m_PlaylistBox.GetText(index, playlistName);
|
|
||||||
|
|
||||||
// Get the playlist
|
|
||||||
CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection();
|
|
||||||
CWMPPlaylistArray pa = pc.getByName((LPCTSTR) playlistName);
|
|
||||||
CWMPPlaylist playlist = pa.Item(0);
|
|
||||||
m_WMP.SetCurrentPlaylist(playlist);
|
|
||||||
|
|
||||||
// Set the song list
|
|
||||||
UpdateSongList();
|
|
||||||
|
|
||||||
m_WMP.GetControls().play();
|
|
||||||
if (autoAnnounce) {
|
|
||||||
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::OnShowWindow(BOOL bShow, UINT nStatus)
|
|
||||||
{
|
|
||||||
CDialog::OnShowWindow(bShow, nStatus);
|
|
||||||
|
|
||||||
// TODO: Add your message handler code here
|
|
||||||
if (bShow) {
|
|
||||||
if (!trayInit) {
|
|
||||||
ZeroMemory(&nid, sizeof(nid));
|
|
||||||
nid.cbSize = sizeof(nid);
|
|
||||||
nid.hWnd = m_hWnd;
|
|
||||||
nid.uID = ID_TRAY_ICON;
|
|
||||||
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
|
|
||||||
nid.uCallbackMessage = WM_TRAY_ICON;
|
|
||||||
nid.hIcon = m_hIcon;
|
|
||||||
strcpy(nid.szTip, "WMPA");
|
|
||||||
strcat(nid.szTip, VER_STRING);
|
|
||||||
strcat(nid.szTip, "\nWindows Media\nPlayer Announcer");
|
|
||||||
nid.dwState = 0;
|
|
||||||
nid.dwStateMask = 0;
|
|
||||||
strcpy(nid.szInfo, "WMPA ");
|
|
||||||
strcat(nid.szInfo, VER_STRING);
|
|
||||||
nid.uTimeout = 10000; // 10 second time out
|
|
||||||
strcat(nid.szInfoTitle, "WMPA");
|
|
||||||
nid.dwInfoFlags = 0;
|
|
||||||
trayInit = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CWMPADialog::PostNcDestroy()
|
|
||||||
{
|
|
||||||
// TODO: Add your specialized code here and/or call the base class
|
|
||||||
delete this;
|
|
||||||
|
|
||||||
CDialog::PostNcDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BOOL CWMPADialog::OnInitDialog()
|
|
||||||
{
|
|
||||||
CDialog::OnInitDialog();
|
|
||||||
|
|
||||||
CString title = "WMPA";
|
|
||||||
title += " ";
|
|
||||||
title += VER_STRING;
|
|
||||||
SetWindowText((LPCTSTR) title);
|
|
||||||
|
|
||||||
UpdatePlayLists();
|
|
||||||
|
|
||||||
autoAnnounce = FALSE;
|
|
||||||
trayInit = FALSE;
|
|
||||||
trayClicked = FALSE;
|
|
||||||
|
|
||||||
return TRUE; // return TRUE unless you set the focus to a control
|
|
||||||
// EXCEPTION: OCX Property Pages should return FALSE
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::OnClose()
|
|
||||||
{
|
|
||||||
// TODO: Add your message handler code here and/or call default
|
|
||||||
Shell_NotifyIcon(NIM_ADD, &nid);
|
|
||||||
ShowWindow(SW_HIDE);
|
|
||||||
|
|
||||||
// Don't let the user close the dialog
|
|
||||||
// CDialog::OnClose();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::OnCancel()
|
|
||||||
{
|
|
||||||
// this->DestroyWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::OnDblclkSonglist()
|
|
||||||
{
|
|
||||||
// TODO: Add your control notification handler code here
|
|
||||||
int index = m_SongListBox.GetCurSel();
|
|
||||||
m_WMP.GetControls().playItem(m_WMP.GetCurrentPlaylist().GetItem(index));
|
|
||||||
if (autoAnnounce) {
|
|
||||||
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BEGIN_EVENTSINK_MAP(CWMPADialog, CDialog)
|
|
||||||
//{{AFX_EVENTSINK_MAP(CWMPADialog)
|
|
||||||
ON_EVENT(CWMPADialog, IDC_WMP, 5806 /* CurrentItemChange */, OnCurrentItemChangeWmp, VTS_DISPATCH)
|
|
||||||
ON_EVENT(CWMPADialog, IDC_WMP, 5101 /* PlayStateChange */, OnPlayStateChangeWmp, VTS_I4)
|
|
||||||
//}}AFX_EVENTSINK_MAP
|
|
||||||
END_EVENTSINK_MAP()
|
|
||||||
|
|
||||||
void CWMPADialog::OnCurrentItemChangeWmp(LPDISPATCH pdispMedia)
|
|
||||||
{
|
|
||||||
// TODO: Add your control notification handler code here
|
|
||||||
|
|
||||||
int state = m_WMP.GetPlayState();
|
|
||||||
if (state == 3) { // Playing
|
|
||||||
if (autoAnnounce) {
|
|
||||||
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SelectCurrentSong();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::OnDestroy()
|
|
||||||
{
|
|
||||||
CDialog::OnDestroy();
|
|
||||||
|
|
||||||
// TODO: Add your message handler code here
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::UpdateSongList()
|
|
||||||
{
|
|
||||||
char buffer[32];
|
|
||||||
CString name;
|
|
||||||
CString artist;
|
|
||||||
CString title;
|
|
||||||
CString album;
|
|
||||||
CString bitrate;
|
|
||||||
CString duration;
|
|
||||||
CString song;
|
|
||||||
long index;
|
|
||||||
long count;
|
|
||||||
|
|
||||||
m_SongListBox.ResetContent();
|
|
||||||
CWMPPlaylist playlist = m_WMP.GetCurrentPlaylist();
|
|
||||||
count = playlist.GetCount();
|
|
||||||
m_SongListBox.ResetContent();
|
|
||||||
for (index = 0; index < count; index++) {
|
|
||||||
name = playlist.GetItem(index).GetName();
|
|
||||||
artist = playlist.GetItem(index).getItemInfo("Artist");
|
|
||||||
title = playlist.GetItem(index).getItemInfo("Title");
|
|
||||||
album = playlist.GetItem(index).getItemInfo("Album");
|
|
||||||
bitrate = playlist.GetItem(index).getItemInfo("Bitrate");
|
|
||||||
duration = playlist.GetItem(index).GetDurationString();
|
|
||||||
|
|
||||||
long krate = strtoul((LPCTSTR) bitrate, NULL, 10) / 1000;
|
|
||||||
_ultoa(krate, buffer, 10);
|
|
||||||
bitrate = CString(buffer);
|
|
||||||
|
|
||||||
if (album.IsEmpty()) {
|
|
||||||
playlist.removeItem(playlist.GetItem(index));
|
|
||||||
count = playlist.GetCount();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
song = "";
|
|
||||||
song += artist;
|
|
||||||
if (song.IsEmpty()) song = "Various";
|
|
||||||
song += " - ";
|
|
||||||
song += title;
|
|
||||||
song += " (";
|
|
||||||
song += album;
|
|
||||||
song += ") [";
|
|
||||||
song += duration;
|
|
||||||
song += "/";
|
|
||||||
song += bitrate;
|
|
||||||
song += "Kbps]";
|
|
||||||
m_SongListBox.AddString((LPCTSTR) song);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
m_SongListBox.SetCurSel(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::SelectCurrentSong()
|
|
||||||
{
|
|
||||||
CWMPMedia media;
|
|
||||||
long index;
|
|
||||||
long count;
|
|
||||||
|
|
||||||
count = m_WMP.GetCurrentPlaylist().GetCount();
|
|
||||||
for (index = 0; index < count; index++) {
|
|
||||||
media = m_WMP.GetCurrentPlaylist().GetItem(index);
|
|
||||||
if (m_WMP.GetCurrentMedia().GetIsIdentical(media)) {
|
|
||||||
m_SongListBox.SetCurSel(index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::UpdatePlayLists()
|
|
||||||
{
|
|
||||||
// TODO: Add extra initialization here
|
|
||||||
CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection();
|
|
||||||
CWMPPlaylistArray pa = pc.getAll();
|
|
||||||
CWMPPlaylist playlist;
|
|
||||||
|
|
||||||
int index;
|
|
||||||
int count = pa.GetCount();
|
|
||||||
m_PlaylistBox.ResetContent();
|
|
||||||
for (index = 0; index < count; index++) {
|
|
||||||
playlist = pa.Item(index);
|
|
||||||
m_PlaylistBox.AddString((LPCTSTR) playlist.GetName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CWMPADialog::OnPlayStateChangeWmp(long NewState)
|
|
||||||
{
|
|
||||||
// TODO: Add your control notification handler code here
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::OnSize(UINT nType, int cx, int cy)
|
|
||||||
{
|
|
||||||
CDialog::OnSize(nType, cx, cy);
|
|
||||||
// TODO: Add your message handler code here
|
|
||||||
switch (nType) {
|
|
||||||
case SIZE_MINIMIZED:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SIZE_RESTORED:
|
|
||||||
Shell_NotifyIcon(NIM_DELETE, &nid);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LRESULT CWMPADialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
// TODO: Add your specialized code here and/or call the base class
|
|
||||||
switch (message) {
|
|
||||||
case WM_TRAY_ICON:
|
|
||||||
switch (lParam) {
|
|
||||||
case WM_LBUTTONDBLCLK:
|
|
||||||
trayClicked = TRUE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_LBUTTONUP:
|
|
||||||
if (trayClicked == TRUE) {
|
|
||||||
ShowWindow(SW_RESTORE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
trayClicked = FALSE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return(TRUE);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return CDialog::WindowProc(message, wParam, lParam);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPADialog::DeleteTrayIcon()
|
|
||||||
{
|
|
||||||
Shell_NotifyIcon(NIM_DELETE, &nid);
|
|
||||||
}
|
|
@@ -1,91 +0,0 @@
|
|||||||
/******************************************************************
|
|
||||||
* $Id$
|
|
||||||
*
|
|
||||||
* $Log$
|
|
||||||
*
|
|
||||||
* Copyright <20> 2005 David Cullen, All rights reserved
|
|
||||||
*
|
|
||||||
******************************************************************/
|
|
||||||
//{{AFX_INCLUDES()
|
|
||||||
#include "wmpplayer4.h"
|
|
||||||
//}}AFX_INCLUDES
|
|
||||||
#if !defined(AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_)
|
|
||||||
#define AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
// WMPADialog.h : header file
|
|
||||||
//
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPADialog dialog
|
|
||||||
|
|
||||||
class CWMPADialog : public CDialog
|
|
||||||
{
|
|
||||||
// Construction
|
|
||||||
public:
|
|
||||||
CWMPADialog(CWnd* pParent = NULL); // standard constructor
|
|
||||||
virtual void OnCancel();
|
|
||||||
void UpdatePlayLists();
|
|
||||||
void UpdateSongList();
|
|
||||||
void SelectCurrentSong();
|
|
||||||
void DeleteTrayIcon();
|
|
||||||
BOOL autoAnnounce;
|
|
||||||
HICON m_hIcon;
|
|
||||||
|
|
||||||
private:
|
|
||||||
BOOL trayInit;
|
|
||||||
BOOL trayClicked;
|
|
||||||
NOTIFYICONDATA nid;
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Dialog Data
|
|
||||||
//{{AFX_DATA(CWMPADialog)
|
|
||||||
enum { IDD = IDD_WMPADIALOG };
|
|
||||||
CListBox m_SongListBox;
|
|
||||||
CListBox m_PlaylistBox;
|
|
||||||
CWMPPlayer4 m_WMP;
|
|
||||||
//}}AFX_DATA
|
|
||||||
|
|
||||||
|
|
||||||
// Overrides
|
|
||||||
// ClassWizard generated virtual function overrides
|
|
||||||
//{{AFX_VIRTUAL(CWMPADialog)
|
|
||||||
public:
|
|
||||||
virtual void OnFinalRelease();
|
|
||||||
protected:
|
|
||||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
||||||
virtual void PostNcDestroy();
|
|
||||||
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
|
|
||||||
//}}AFX_VIRTUAL
|
|
||||||
|
|
||||||
// Implementation
|
|
||||||
protected:
|
|
||||||
|
|
||||||
// Generated message map functions
|
|
||||||
//{{AFX_MSG(CWMPADialog)
|
|
||||||
afx_msg void OnDblclkPlaylist();
|
|
||||||
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
|
|
||||||
virtual BOOL OnInitDialog();
|
|
||||||
afx_msg void OnClose();
|
|
||||||
afx_msg void OnDblclkSonglist();
|
|
||||||
afx_msg void OnCurrentItemChangeWmp(LPDISPATCH pdispMedia);
|
|
||||||
afx_msg void OnDestroy();
|
|
||||||
afx_msg void OnPlayStateChangeWmp(long NewState);
|
|
||||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
||||||
DECLARE_EVENTSINK_MAP()
|
|
||||||
//}}AFX_MSG
|
|
||||||
DECLARE_MESSAGE_MAP()
|
|
||||||
// Generated OLE dispatch map functions
|
|
||||||
//{{AFX_DISPATCH(CWMPADialog)
|
|
||||||
// NOTE - the ClassWizard will add and remove member functions here.
|
|
||||||
//}}AFX_DISPATCH
|
|
||||||
DECLARE_DISPATCH_MAP()
|
|
||||||
DECLARE_INTERFACE_MAP()
|
|
||||||
};
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_)
|
|
@@ -1,37 +0,0 @@
|
|||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "wmpcdrom.h"
|
|
||||||
|
|
||||||
// Dispatch interfaces referenced by this interface
|
|
||||||
#include "wmpplaylist.h"
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPCdrom properties
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPCdrom operations
|
|
||||||
|
|
||||||
CString CWMPCdrom::GetDriveSpecifier()
|
|
||||||
{
|
|
||||||
CString result;
|
|
||||||
InvokeHelper(0xfb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
CWMPPlaylist CWMPCdrom::GetPlaylist()
|
|
||||||
{
|
|
||||||
LPDISPATCH pDispatch;
|
|
||||||
InvokeHelper(0xfc, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
|
|
||||||
return CWMPPlaylist(pDispatch);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPCdrom::eject()
|
|
||||||
{
|
|
||||||
InvokeHelper(0xfd, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
@@ -1,39 +0,0 @@
|
|||||||
#if !defined(AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_)
|
|
||||||
#define AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
// Dispatch interfaces referenced by this interface
|
|
||||||
class CWMPPlaylist;
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPCdrom wrapper class
|
|
||||||
|
|
||||||
class CWMPCdrom : public COleDispatchDriver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CWMPCdrom() {} // Calls COleDispatchDriver default constructor
|
|
||||||
CWMPCdrom(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
|
|
||||||
CWMPCdrom(const CWMPCdrom& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
|
|
||||||
|
|
||||||
// Attributes
|
|
||||||
public:
|
|
||||||
|
|
||||||
// Operations
|
|
||||||
public:
|
|
||||||
CString GetDriveSpecifier();
|
|
||||||
CWMPPlaylist GetPlaylist();
|
|
||||||
void eject();
|
|
||||||
};
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_)
|
|
@@ -1,45 +0,0 @@
|
|||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "wmpcdromcollection.h"
|
|
||||||
|
|
||||||
// Dispatch interfaces referenced by this interface
|
|
||||||
#include "WMPCdrom.h"
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPCdromCollection properties
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPCdromCollection operations
|
|
||||||
|
|
||||||
long CWMPCdromCollection::GetCount()
|
|
||||||
{
|
|
||||||
long result;
|
|
||||||
InvokeHelper(0x12d, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
CWMPCdrom CWMPCdromCollection::Item(long lIndex)
|
|
||||||
{
|
|
||||||
LPDISPATCH pDispatch;
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_I4;
|
|
||||||
InvokeHelper(0x12e, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
|
|
||||||
lIndex);
|
|
||||||
return CWMPCdrom(pDispatch);
|
|
||||||
}
|
|
||||||
|
|
||||||
CWMPCdrom CWMPCdromCollection::getByDriveSpecifier(LPCTSTR bstrDriveSpecifier)
|
|
||||||
{
|
|
||||||
LPDISPATCH pDispatch;
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_BSTR;
|
|
||||||
InvokeHelper(0x12f, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
|
|
||||||
bstrDriveSpecifier);
|
|
||||||
return CWMPCdrom(pDispatch);
|
|
||||||
}
|
|
@@ -1,39 +0,0 @@
|
|||||||
#if !defined(AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_)
|
|
||||||
#define AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
// Dispatch interfaces referenced by this interface
|
|
||||||
class CWMPCdrom;
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPCdromCollection wrapper class
|
|
||||||
|
|
||||||
class CWMPCdromCollection : public COleDispatchDriver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CWMPCdromCollection() {} // Calls COleDispatchDriver default constructor
|
|
||||||
CWMPCdromCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
|
|
||||||
CWMPCdromCollection(const CWMPCdromCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
|
|
||||||
|
|
||||||
// Attributes
|
|
||||||
public:
|
|
||||||
|
|
||||||
// Operations
|
|
||||||
public:
|
|
||||||
long GetCount();
|
|
||||||
CWMPCdrom Item(long lIndex);
|
|
||||||
CWMPCdrom getByDriveSpecifier(LPCTSTR bstrDriveSpecifier);
|
|
||||||
};
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_)
|
|
@@ -1,75 +0,0 @@
|
|||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "wmpclosedcaption.h"
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPClosedCaption properties
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPClosedCaption operations
|
|
||||||
|
|
||||||
CString CWMPClosedCaption::GetSAMIStyle()
|
|
||||||
{
|
|
||||||
CString result;
|
|
||||||
InvokeHelper(0x3b7, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPClosedCaption::SetSAMIStyle(LPCTSTR lpszNewValue)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_BSTR;
|
|
||||||
InvokeHelper(0x3b7, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
|
||||||
lpszNewValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
CString CWMPClosedCaption::GetSAMILang()
|
|
||||||
{
|
|
||||||
CString result;
|
|
||||||
InvokeHelper(0x3b8, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPClosedCaption::SetSAMILang(LPCTSTR lpszNewValue)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_BSTR;
|
|
||||||
InvokeHelper(0x3b8, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
|
||||||
lpszNewValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
CString CWMPClosedCaption::GetSAMIFileName()
|
|
||||||
{
|
|
||||||
CString result;
|
|
||||||
InvokeHelper(0x3b9, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPClosedCaption::SetSAMIFileName(LPCTSTR lpszNewValue)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_BSTR;
|
|
||||||
InvokeHelper(0x3b9, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
|
||||||
lpszNewValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
CString CWMPClosedCaption::GetCaptioningId()
|
|
||||||
{
|
|
||||||
CString result;
|
|
||||||
InvokeHelper(0x3ba, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPClosedCaption::SetCaptioningId(LPCTSTR lpszNewValue)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_BSTR;
|
|
||||||
InvokeHelper(0x3ba, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
|
||||||
lpszNewValue);
|
|
||||||
}
|
|
@@ -1,40 +0,0 @@
|
|||||||
#if !defined(AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_)
|
|
||||||
#define AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPClosedCaption wrapper class
|
|
||||||
|
|
||||||
class CWMPClosedCaption : public COleDispatchDriver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CWMPClosedCaption() {} // Calls COleDispatchDriver default constructor
|
|
||||||
CWMPClosedCaption(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
|
|
||||||
CWMPClosedCaption(const CWMPClosedCaption& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
|
|
||||||
|
|
||||||
// Attributes
|
|
||||||
public:
|
|
||||||
|
|
||||||
// Operations
|
|
||||||
public:
|
|
||||||
CString GetSAMIStyle();
|
|
||||||
void SetSAMIStyle(LPCTSTR lpszNewValue);
|
|
||||||
CString GetSAMILang();
|
|
||||||
void SetSAMILang(LPCTSTR lpszNewValue);
|
|
||||||
CString GetSAMIFileName();
|
|
||||||
void SetSAMIFileName(LPCTSTR lpszNewValue);
|
|
||||||
CString GetCaptioningId();
|
|
||||||
void SetCaptioningId(LPCTSTR lpszNewValue);
|
|
||||||
};
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_)
|
|
@@ -1,123 +0,0 @@
|
|||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "wmpcontrols.h"
|
|
||||||
|
|
||||||
// Dispatch interfaces referenced by this interface
|
|
||||||
#include "wmpmedia.h"
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPControls properties
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPControls operations
|
|
||||||
|
|
||||||
BOOL CWMPControls::GetIsAvailable(LPCTSTR bstrItem)
|
|
||||||
{
|
|
||||||
BOOL result;
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_BSTR;
|
|
||||||
InvokeHelper(0x3e, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
|
|
||||||
bstrItem);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::play()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x33, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::stop()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x34, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::pause()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x35, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::fastForward()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x36, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::fastReverse()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x37, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
double CWMPControls::GetCurrentPosition()
|
|
||||||
{
|
|
||||||
double result;
|
|
||||||
InvokeHelper(0x38, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::SetCurrentPosition(double newValue)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_R8;
|
|
||||||
InvokeHelper(0x38, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
|
||||||
newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
CString CWMPControls::GetCurrentPositionString()
|
|
||||||
{
|
|
||||||
CString result;
|
|
||||||
InvokeHelper(0x39, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::next()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x3a, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::previous()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x3b, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
CWMPMedia CWMPControls::GetCurrentItem()
|
|
||||||
{
|
|
||||||
LPDISPATCH pDispatch;
|
|
||||||
InvokeHelper(0x3c, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
|
|
||||||
return CWMPMedia(pDispatch);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::SetCurrentItem(LPDISPATCH newValue)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_DISPATCH;
|
|
||||||
InvokeHelper(0x3c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
|
||||||
newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
long CWMPControls::GetCurrentMarker()
|
|
||||||
{
|
|
||||||
long result;
|
|
||||||
InvokeHelper(0x3d, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::SetCurrentMarker(long nNewValue)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_I4;
|
|
||||||
InvokeHelper(0x3d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
|
||||||
nNewValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPControls::playItem(LPDISPATCH pIWMPMedia)
|
|
||||||
{
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_DISPATCH;
|
|
||||||
InvokeHelper(0x3f, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
|
||||||
pIWMPMedia);
|
|
||||||
}
|
|
@@ -1,52 +0,0 @@
|
|||||||
#if !defined(AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_)
|
|
||||||
#define AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
// Dispatch interfaces referenced by this interface
|
|
||||||
class CWMPMedia;
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPControls wrapper class
|
|
||||||
|
|
||||||
class CWMPControls : public COleDispatchDriver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CWMPControls() {} // Calls COleDispatchDriver default constructor
|
|
||||||
CWMPControls(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
|
|
||||||
CWMPControls(const CWMPControls& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
|
|
||||||
|
|
||||||
// Attributes
|
|
||||||
public:
|
|
||||||
|
|
||||||
// Operations
|
|
||||||
public:
|
|
||||||
BOOL GetIsAvailable(LPCTSTR bstrItem);
|
|
||||||
void play();
|
|
||||||
void stop();
|
|
||||||
void pause();
|
|
||||||
void fastForward();
|
|
||||||
void fastReverse();
|
|
||||||
double GetCurrentPosition();
|
|
||||||
void SetCurrentPosition(double newValue);
|
|
||||||
CString GetCurrentPositionString();
|
|
||||||
void next();
|
|
||||||
void previous();
|
|
||||||
CWMPMedia GetCurrentItem();
|
|
||||||
void SetCurrentItem(LPDISPATCH newValue);
|
|
||||||
long GetCurrentMarker();
|
|
||||||
void SetCurrentMarker(long nNewValue);
|
|
||||||
void playItem(LPDISPATCH pIWMPMedia);
|
|
||||||
};
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_)
|
|
@@ -1,52 +0,0 @@
|
|||||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
|
||||||
|
|
||||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
|
||||||
// Microsoft Visual C++, your modifications will be overwritten.
|
|
||||||
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "wmpdvd.h"
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPDVD properties
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CWMPDVD operations
|
|
||||||
|
|
||||||
BOOL CWMPDVD::GetIsAvailable(LPCTSTR bstrItem)
|
|
||||||
{
|
|
||||||
BOOL result;
|
|
||||||
static BYTE parms[] =
|
|
||||||
VTS_BSTR;
|
|
||||||
InvokeHelper(0x3e9, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
|
|
||||||
bstrItem);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
CString CWMPDVD::GetDomain()
|
|
||||||
{
|
|
||||||
CString result;
|
|
||||||
InvokeHelper(0x3ea, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPDVD::topMenu()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x3eb, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPDVD::titleMenu()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x3ec, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPDVD::back()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x3ed, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWMPDVD::resume()
|
|
||||||
{
|
|
||||||
InvokeHelper(0x3ee, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
|
||||||
}
|
|