Compare commits
1044
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ed5cf2ce0 | ||
|
|
4914a9f408 | ||
|
|
3e12812a97 | ||
|
|
e9e06cc74e | ||
|
|
ececbb7a35 | ||
|
|
e1bf9a0f51 | ||
|
|
e512eb7423 | ||
|
|
d63c421eb9 | ||
|
|
030ba5a501 | ||
|
|
b3270e411a | ||
|
|
795f21f04b | ||
|
|
c95e86c2a6 | ||
|
|
18d2aa3b51 | ||
|
|
7ba3ea8b13 | ||
|
|
30b34c3a50 | ||
|
|
6a42800d2c | ||
|
|
70f132540f | ||
|
|
cd9eaaaba1 | ||
|
|
70aa1f4024 | ||
|
|
1d634d96fe | ||
|
|
4eb5254d96 | ||
|
|
6c2eee0cbc | ||
|
|
3c5265cecf | ||
|
|
478d35890d | ||
|
|
1b9b63412c | ||
|
|
3bb8fff3a1 | ||
|
|
694bc0ead4 | ||
|
|
cfc324d31e | ||
|
|
43b63e2843 | ||
|
|
f2ec510a70 | ||
|
|
453edbb28e | ||
|
|
bc9407f52f | ||
|
|
954cc5918f | ||
|
|
4ef16e7856 | ||
|
|
1eb3c3e725 | ||
|
|
a89c2d3d22 | ||
|
|
914837a5a2 | ||
|
|
9643a71ba5 | ||
|
|
aa7e0528f8 | ||
|
|
57bd8d569e | ||
|
|
b49d8871a2 | ||
|
|
b90d419bc5 | ||
|
|
1f48d498e1 | ||
|
|
da6139c932 | ||
|
|
be744b40a3 | ||
|
|
780ce657ca | ||
|
|
464be0f803 | ||
|
|
58a6cb9a24 | ||
|
|
9bf7b2ffde | ||
|
|
cde1f28215 | ||
|
|
db198cb7d0 | ||
|
|
99fe567e78 | ||
|
|
2261c8f0f5 | ||
|
|
f93b16fc52 | ||
|
|
7c3a43749c | ||
|
|
ecec7b9f1a | ||
|
|
1aca7335f7 | ||
|
|
ba5aee6640 | ||
|
|
abaf55e9b1 | ||
|
|
3a2dd0b0aa | ||
|
|
0fed1acfd8 | ||
|
|
d7c2300021 | ||
|
|
fca333299d | ||
|
|
a13b03a136 | ||
|
|
48054f5bf1 | ||
|
|
51f2897a33 | ||
|
|
7a3a07b0da | ||
|
|
7c3cfca86c | ||
|
|
352af15984 | ||
|
|
2c42933d58 | ||
|
|
2e68362836 | ||
|
|
c6736db7ea | ||
|
|
c005f03af8 | ||
|
|
459aabcc86 | ||
|
|
ad33097d5e | ||
|
|
8d7735735e | ||
|
|
25bbc46925 | ||
|
|
5a26b0ee35 | ||
|
|
09a397bed2 | ||
|
|
a33039bcae | ||
|
|
0ebd125266 | ||
|
|
fd16a6b6c3 | ||
|
|
cf19f764c7 | ||
|
|
88850d6c25 | ||
|
|
b173c61575 | ||
|
|
3b866f0952 | ||
|
|
94db524a11 | ||
|
|
f27616ce1f | ||
|
|
7f75af7119 | ||
|
|
05ab48cdc5 | ||
|
|
4c155e0e63 | ||
|
|
38e42723af | ||
|
|
f4ec60c9e0 | ||
|
|
fd51c209a3 | ||
|
|
01394b1978 | ||
|
|
9b7db08fcf | ||
|
|
6d7cdef223 | ||
|
|
8388cd59a8 | ||
|
|
d9c35fe02a | ||
|
|
250b3fa406 | ||
|
|
a5a3f16177 | ||
|
|
5a09069b08 | ||
|
|
ffa7e21c18 | ||
|
|
4608c05df0 | ||
|
|
56ff5a0213 | ||
|
|
014fde301c | ||
|
|
0080a42423 | ||
|
|
2035a4c855 | ||
|
|
4dc6a190fa | ||
|
|
e0db322262 | ||
|
|
9e10948e59 | ||
|
|
8f1bb45e42 | ||
|
|
f39aefd28f | ||
|
|
2cfc43dbfd | ||
|
|
f4168b5202 | ||
|
|
2d93b652e8 | ||
|
|
70782cd655 | ||
|
|
768fcc4f05 | ||
|
|
727491f99b | ||
|
|
c5f1c3a340 | ||
|
|
a78311104a | ||
|
|
4b5b06210c | ||
|
|
333645b044 | ||
|
|
23173074aa | ||
|
|
be8bb9c4e1 | ||
|
|
d07e132216 | ||
|
|
401fa12851 | ||
|
|
194ca84d38 | ||
|
|
7bbf62d735 | ||
|
|
3924e2fca5 | ||
|
|
2e39102e7c | ||
|
|
2a0849fae5 | ||
|
|
9f4e8f6eef | ||
|
|
d0fe36f86e | ||
|
|
10da22cd77 | ||
|
|
6dacc2d515 | ||
|
|
7baa9628d6 | ||
|
|
ec5229101f | ||
|
|
a0e0b1e788 | ||
|
|
f1e04396de | ||
|
|
d0cae8c2fc | ||
|
|
90c215d4c1 | ||
|
|
1b1dc78548 | ||
|
|
a112163f85 | ||
|
|
2a9f2e188d | ||
|
|
652e0cb06f | ||
|
|
123b1b08c2 | ||
|
|
b321bc354b | ||
|
|
03d7397242 | ||
|
|
45e78ef184 | ||
|
|
fe7c5893bb | ||
|
|
2b57c552d1 | ||
|
|
7f0d39b684 | ||
|
|
7273a8b13b | ||
|
|
a544a5cd4f | ||
|
|
ff9ade75d4 | ||
|
|
cfd5498521 | ||
|
|
9b7c30e1cd | ||
|
|
670e5d7fa9 | ||
|
|
8258235611 | ||
|
|
f8663e038f | ||
|
|
4d97f29943 | ||
|
|
ab8d59eb2d | ||
|
|
c324fa69b2 | ||
|
|
1cdb9b4cc2 | ||
|
|
f47fa49b80 | ||
|
|
6ade96c7ef | ||
|
|
61d31a3c67 | ||
|
|
014509ea30 | ||
|
|
1ce1a45ca6 | ||
|
|
124cfb14ab | ||
|
|
b6da13a653 | ||
|
|
604b4d1751 | ||
|
|
874aaf2857 | ||
|
|
17a28def4e | ||
|
|
e72a1aa9e7 | ||
|
|
7b96ef1b4c | ||
|
|
ea048e6d82 | ||
|
|
109abfb4ad | ||
|
|
3f662ab19d | ||
|
|
b0de38909a | ||
|
|
267de44103 | ||
|
|
b7b0e55d94 | ||
|
|
c0d12f5721 | ||
|
|
27a945485f | ||
|
|
d76c81a9d8 | ||
|
|
143a3622dd | ||
|
|
75992293c6 | ||
|
|
0e004828b3 | ||
|
|
714751f404 | ||
|
|
27576e946e | ||
|
|
e548dddcbd | ||
|
|
8cbc8c497e | ||
|
|
c328140441 | ||
|
|
a10798c983 | ||
|
|
06909e260f | ||
|
|
5eca8a5150 | ||
|
|
88a13f9864 | ||
|
|
e03ae6195a | ||
|
|
c3cacaf407 | ||
|
|
4b479b3ceb | ||
|
|
c78cb805fb | ||
|
|
d17688fc9d | ||
|
|
fd59b9d5f0 | ||
|
|
0e71c9f5f5 | ||
|
|
bc3c14589e | ||
|
|
4331f49f6f | ||
|
|
294d19e9d1 | ||
|
|
ed615dbb31 | ||
|
|
e9ad57f588 | ||
|
|
4852b7c2c0 | ||
|
|
7fee639b53 | ||
|
|
c2a5a8ec7d | ||
|
|
ec823cab97 | ||
|
|
83f88b6df3 | ||
|
|
7636fe7686 | ||
|
|
dd4b08ec2b | ||
|
|
1e12c82be4 | ||
|
|
9879a80569 | ||
|
|
13b03f4f89 | ||
|
|
331de6ecfe | ||
|
|
7b649c4a62 | ||
|
|
9ccdaef354 | ||
|
|
fa114f4467 | ||
|
|
33cc650871 | ||
|
|
95737d05e1 | ||
|
|
955ffc48d3 | ||
|
|
d79dd908f6 | ||
|
|
4656ec30af | ||
|
|
a0be60a1b9 | ||
|
|
d296d6f000 | ||
|
|
8df4bd2537 | ||
|
|
cc5cdb88ff | ||
|
|
f66c6a93c5 | ||
|
|
a7b5ee33e2 | ||
|
|
fe90af5aa4 | ||
|
|
7e672d91e9 | ||
|
|
09f472bee2 | ||
|
|
30da0c5105 | ||
|
|
d2082cdbea | ||
|
|
c42596811e | ||
|
|
d095a19187 | ||
|
|
8089e2c898 | ||
|
|
a657d03fb0 | ||
|
|
4e829200f5 | ||
|
|
bef9be5cbe | ||
|
|
56f14323d1 | ||
|
|
4fcd22ca68 | ||
|
|
21890e74fe | ||
|
|
ef32564fba | ||
|
|
d95505726f | ||
|
|
bb7b892f7c | ||
|
|
836cdaf087 | ||
|
|
6f5c41abb8 | ||
|
|
6379321785 | ||
|
|
e4c6e4393e | ||
|
|
3e6bb81e39 | ||
|
|
ded6f18dd5 | ||
|
|
81643e2aef | ||
|
|
8a186f9f0c | ||
|
|
14aa39976a | ||
|
|
c077e0ddc2 | ||
|
|
d198a7b63a | ||
|
|
7f36a33dea | ||
|
|
db3d9fc65f | ||
|
|
f9738451db | ||
|
|
ec73b5cbea | ||
|
|
f3bd6b6469 | ||
|
|
fd50993fb9 | ||
|
|
079381dbb0 | ||
|
|
85bdc35342 | ||
|
|
2aaaa55e42 | ||
|
|
e999bea228 | ||
|
|
287c06383b | ||
|
|
202409c140 | ||
|
|
34886beccb | ||
|
|
3d200cc34e | ||
|
|
b13883530a | ||
|
|
032e04bc50 | ||
|
|
625b715832 | ||
|
|
e1ac360271 | ||
|
|
7eda88bdbe | ||
|
|
90fdb94e95 | ||
|
|
15979203ce | ||
|
|
6aef00ffc6 | ||
|
|
53360a03af | ||
|
|
9f6f7c23f6 | ||
|
|
76eb6fca13 | ||
|
|
7419f4e886 | ||
|
|
f90a80c366 | ||
|
|
d9ec756e22 | ||
|
|
9f7c24c540 | ||
|
|
fe2833395d | ||
|
|
a181cf3815 | ||
|
|
dfce44a47a | ||
|
|
22280bf1e3 | ||
|
|
30aedb6eec | ||
|
|
12f175740f | ||
|
|
5c0f11aea1 | ||
|
|
879518c4a9 | ||
|
|
7afca6a254 | ||
|
|
1c56aa2eb1 | ||
|
|
ecaf00c5b3 | ||
|
|
bfdc77da97 | ||
|
|
f38aa4595f | ||
|
|
aa0b906a9f | ||
|
|
9e64e5a60e | ||
|
|
35eb05432b | ||
|
|
892b84690e | ||
|
|
77c6298067 | ||
|
|
f43d1e5f47 | ||
|
|
63a74e1aef | ||
|
|
69e45e9ae8 | ||
|
|
53cf35014c | ||
|
|
d6e4239573 | ||
|
|
c76808e11e | ||
|
|
b2428a4211 | ||
|
|
aa0e919713 | ||
|
|
7e2a41b6cb | ||
|
|
258b1d2d1f | ||
|
|
a4ea200e38 | ||
|
|
43a27c16a6 | ||
|
|
3c693baab0 | ||
|
|
d186e2702c | ||
|
|
b0bfb4d3f6 | ||
|
|
aee478114b | ||
|
|
6220530855 | ||
|
|
69ae37021c | ||
|
|
e2382a403b | ||
|
|
0ae45eb918 | ||
|
|
d8882f8d0c | ||
|
|
00c64411c5 | ||
|
|
c0f35a7d84 | ||
|
|
12cf05bb87 | ||
|
|
325c17647e | ||
|
|
c6eeb2107a | ||
|
|
70fd037161 | ||
|
|
ed4469bd5f | ||
|
|
5ce168071c | ||
|
|
4273d72b9d | ||
|
|
30f56d1f9b | ||
|
|
d560468f3c | ||
|
|
ac5e49d0fc | ||
|
|
447d1f510c | ||
|
|
af1a05ff40 | ||
|
|
c0651e4e2c | ||
|
|
f8865206e9 | ||
|
|
5e7d2431b3 | ||
|
|
9bb13f6d88 | ||
|
|
52dbd8afec | ||
|
|
99216321a8 | ||
|
|
31a0f04710 | ||
|
|
ac88add40b | ||
|
|
5a2c0460aa | ||
|
|
de89200eae | ||
|
|
862cf67375 | ||
|
|
dae850616d | ||
|
|
72c2bd90e4 | ||
|
|
d4ecf28147 | ||
|
|
7009ca78f2 | ||
|
|
149e114359 | ||
|
|
7d63e7e417 | ||
|
|
d12e5d19c9 | ||
|
|
7a6b3b7a86 | ||
|
|
97fc02b601 | ||
|
|
03c58b7ae3 | ||
|
|
9485403712 | ||
|
|
caeead0bc0 | ||
|
|
f93204e37e | ||
|
|
e6af91c6ab | ||
|
|
c9166f6f92 | ||
|
|
c89428eed8 | ||
|
|
b4f2b89139 | ||
|
|
aab7cdcf77 | ||
|
|
47cdedefd4 | ||
|
|
710145a32d | ||
|
|
2783d2cc77 | ||
|
|
751794c1ec | ||
|
|
a7a5df1991 | ||
|
|
62a296f909 | ||
|
|
c561aad661 | ||
|
|
0a301e1a84 | ||
|
|
37e727202c | ||
|
|
9023cc76a0 | ||
|
|
49bdd03c1c | ||
|
|
23f4b672b2 | ||
|
|
599d45086f | ||
|
|
93aed0e06a | ||
|
|
7eb94d7575 | ||
|
|
fa8b0bd6a1 | ||
|
|
c26e271676 | ||
|
|
7d87477d68 | ||
|
|
9002fb3828 | ||
|
|
10257a832a | ||
|
|
261f5a526c | ||
|
|
b5e0c121e8 | ||
|
|
6d99c456e4 | ||
|
|
8c6f0c2736 | ||
|
|
bd89af5e8c | ||
|
|
b0e4128d3c | ||
|
|
875a8f101a | ||
|
|
c5a8ef57ac | ||
|
|
c8adeed187 | ||
|
|
49f5f506d4 | ||
|
|
1c87585570 | ||
|
|
30eb52da77 | ||
|
|
6f089482e6 | ||
|
|
8e221cc263 | ||
|
|
441917b670 | ||
|
|
343d6a8c9a | ||
|
|
6251de3b38 | ||
|
|
d731125a14 | ||
|
|
d6fe64bc40 | ||
|
|
f8b93807ae | ||
|
|
2287a111c1 | ||
|
|
a08d92ea41 | ||
|
|
c41d7981ba | ||
|
|
37f5336806 | ||
|
|
ebdc98dfa7 | ||
|
|
f3c8c860f5 | ||
|
|
f7b27142c4 | ||
|
|
4fc37c54c5 | ||
|
|
849e1e57dd | ||
|
|
c768ca5eba | ||
|
|
c9516d90e9 | ||
|
|
327aae687a | ||
|
|
3cbe4617eb | ||
|
|
de69fe6b6f | ||
|
|
e53101dacb | ||
|
|
d3ec749848 | ||
|
|
410b7d3dd6 | ||
|
|
e87b233713 | ||
|
|
ca38ecb1cf | ||
|
|
5dfa70dc10 | ||
|
|
ff3daff15a | ||
|
|
7b7f235354 | ||
|
|
779c6247cd | ||
|
|
fcaffa8c5f | ||
|
|
d2ffcc903a | ||
|
|
1d12c97e30 | ||
|
|
3bcaeb214e | ||
|
|
8c5c7a5d93 | ||
|
|
85995040a8 | ||
|
|
826d06b532 | ||
|
|
3328e35cf4 | ||
|
|
091c56ec34 | ||
|
|
31e9910242 | ||
|
|
f6e3c72e9c | ||
|
|
3f618bc970 | ||
|
|
1c766e568c | ||
|
|
8ed9bfbfcb | ||
|
|
f1d66fc446 | ||
|
|
50977b367f | ||
|
|
45312d0564 | ||
|
|
3261d63b19 | ||
|
|
2894899ad4 | ||
|
|
dd5c709709 | ||
|
|
618247f4d5 | ||
|
|
abcf035143 | ||
|
|
0b015233a9 | ||
|
|
44d85b842c | ||
|
|
470f4a770b | ||
|
|
808a1ba0ea | ||
|
|
04cef606fc | ||
|
|
1ef6a1d0e4 | ||
|
|
b163a3a7b9 | ||
|
|
e7f7f28ff1 | ||
|
|
b9c17fd360 | ||
|
|
c7534a985a | ||
|
|
52583a05f6 | ||
|
|
081373fc0d | ||
|
|
9130604fa6 | ||
|
|
37b4726925 | ||
|
|
cc66eb5329 | ||
|
|
563c133676 | ||
|
|
864ec2709c | ||
|
|
e8b32c4ed3 | ||
|
|
72ca259771 | ||
|
|
d175c4b564 | ||
|
|
fb2aeb8192 | ||
|
|
24c25ab26c | ||
|
|
9da91e460f | ||
|
|
2634cf7de9 | ||
|
|
7417091f3f | ||
|
|
f9aad50f46 | ||
|
|
535cd5af2e | ||
|
|
4a8e469736 | ||
|
|
7d89f711fe | ||
|
|
7555a0389b | ||
|
|
1ac6e4b1a0 | ||
|
|
d2fc4c6134 | ||
|
|
4b1ca8d7bf | ||
|
|
73cad308aa | ||
|
|
c9f4c33ba1 | ||
|
|
3f0bdc593c | ||
|
|
0da2d38bd8 | ||
|
|
3a6ce52ead | ||
|
|
eb0582ae69 | ||
|
|
3143d094e8 | ||
|
|
f265a23f97 | ||
|
|
dceeb410c6 | ||
|
|
30be08fe4d | ||
|
|
20247d0bc2 | ||
|
|
c0ac325911 | ||
|
|
c02ab116cd | ||
|
|
7ec4f2a61e | ||
|
|
16129ba742 | ||
|
|
61853fb71f | ||
|
|
58f13eb1dc | ||
|
|
b999f17445 | ||
|
|
c8047854f6 | ||
|
|
91ee23287a | ||
|
|
85b08b8c65 | ||
|
|
c81079a876 | ||
|
|
8abe57552c | ||
|
|
3bf24b838b | ||
|
|
e37928bf89 | ||
|
|
525173bc9f | ||
|
|
aa6dacf0c5 | ||
|
|
69cc71ab3b | ||
|
|
fe52d31168 | ||
|
|
3ea4307716 | ||
|
|
5650df1a9f | ||
|
|
8f154ebf48 | ||
|
|
47a4c62e92 | ||
|
|
539ad769d0 | ||
|
|
5fa90d9eab | ||
|
|
ba9d56811c | ||
|
|
8eb8a328d1 | ||
|
|
3b73d54ea2 | ||
|
|
e8327316dd | ||
|
|
3bd7001106 | ||
|
|
2e5ad53c6a | ||
|
|
ca0ae279e0 | ||
|
|
adf1120436 | ||
|
|
7879391de0 | ||
|
|
11ba9ea418 | ||
|
|
0fe84ca17c | ||
|
|
1009ca5111 | ||
|
|
2c973fb0be | ||
|
|
dba1f4e71c | ||
|
|
46fe124fe1 | ||
|
|
50688d7d8a | ||
|
|
a7396e3c4a | ||
|
|
41e969f79e | ||
|
|
7b3f78f745 | ||
|
|
14bc171246 | ||
|
|
a584c0751e | ||
|
|
3d7528e069 | ||
|
|
58cc75ef71 | ||
|
|
b5a9462e95 | ||
|
|
1bc421ac6d | ||
|
|
ad0d091b49 | ||
|
|
22de686a44 | ||
|
|
3e7eb09758 | ||
|
|
e2a276085b | ||
|
|
d561c579e0 | ||
|
|
371d117746 | ||
|
|
28c681a562 | ||
|
|
2131efb522 | ||
|
|
6e20774edf | ||
|
|
a7c7744ff3 | ||
|
|
019aefbc61 | ||
|
|
81a23305ba | ||
|
|
4001abff02 | ||
|
|
25bfbeb8d6 | ||
|
|
44025c3978 | ||
|
|
a3aa9747b8 | ||
|
|
009243b091 | ||
|
|
e31e0b6680 | ||
|
|
449bb2522b | ||
|
|
453dce9520 | ||
|
|
655592186b | ||
|
|
1ebf67233b | ||
|
|
1588dabcbe | ||
|
|
09d3995e6c | ||
|
|
db20385a6d | ||
|
|
d701935ddf | ||
|
|
d3888e3c32 | ||
|
|
94f0795247 | ||
|
|
4def73d738 | ||
|
|
2ca433c83f | ||
|
|
99445406fc | ||
|
|
8c32d18aec | ||
|
|
20c31153de | ||
|
|
025fa57e24 | ||
|
|
6f04d0bf07 | ||
|
|
ecb9a805e5 | ||
|
|
0577acad93 | ||
|
|
d7f83fa4d4 | ||
|
|
4c4f4d52d2 | ||
|
|
0bf9025c0d | ||
|
|
7a0f56cad8 | ||
|
|
2784b57a05 | ||
|
|
b9fc9748c7 | ||
|
|
c98299d916 | ||
|
|
f6e25fd966 | ||
|
|
557b9429bf | ||
|
|
139f7bbd0a | ||
|
|
ec25f6426a | ||
|
|
00283b4f28 | ||
|
|
e08b5cde69 | ||
|
|
ec8e4c36a4 | ||
|
|
07c7718320 | ||
|
|
2953e977ef | ||
|
|
92522b1229 | ||
|
|
9ef9dcd7b9 | ||
|
|
5fd8096ef0 | ||
|
|
5f59543a14 | ||
|
|
d44593d6d4 | ||
|
|
0b40569727 | ||
|
|
38744ff8e8 | ||
|
|
83e935a3f4 | ||
|
|
4d96e73866 | ||
|
|
a55ce75e2e | ||
|
|
c45dbf1dac | ||
|
|
2d08629608 | ||
|
|
49bc67a64f | ||
|
|
abec4d9281 | ||
|
|
149bc601e2 | ||
|
|
66deede936 | ||
|
|
0df5511bf7 | ||
|
|
2e68218cfe | ||
|
|
80f3568dbd | ||
|
|
5fd0ff9e71 | ||
|
|
4dcfa05157 | ||
|
|
42648f31a5 | ||
|
|
e0b628dce9 | ||
|
|
6e9c7e28e6 | ||
|
|
ac091a7d26 | ||
|
|
8f31532917 | ||
|
|
612e7955cf | ||
|
|
ce92031ff7 | ||
|
|
5a7e63871d | ||
|
|
7ade7f6e24 | ||
|
|
e470ef0553 | ||
|
|
afb0247d87 | ||
|
|
fb01a4f8df | ||
|
|
eacdca8669 | ||
|
|
df97a6dd01 | ||
|
|
0259d4ff1d | ||
|
|
f71e9938bb | ||
|
|
69f8e3f4fc | ||
|
|
bce8461a7e | ||
|
|
f49c888307 | ||
|
|
04a2da4371 | ||
|
|
59372b23e4 | ||
|
|
2970c0d7d4 | ||
|
|
392f1b09b2 | ||
|
|
79f66e9641 | ||
|
|
e90fceca86 | ||
|
|
24d5cee8b4 | ||
|
|
31f608a9ec | ||
|
|
1ba4c4f343 | ||
|
|
700d9656b2 | ||
|
|
0c17d9abc2 | ||
|
|
2c1476b74c | ||
|
|
0fa71727ac | ||
|
|
20cacf26ae | ||
|
|
1d406b0c7e | ||
|
|
a099d27b86 | ||
|
|
3e53ec9191 | ||
|
|
637cbd9954 | ||
|
|
717251ca5e | ||
|
|
5d3bb41275 | ||
|
|
e5211fee00 | ||
|
|
41cb078a94 | ||
|
|
0a5e4076e1 | ||
|
|
c3534e21fa | ||
|
|
e9e934cfb1 | ||
|
|
9d5cc43d71 | ||
|
|
a417ddda85 | ||
|
|
06159c6b68 | ||
|
|
22c14d169b | ||
|
|
f273a8839a | ||
|
|
db09db3cd0 | ||
|
|
ba8a8b8673 | ||
|
|
62ae81c7b3 | ||
|
|
bc1370ab29 | ||
|
|
6db9567eb9 | ||
|
|
8ef08c53b3 | ||
|
|
6f354bfeee | ||
|
|
818d764b3d | ||
|
|
9fdbdb05f4 | ||
|
|
d392131005 | ||
|
|
389b9e382b | ||
|
|
6fd84e2f2a | ||
|
|
689ea71846 | ||
|
|
66295594e9 | ||
|
|
042b80b9f4 | ||
|
|
c4da241516 | ||
|
|
74ccbfa760 | ||
|
|
46d8838d0e | ||
|
|
94d2c32025 | ||
|
|
64124cc0f7 | ||
|
|
24c5bc5097 | ||
|
|
1ffde5de50 | ||
|
|
eaf2b14cfc | ||
|
|
3828da2f8f | ||
|
|
1554d3cc33 | ||
|
|
d808b306b6 | ||
|
|
45aeb808fa | ||
|
|
74f9fc0c18 | ||
|
|
c2c90a2c2e | ||
|
|
1cf7d81aa5 | ||
|
|
05ab077dda | ||
|
|
1ae422c74e | ||
|
|
5da62c3a5d | ||
|
|
86a98118fb | ||
|
|
6a51208a13 | ||
|
|
0749f5e724 | ||
|
|
f65644f553 | ||
|
|
dc74da6e86 | ||
|
|
301c4c2c97 | ||
|
|
8ec820a7f7 | ||
|
|
f11a9536f0 | ||
|
|
18734e0f85 | ||
|
|
9980504c47 | ||
|
|
626960da9f | ||
|
|
535728b982 | ||
|
|
ace9672a2e | ||
|
|
05a13861ac | ||
|
|
24374b85c1 | ||
|
|
8c358f1e3c | ||
|
|
289285f517 | ||
|
|
3ee9e0f4eb | ||
|
|
d6c924a51f | ||
|
|
3a739c5b64 | ||
|
|
3564f4ba8e | ||
|
|
5ad9d81cc1 | ||
|
|
c7bdcf0104 | ||
|
|
0292634374 | ||
|
|
d4418b8d8a | ||
|
|
a33f136e77 | ||
|
|
f85f8e9e2c | ||
|
|
01541c9e0d | ||
|
|
4bfffc945a | ||
|
|
df026499d5 | ||
|
|
16509c2eab | ||
|
|
bc1f85b657 | ||
|
|
6b0a5d60f4 | ||
|
|
33439b63a0 | ||
|
|
bb24d1207d | ||
|
|
8fc477ec04 | ||
|
|
bf06c9e14f | ||
|
|
a3aa4157b8 | ||
|
|
5a263107da | ||
|
|
d30bb2e329 | ||
|
|
8248bd8e47 | ||
|
|
378653c536 | ||
|
|
f2d330bd0e | ||
|
|
c1c93cbdc4 | ||
|
|
8f3268e1bc | ||
|
|
47a14e143e | ||
|
|
b7aa85f4fc | ||
|
|
90e25f3fcf | ||
|
|
d67e81d8a6 | ||
|
|
057915baaa | ||
|
|
fe268b6122 | ||
|
|
ca61597863 | ||
|
|
a04def360d | ||
|
|
5e43a8501b | ||
|
|
e893264075 | ||
|
|
cf20704811 | ||
|
|
37c5b23a86 | ||
|
|
82d8fe6e17 | ||
|
|
4ca3697845 | ||
|
|
71130bd26b | ||
|
|
37626d8f45 | ||
|
|
f95369d3a4 | ||
|
|
aa00891f8e | ||
|
|
d44f9ba2b6 | ||
|
|
c3b7b1e5a4 | ||
|
|
f3309e4a40 | ||
|
|
8fa059c186 | ||
|
|
96e61aea2b | ||
|
|
565779c9c8 | ||
|
|
b4ccd682c3 | ||
|
|
dba1331556 | ||
|
|
8803ae2274 | ||
|
|
69d09b7fc2 | ||
|
|
8ddfc8654e | ||
|
|
7a3243e882 | ||
|
|
4fc3b89e06 | ||
|
|
a17419ac12 | ||
|
|
5721d440e9 | ||
|
|
505c396283 | ||
|
|
88905132e7 | ||
|
|
111bed58d6 | ||
|
|
bed61324d6 | ||
|
|
643e6bc94f | ||
|
|
1a889352b8 | ||
|
|
5bba126a36 | ||
|
|
e01b955d46 | ||
|
|
e3431b0e1e | ||
|
|
b6d646b910 | ||
|
|
bb679a2790 | ||
|
|
e3af0a6426 | ||
|
|
b2108b9e5f | ||
|
|
76502e6d97 | ||
|
|
d100002107 | ||
|
|
afd61303c5 | ||
|
|
d1c3e81a38 | ||
|
|
46419edfee | ||
|
|
81c91d7866 | ||
|
|
34ee092919 | ||
|
|
d07344a88a | ||
|
|
66ae1c632b | ||
|
|
7cc7b71edd | ||
|
|
a223dfd463 | ||
|
|
61e8bc5ffa | ||
|
|
bba52a736a | ||
|
|
c5d575a019 | ||
|
|
08f8441aca | ||
|
|
6bf116cbef | ||
|
|
cc96b3fa5b | ||
|
|
b489452bd1 | ||
|
|
fa4e3997e4 | ||
|
|
7659cbbee6 | ||
|
|
548b845f62 | ||
|
|
4f733656a0 | ||
|
|
f4ef244a10 | ||
|
|
839000d48c | ||
|
|
bcb8f419ee | ||
|
|
059c399240 | ||
|
|
13b3cd6bc4 | ||
|
|
3cd4f4c5d9 | ||
|
|
02b20df652 | ||
|
|
416bdf16e0 | ||
|
|
75a4f66714 | ||
|
|
a5b9c26a97 | ||
|
|
0aa476d9dd | ||
|
|
851a0b3810 | ||
|
|
0f4eec1df6 | ||
|
|
4bc73f847c | ||
|
|
e1271c16d9 | ||
|
|
c7d2140e16 | ||
|
|
ac6ee6ff83 | ||
|
|
1507cf31ce | ||
|
|
aad04647ac | ||
|
|
934d3977d8 | ||
|
|
03b0e52bef | ||
|
|
1da2b8e87c | ||
|
|
e3d16142ac | ||
|
|
b972e40a28 | ||
|
|
c508255ab3 | ||
|
|
e9ec884eb9 | ||
|
|
592d28e898 | ||
|
|
b826fa6a20 | ||
|
|
74c2a303da | ||
|
|
dcf50073e7 | ||
|
|
fd8dbb4c8b | ||
|
|
375871012c | ||
|
|
b7b67cce69 | ||
|
|
6c22bff1fd | ||
|
|
0b12805d4a | ||
|
|
4bac1a4628 | ||
|
|
2cf164c445 | ||
|
|
4ffd994c5e | ||
|
|
11904e177b | ||
|
|
527e6b5053 | ||
|
|
053ebca267 | ||
|
|
5e7fae9d47 | ||
|
|
0e4ce99612 | ||
|
|
3c75637752 | ||
|
|
fb890ded1f | ||
|
|
4399f31a83 | ||
|
|
ca4b21e593 | ||
|
|
23a4edb610 | ||
|
|
accc1c622c | ||
|
|
e50ea6a5db | ||
|
|
04ce6f55db | ||
|
|
f0493e60d8 | ||
|
|
13edc9c9ff | ||
|
|
fd0ea4404b | ||
|
|
df9d0f908a | ||
|
|
779394ffd6 | ||
|
|
a230ecef9b | ||
|
|
061bcfdc0f | ||
|
|
aced10498b | ||
|
|
cd963d01e4 | ||
|
|
458dd5fff4 | ||
|
|
0c342fa188 | ||
|
|
43b13443ab | ||
|
|
c867d4e4b1 | ||
|
|
0f541142cc | ||
|
|
b0c55d09b0 | ||
|
|
ee71431210 | ||
|
|
a8196db676 | ||
|
|
8dc78d49eb | ||
|
|
3999d1c49b | ||
|
|
aceb928dba | ||
|
|
f17db695d3 | ||
|
|
214dd8ec08 | ||
|
|
2f974d7b52 | ||
|
|
9f1dce896f | ||
|
|
a8294bb01a | ||
|
|
28e4bdda29 | ||
|
|
7d408df904 | ||
|
|
caec6adf8d | ||
|
|
a38c0dbe33 | ||
|
|
d779d4ad50 | ||
|
|
9b71ce0fee | ||
|
|
8b18005b8e | ||
|
|
a550ef1b50 | ||
|
|
63a60b32cc | ||
|
|
ca4dc8d330 | ||
|
|
0a52aa5c53 | ||
|
|
591fc03ca2 | ||
|
|
ebd7b1249f | ||
|
|
1b6eeaf4ad | ||
|
|
1d3dac0e51 | ||
|
|
48da58b681 | ||
|
|
68639eadf0 | ||
|
|
dc77984c10 | ||
|
|
5b4e1cd694 | ||
|
|
3fbd974fa9 | ||
|
|
b457496297 | ||
|
|
dd83491169 | ||
|
|
a73a8fb993 | ||
|
|
fb7a99653d | ||
|
|
a34828113a | ||
|
|
297d75a2b3 | ||
|
|
47c5bb159a | ||
|
|
610b2d178c | ||
|
|
bb45e551a3 | ||
|
|
461329468c | ||
|
|
77cf6177dc | ||
|
|
a830856df2 | ||
|
|
efe215f4d0 | ||
|
|
5e2e2f841c | ||
|
|
35de5df04d | ||
|
|
9da436ab2d | ||
|
|
5333b96c88 | ||
|
|
6561a11661 | ||
|
|
1c9334a52b | ||
|
|
2e00693a33 | ||
|
|
8617ce4562 | ||
|
|
78416ef452 | ||
|
|
9ad50af4dd | ||
|
|
a6f3d62a01 | ||
|
|
a25b5fc6b8 | ||
|
|
9e26e94e97 | ||
|
|
a571cb5f15 | ||
|
|
2e00c94d34 | ||
|
|
4f0548fd60 | ||
|
|
f1506b9aee | ||
|
|
2805471301 | ||
|
|
89f55e091f | ||
|
|
da6c47d0ff | ||
|
|
5c1d96cc51 | ||
|
|
63cac73de3 | ||
|
|
c8ed5b0565 | ||
|
|
c6342fea49 | ||
|
|
7a3748f7e0 | ||
|
|
516b479c0c | ||
|
|
c06744b3bb | ||
|
|
57049c0c52 | ||
|
|
31326e1c91 | ||
|
|
3c60994a0a | ||
|
|
773cc42346 | ||
|
|
f46a1f39dc | ||
|
|
b7175bf77f | ||
|
|
ec22232aa8 | ||
|
|
f303cd2236 | ||
|
|
f40cef4416 | ||
|
|
fbca97d38d | ||
|
|
28bd2cba5c | ||
|
|
4b35f73bbf | ||
|
|
f4706eb126 | ||
|
|
21bcb90558 | ||
|
|
ae48ac0cae | ||
|
|
cb4979d5bc | ||
|
|
7d3ae74e1f | ||
|
|
9d680aa500 | ||
|
|
0d50b1c2fe | ||
|
|
75e034863f | ||
|
|
3b42de1571 | ||
|
|
668472286e | ||
|
|
e00d34c99d | ||
|
|
9fb496dfb3 | ||
|
|
f4eaa4a3ef | ||
|
|
5d50ed6bdf | ||
|
|
d7ace4eaf9 | ||
|
|
16a4d335ea | ||
|
|
ba69bb0772 | ||
|
|
455940caa2 | ||
|
|
439344757e | ||
|
|
ad912691c9 | ||
|
|
237144aff6 | ||
|
|
810332d558 | ||
|
|
f8431d0ba1 | ||
|
|
57c3bfa16a | ||
|
|
61f1077608 | ||
|
|
8877e968b9 | ||
|
|
4575c90bee | ||
|
|
21279a87ae | ||
|
|
3d5ad4a17e | ||
|
|
9bb7b044a8 | ||
|
|
dc8f2f7561 | ||
|
|
829dbf84da | ||
|
|
7b156c17f8 | ||
|
|
cbf7cbc164 | ||
|
|
b04faa816e | ||
|
|
517ebe2902 | ||
|
|
03d0d314e3 | ||
|
|
3e804c5cce | ||
|
|
ee2b8b538e | ||
|
|
fdfd34fe92 | ||
|
|
2d6fb6523b | ||
|
|
3084bf3982 | ||
|
|
5ba51e8392 | ||
|
|
fb5eb43e34 | ||
|
|
b154056276 | ||
|
|
c67b8f9ca1 | ||
|
|
95e4181360 | ||
|
|
32dffbe56b | ||
|
|
6b3c8d373b | ||
|
|
db29107f47 | ||
|
|
355537f2ab | ||
|
|
0729ef0c21 | ||
|
|
6fe82bfd0f | ||
|
|
39bf072363 | ||
|
|
da7c384fd8 | ||
|
|
95130fd9a0 | ||
|
|
978e2344a3 | ||
|
|
c9bf45602c | ||
|
|
aa160b2036 | ||
|
|
f82b32d351 | ||
|
|
e519dc9a57 | ||
|
|
f020c37db9 | ||
|
|
5a4ec3b6b1 | ||
|
|
2602d6c9d2 | ||
|
|
ff403583d7 | ||
|
|
c5577cc2bd | ||
|
|
78be6e5dc1 | ||
|
|
b954a41375 | ||
|
|
0100a11cfe | ||
|
|
04cf2e8534 | ||
|
|
be00724818 | ||
|
|
274d93c61a | ||
|
|
7dc4c30436 | ||
|
|
028ef4bc31 | ||
|
|
42124d65c7 |
No files matched your search
+2
-1
@@ -401,4 +401,5 @@ FodyWeavers.xsd
|
||||
|
||||
/fmtall
|
||||
/genmacall
|
||||
*AssemblyInfo.cs
|
||||
*AssemblyInfo.cs
|
||||
/PROMS/Baseline/Baseline.sln
|
||||
@@ -1,87 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{D1AB675E-828D-4781-BACD-8A2324CD84A5}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>AdjustBuildRevision</RootNamespace>
|
||||
<AssemblyName>AdjustBuildRevision</AssemblyName>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>2.0</OldToolsVersion>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,128 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AdjustBuildRevision
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// args[0] - FileName
|
||||
try
|
||||
{
|
||||
FileInfo fi = new FileInfo(args[0]);
|
||||
DateTime dtLatest = GetLatestDateTime(fi.Directory.Parent,fi.LastWriteTime);
|
||||
if (fi.Exists)
|
||||
{
|
||||
StreamReader sr = fi.OpenText();
|
||||
string content = sr.ReadToEnd();
|
||||
sr.Close();
|
||||
string[] seps = { "\r\n" };
|
||||
string[] lines = content.Split(seps, StringSplitOptions.None);
|
||||
bool changed = false;
|
||||
for (int i = 0; i < lines.Length;i++ )
|
||||
{
|
||||
string line = lines[i];
|
||||
string outline = line;
|
||||
if (line.Contains("AssemblyVersion") || line.Contains("AssemblyFileVersion"))
|
||||
{
|
||||
// Allow for setting build revision on either proms or the roeditor:
|
||||
if (Directory.GetCurrentDirectory().ToUpper().Contains("REFOBJ"))
|
||||
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.3.yyMM.dHH") + "\")");
|
||||
else
|
||||
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.2.yyMM.dHH") + "\")");
|
||||
// if (outline != line)
|
||||
// {
|
||||
// Console.WriteLine("Before: '{0}'", line);
|
||||
// Console.WriteLine("After: '{0}'", outline);
|
||||
// lines[i] = outline;
|
||||
// changed = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Console.WriteLine("No change: '{0}'", line);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//if (changed)
|
||||
//{
|
||||
// if (!fi.IsReadOnly) fi.IsReadOnly = false;
|
||||
// StreamWriter sw = fi.CreateText();
|
||||
// foreach (string line in lines)
|
||||
// sw.WriteLine(line);
|
||||
// sw.Close();
|
||||
// string line = lines[i];
|
||||
// string outline = line;
|
||||
// if (line.Contains("AssemblyVersion") || line.Contains("AssemblyFileVersion"))
|
||||
// {
|
||||
//outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("1.1.yyMM.dHH") + "\")");
|
||||
if (outline != line)
|
||||
{
|
||||
Console.WriteLine("Before: '{0}'", line);
|
||||
Console.WriteLine("After: '{0}'", outline);
|
||||
lines[i] = outline;
|
||||
changed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("No change: '{0}'", line);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changed)
|
||||
{
|
||||
if (!fi.IsReadOnly) fi.IsReadOnly = false;
|
||||
StreamWriter sw = fi.CreateText();
|
||||
foreach (string line in lines)
|
||||
sw.WriteLine(line);
|
||||
sw.Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("File " + fi.FullName + " does not exist");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
//private static DateTime GetLatestDateTime(string path)
|
||||
//{
|
||||
// return GetLatestDateTime(new DirectoryInfo(path));
|
||||
//}
|
||||
private static DateTime GetLatestDateTime(DirectoryInfo di, DateTime dtCheck)
|
||||
{
|
||||
DateTime dtMax = dtCheck;
|
||||
FileInfo[] myFiles = di.GetFiles();
|
||||
foreach(FileInfo myFile in myFiles)
|
||||
{
|
||||
DateTime dt = myFile.LastWriteTime;
|
||||
//if (dt > dtCheck)
|
||||
//{
|
||||
//Console.WriteLine("\"File\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}",myFile.FullName,dt.ToString("1.1.yyMM.dHH"),dt,dtCheck);
|
||||
if(dtMax < dt) dtMax = dt;
|
||||
//}
|
||||
}
|
||||
DirectoryInfo[] myFolders = di.GetDirectories();
|
||||
foreach (DirectoryInfo diChild in myFolders)
|
||||
{
|
||||
DateTime dtChild = GetLatestDateTime(diChild,dtCheck);
|
||||
//if (dtChild > dtCheck)
|
||||
//{
|
||||
//Console.WriteLine("\"SubFolder\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}", diChild.FullName, dtChild.ToString("1.1.yyMM.dHH"),dtChild,dtCheck);
|
||||
if(dtChild > dtMax) dtMax = dtChild;
|
||||
//}
|
||||
}
|
||||
//if(dtMax > dtCheck)
|
||||
// Console.WriteLine("\"Folder\"\t\"{0}\"\t\"{1}\"", di.FullName, dtMax.ToString("1.1.yyMM.dHH"));
|
||||
return dtMax;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("AdjustBuildRevision")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("AdjustBuildRevision")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2012")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("8a4acdf4-c7ce-47d4-9000-798a14908e01")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,3 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1"/></startup></configuration>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="Baseline.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1"/>
|
||||
</startup>
|
||||
<userSettings>
|
||||
<Baseline.Properties.Settings>
|
||||
<setting name="Compare1" serializeAs="String">
|
||||
<value/>
|
||||
</setting>
|
||||
<setting name="Compare2" serializeAs="String">
|
||||
<value/>
|
||||
</setting>
|
||||
<setting name="Location" serializeAs="String">
|
||||
<value>0, 0</value>
|
||||
</setting>
|
||||
<setting name="Size" serializeAs="String">
|
||||
<value>700, 400</value>
|
||||
</setting>
|
||||
<setting name="WidnowState" serializeAs="String">
|
||||
<value>Normal</value>
|
||||
</setting>
|
||||
<setting name="Split1" serializeAs="String">
|
||||
<value>120</value>
|
||||
</setting>
|
||||
<setting name="Split2" serializeAs="String">
|
||||
<value>350</value>
|
||||
</setting>
|
||||
<setting name="Split3" serializeAs="String">
|
||||
<value>167</value>
|
||||
</setting>
|
||||
<setting name="Ignore" serializeAs="String">
|
||||
<value/>
|
||||
</setting>
|
||||
</Baseline.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
@@ -1,153 +0,0 @@
|
||||
/* ========================================================================
|
||||
Copyright 2018 - Volian Enterprises, Inc. All rights reserved.
|
||||
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
||||
------------------------------------------------------------------------
|
||||
This is a SQL script which can be used to create a CMD Batch file to
|
||||
perform automated testing on all of the folders within the current
|
||||
database and server.
|
||||
------------------------------- NOTE -----------------------------------
|
||||
There are no parameters in this script. The following values are
|
||||
retrieved from the databse which is currently open
|
||||
DB_NAME() - Gets the current Database Name
|
||||
@@Servername - Gets the current SQL Servername
|
||||
These are passed as parameters to PROMS along with some other paramters
|
||||
which specifies how the procedure should be printed.
|
||||
You can add REM before any folders that should not print
|
||||
****************************** CAUTION *********************************
|
||||
If you are comparing against code created before 8/1/2018 you will need
|
||||
to specify /NW to exclude the Word output which had not previously been
|
||||
included.
|
||||
=======================================================================*/
|
||||
PRINT 'REM Blank Line Before Batch Commands
|
||||
@ECHO OFF
|
||||
ECHO Automated testing assumes the following:
|
||||
ECHO C:\PDFS will be used to store the results of the Automated Print Testing
|
||||
ECHO C:\PROMS will be used to store the executable for the Automated Print Testing
|
||||
ECHO ---
|
||||
ECHO The following Parameter Needs to be set:
|
||||
set PROMSEXE=1.5.1805.910.Production
|
||||
ECHO PROMSEXE [%PROMSEXE%] - Subfolder of the PROMS Executable
|
||||
ECHO ---
|
||||
ECHO Automated Testing will:
|
||||
ECHO Delete PDFs
|
||||
ECHO Update Formats From the folder promsformats under the PROMSEXE folder
|
||||
set dbName=' + DB_NAME() + '
|
||||
set /p GroupComment=Specify Output[%PROMSEXE%_%dbName%]: || set GroupComment=%PROMSEXE%_%dbName%
|
||||
ECHO AAA >%TEMP%\VEPROMS\NewFile.txt
|
||||
for %%a in (%TEMP%\VEPROMS\NewFile.txt) do Set fdt=%%~ta
|
||||
for /F "tokens=1,2,3,4,5,6 delims=/: " %%i in (''echo %fdt%'') do call:sc_FixTime %%k %%i %%j %%n %%l %%m
|
||||
set fdt=%fdt::=%_%GroupComment%
|
||||
set ServerName=' + @@Servername + '
|
||||
md %TEMP%\VEPROMS\%fdt%
|
||||
md C:\PDFs\%fdt%
|
||||
echo %date% %time% Start ' + @@Servername + ' ' + DB_NAME() + '%GroupComment% >>C:\pdfs\%fdt%\Times.txt
|
||||
del %TEMP%\VEPROMS\NewFile.txt
|
||||
Rem Cleanup output folder before processing
|
||||
del %temp%\VEPROMS\*.txt
|
||||
del %temp%\VEPROMS\*.pdf
|
||||
Rem Delete PDFs
|
||||
sqlcmd -E -S%servername% -d%DBNAME% -b -Q "delete from pdfs"
|
||||
if ERRORLEVEL 1 goto :oops
|
||||
Rem Update Formats
|
||||
call :sc_setformats unnecessary unnecessary ' + DB_NAME() + ' unnecessary %PROMSEXE%
|
||||
Rem Perform PROMS printing for each Folder ----------------------------------------
|
||||
GoTo :SkipStart
|
||||
Rem Skip some DocVersions (Working Drafts)
|
||||
:SkipStart
|
||||
'
|
||||
|
||||
declare @CommandLine nvarchar(255)
|
||||
declare Commands cursor for
|
||||
select 'Call :sc_PrintPDF %TEMP%\VEPROMS ' +
|
||||
cast(VersionID as varchar(5))+ ' ' + db_name() + ' ' +
|
||||
Replace(Replace(Replace(Replace(ff.name,'/','_'),'\','_'),' ','_'),'-','_') + ' %PROMSEXE%'
|
||||
from docversions dv
|
||||
join folders ff on dv.folderID = ff.FolderID
|
||||
order by versionID
|
||||
OPEN Commands
|
||||
FETCH NEXT FROM Commands INTO @CommandLine
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
print @CommandLine
|
||||
FETCH NEXT FROM Commands INTO @CommandLine
|
||||
END
|
||||
CLOSE Commands
|
||||
DEALLOCATE Commands
|
||||
PRINT 'GoTo :SkipEnd
|
||||
Rem Skip Some DocVersions (Working Drafts)
|
||||
:SkipEnd
|
||||
Call :sc_MoveErrorLog ' + db_name() +'
|
||||
Rem Record direcctly to C:\PDFs\%fdt%
|
||||
echo %date% %time% Done >>C:\PDFS\%fdt%\Times.txt
|
||||
Move %TEMP%\VEPROMS\%fdt%\*.* C:\PDFs\%fdt%
|
||||
rd %TEMP%\VEPROMS\%fdt%
|
||||
|
||||
set GroupComment=
|
||||
set fdt=
|
||||
rem wait 20
|
||||
goto:eof
|
||||
|
||||
:sc_setformats
|
||||
echo loading formats from c:\proms\%5\promsformats
|
||||
"C:\PROMS\%5\VEPROMS.exe" /UF=c:\proms\%5\promsformats /P= /DB=%ServerName%:%3
|
||||
timeout /T 10
|
||||
goto:eof
|
||||
|
||||
:sc_PrintPDF
|
||||
echo %date% %time% Start %2 (%4) >>C:\PDFS\%fdt%\Times.txt
|
||||
echo Creating PDFs for DocVersion %2 (%4) in %3
|
||||
rem del %userprofile%\Documents\VEPROMS\%3*.txt
|
||||
"C:\PROMS\%5\VEPROMS.exe" /P=%2 /DB=%ServerName%:%3 /NT /NC
|
||||
rem -----------------------------------------------
|
||||
rem Add /NW to exclude Word Output to the Meta File
|
||||
rem -----------------------------------------------
|
||||
echo %date% %time% Done %2 (%4) >>C:\PDFS\%fdt%\Times.txt
|
||||
call :sc_AddText %3 %2 %4 %5
|
||||
C:
|
||||
cd %1
|
||||
if not exist DebugP*.txt goto:sc_PrintPDFNoFiles
|
||||
set fdt1=%fdt%\%3\%2_%4
|
||||
md c:\PDFs\%fdt1%
|
||||
del DOC_*.pdf > nul
|
||||
move *.pdf c:\PDFs\%fdt1% > nul
|
||||
move *.txt c:\PDFs\%fdt1% > nul
|
||||
for /F %%c in (''cd'') do echo Files Moved to %%c\%fdt1%
|
||||
set fdt1=
|
||||
goto:eof
|
||||
:sc_PrintPDFNoFiles
|
||||
for /F %%d in (''cd'') do echo No Files to Move in %%d
|
||||
goto:eof
|
||||
|
||||
:sc_FixTime
|
||||
set fdt=%1%2%3_%5%6
|
||||
if "%5%4"=="12PM" goto:sc_FixTimeDone
|
||||
if "%5%4"=="12AM" set fdt=%1%2%3_00%6
|
||||
if "%4"=="AM" goto:sc_FixTimeDone
|
||||
if "%5"=="01" set fdt=%1%2%3_13%6
|
||||
if "%5"=="02" set fdt=%1%2%3_14%6
|
||||
if "%5"=="03" set fdt=%1%2%3_15%6
|
||||
if "%5"=="04" set fdt=%1%2%3_16%6
|
||||
if "%5"=="05" set fdt=%1%2%3_17%6
|
||||
if "%5"=="06" set fdt=%1%2%3_18%6
|
||||
if "%5"=="07" set fdt=%1%2%3_19%6
|
||||
if "%5"=="08" set fdt=%1%2%3_20%6
|
||||
if "%5"=="09" set fdt=%1%2%3_21%6
|
||||
if "%5"=="10" set fdt=%1%2%3_22%6
|
||||
if "%5"=="11" set fdt=%1%2%3_23%6
|
||||
:sc_FixTimeDone
|
||||
echo %2/%3/%1 %5:%6 %4 %fdt%
|
||||
goto:eof
|
||||
|
||||
:sc_MoveErrorLog
|
||||
move %userprofile%\Documents\VEPROMS\%1*.txt C:\PDFS\%fdt%\%1 > nul
|
||||
goto:eof
|
||||
|
||||
:sc_AddText
|
||||
for %%a in ("%userprofile%\Documents\VEPROMS\%1 *.txt") do Set fil=%%a
|
||||
echo "=========== %4 Printing Complete %2 %3 ===========" >>"%fil%"
|
||||
set fil=
|
||||
goto :eof
|
||||
|
||||
oops:
|
||||
TIMEOUT /T 60
|
||||
'
|
||||
@@ -1,113 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{8B29E0DE-B6C9-4041-8817-319FDE3123C4}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Baseline</RootNamespace>
|
||||
<AssemblyName>Baseline</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="frmBaseline.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmBaseline.Designer.cs">
|
||||
<DependentUpon>frmBaseline.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmSettings.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmSettings.Designer.cs">
|
||||
<DependentUpon>frmSettings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="frmBaseline.resx">
|
||||
<DependentUpon>frmBaseline.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmSettings.resx">
|
||||
<DependentUpon>frmSettings.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="Properties\DataSources\IgnoreLines.datasource" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="AutomatedTesting.sql">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,64 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Baseline
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
// B2018-113 Added logic to handle errors generically
|
||||
if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToLower().EndsWith("vshost"))
|
||||
{
|
||||
Application.Run(new frmBaseline());
|
||||
}
|
||||
else
|
||||
{
|
||||
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
|
||||
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
|
||||
Application.Run(new frmBaseline());
|
||||
}
|
||||
}
|
||||
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
MessageBox.Show((e.ExceptionObject as Exception).Message,e.ExceptionObject.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
|
||||
{
|
||||
// Roaming folders copied to the server when the user logs off the client computer in a Domain environment.
|
||||
// Windows uses the Local folder for application data that does not roam with the user. Usually this data is
|
||||
// either machine specific or too large to roam. The AppData\Local folder in Windows Vista is the same as
|
||||
// the Documents and Settings\username\Local Settings\Application Data folder in Windows XP.
|
||||
// Windows uses the Roaming folder for application specific data, such as custom dictionaries, which are
|
||||
// machine independent and should roam with the user profile. The AppData\Roaming folder in Windows Vista
|
||||
// is the same as the Documents and Settings\username\Application Data folder in Windows XP.
|
||||
// SpecialFolder.LocalApplicationData returns \Local & SpecialFolder.ApplicationData returns \Roaming
|
||||
// for example - the SpecialFolder:
|
||||
// LocalApplicationData: C:\Users\Kathy.VOLIAN0\AppData\Local
|
||||
// ApplicationData: C:\Users\Kathy.VOLIAN0\AppData\Roaming
|
||||
// CommonApplicationData: C:\ProgramData
|
||||
// MyDocuments: C:\Users\Kathy.VOLIAN0\Documents
|
||||
|
||||
// The error log is created using log4Net. The variables that were tested were:
|
||||
// <param name="File" value="${USERPROFILE}/My Documents/VEPROMS/ErrorLog.txt" /> - puts in document directory
|
||||
// <param name="File" value="${APPDATA}/Volian/Proms2010/ErrorLog.txt" /> - puts in roaming directory
|
||||
// <param name="File" value="${LOCALAPPDATA}/Temp/VEPROMS/ErrorLog.txt" /> - Vista - puts in local directory. !Exist for XP
|
||||
|
||||
// Decided to use 'documents directory' for error log file so that it is easily accessible by user:
|
||||
MessageBox.Show( e.Exception.Message,e.Exception.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Baseline")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Baseline")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("2ebd4d89-21f4-41db-b8fe-9ea40be0f23a")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,21 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file is automatically generated by Visual Studio .Net. It is
|
||||
used to store generic object data source configuration information.
|
||||
Renaming the file extension or editing the content of this file may
|
||||
cause the file to be unrecognizable by the program.
|
||||
-->
|
||||
<GenericObjectDataSource DisplayName="IgnoreLines" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<TypeInfo>Baseline.IgnoreLines, Baseline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||
<TypeUISetting>
|
||||
<PropertyUISettings>
|
||||
<PropertyUISetting Name="SearchType">
|
||||
<ControlSettings>
|
||||
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
|
||||
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
</ControlSetting>
|
||||
</ControlSettings>
|
||||
</PropertyUISetting>
|
||||
</PropertyUISettings>
|
||||
</TypeUISetting>
|
||||
</GenericObjectDataSource>
|
||||
-63
@@ -1,63 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Baseline.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Baseline.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Baseline.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string Compare1 {
|
||||
get {
|
||||
return ((string)(this["Compare1"]));
|
||||
}
|
||||
set {
|
||||
this["Compare1"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string Compare2 {
|
||||
get {
|
||||
return ((string)(this["Compare2"]));
|
||||
}
|
||||
set {
|
||||
this["Compare2"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
|
||||
public global::System.Drawing.Point Location {
|
||||
get {
|
||||
return ((global::System.Drawing.Point)(this["Location"]));
|
||||
}
|
||||
set {
|
||||
this["Location"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("700, 400")]
|
||||
public global::System.Drawing.Size Size {
|
||||
get {
|
||||
return ((global::System.Drawing.Size)(this["Size"]));
|
||||
}
|
||||
set {
|
||||
this["Size"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Normal")]
|
||||
public global::System.Windows.Forms.FormWindowState WidnowState {
|
||||
get {
|
||||
return ((global::System.Windows.Forms.FormWindowState)(this["WidnowState"]));
|
||||
}
|
||||
set {
|
||||
this["WidnowState"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("120")]
|
||||
public int Split1 {
|
||||
get {
|
||||
return ((int)(this["Split1"]));
|
||||
}
|
||||
set {
|
||||
this["Split1"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("350")]
|
||||
public int Split2 {
|
||||
get {
|
||||
return ((int)(this["Split2"]));
|
||||
}
|
||||
set {
|
||||
this["Split2"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("167")]
|
||||
public int Split3 {
|
||||
get {
|
||||
return ((int)(this["Split3"]));
|
||||
}
|
||||
set {
|
||||
this["Split3"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
public global::System.Collections.Specialized.StringCollection MRU1 {
|
||||
get {
|
||||
return ((global::System.Collections.Specialized.StringCollection)(this["MRU1"]));
|
||||
}
|
||||
set {
|
||||
this["MRU1"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
public global::System.Collections.Specialized.StringCollection MRU2 {
|
||||
get {
|
||||
return ((global::System.Collections.Specialized.StringCollection)(this["MRU2"]));
|
||||
}
|
||||
set {
|
||||
this["MRU2"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string Ignore {
|
||||
get {
|
||||
return ((string)(this["Ignore"]));
|
||||
}
|
||||
set {
|
||||
this["Ignore"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Baseline.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Compare1" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="Compare2" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="Location" Type="System.Drawing.Point" Scope="User">
|
||||
<Value Profile="(Default)">0, 0</Value>
|
||||
</Setting>
|
||||
<Setting Name="Size" Type="System.Drawing.Size" Scope="User">
|
||||
<Value Profile="(Default)">700, 400</Value>
|
||||
</Setting>
|
||||
<Setting Name="WidnowState" Type="System.Windows.Forms.FormWindowState" Scope="User">
|
||||
<Value Profile="(Default)">Normal</Value>
|
||||
</Setting>
|
||||
<Setting Name="Split1" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">120</Value>
|
||||
</Setting>
|
||||
<Setting Name="Split2" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">350</Value>
|
||||
</Setting>
|
||||
<Setting Name="Split3" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">167</Value>
|
||||
</Setting>
|
||||
<Setting Name="MRU1" Type="System.Collections.Specialized.StringCollection" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="MRU2" Type="System.Collections.Specialized.StringCollection" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="Ignore" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
Generated
-388
@@ -1,388 +0,0 @@
|
||||
namespace Baseline
|
||||
{
|
||||
partial class frmBaseline
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.btnUC = new System.Windows.Forms.Button();
|
||||
this.cbCaseSensitive = new System.Windows.Forms.CheckBox();
|
||||
this.cbFile2 = new System.Windows.Forms.ComboBox();
|
||||
this.cbFile1 = new System.Windows.Forms.ComboBox();
|
||||
this.tbSearch = new System.Windows.Forms.TextBox();
|
||||
this.btnSearch = new System.Windows.Forms.Button();
|
||||
this.btnSettings = new System.Windows.Forms.Button();
|
||||
this.btnBaseline = new System.Windows.Forms.Button();
|
||||
this.btnPagination = new System.Windows.Forms.Button();
|
||||
this.btnBrowse2 = new System.Windows.Forms.Button();
|
||||
this.btnBrowse1 = new System.Windows.Forms.Button();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
|
||||
this.lbDifferent = new System.Windows.Forms.ListBox();
|
||||
this.lbProcedures = new System.Windows.Forms.ListBox();
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.lbResults1 = new System.Windows.Forms.ListBox();
|
||||
this.lbResults2 = new System.Windows.Forms.ListBox();
|
||||
this.fbd = new System.Windows.Forms.FolderBrowserDialog();
|
||||
this.StatusBar = new System.Windows.Forms.StatusStrip();
|
||||
this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.tt = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
|
||||
this.splitContainer3.Panel1.SuspendLayout();
|
||||
this.splitContainer3.Panel2.SuspendLayout();
|
||||
this.splitContainer3.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||
this.splitContainer2.Panel1.SuspendLayout();
|
||||
this.splitContainer2.Panel2.SuspendLayout();
|
||||
this.splitContainer2.SuspendLayout();
|
||||
this.StatusBar.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.btnUC);
|
||||
this.panel1.Controls.Add(this.cbCaseSensitive);
|
||||
this.panel1.Controls.Add(this.cbFile2);
|
||||
this.panel1.Controls.Add(this.cbFile1);
|
||||
this.panel1.Controls.Add(this.tbSearch);
|
||||
this.panel1.Controls.Add(this.btnSearch);
|
||||
this.panel1.Controls.Add(this.btnSettings);
|
||||
this.panel1.Controls.Add(this.btnBaseline);
|
||||
this.panel1.Controls.Add(this.btnPagination);
|
||||
this.panel1.Controls.Add(this.btnBrowse2);
|
||||
this.panel1.Controls.Add(this.btnBrowse1);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(707, 80);
|
||||
this.panel1.TabIndex = 0;
|
||||
//
|
||||
// btnUC
|
||||
//
|
||||
this.btnUC.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnUC.Enabled = false;
|
||||
this.btnUC.Location = new System.Drawing.Point(586, 50);
|
||||
this.btnUC.Name = "btnUC";
|
||||
this.btnUC.Size = new System.Drawing.Size(49, 23);
|
||||
this.btnUC.TabIndex = 12;
|
||||
this.btnUC.Text = "UC";
|
||||
this.tt.SetToolTip(this.btnUC, "Run Ultra Compare on Selected Pagination Information");
|
||||
this.btnUC.UseVisualStyleBackColor = true;
|
||||
this.btnUC.Click += new System.EventHandler(this.btnUC_Click);
|
||||
//
|
||||
// cbCaseSensitive
|
||||
//
|
||||
this.cbCaseSensitive.AutoSize = true;
|
||||
this.cbCaseSensitive.Location = new System.Drawing.Point(356, 56);
|
||||
this.cbCaseSensitive.Name = "cbCaseSensitive";
|
||||
this.cbCaseSensitive.Size = new System.Drawing.Size(96, 17);
|
||||
this.cbCaseSensitive.TabIndex = 11;
|
||||
this.cbCaseSensitive.Text = "Case Sensitive";
|
||||
this.tt.SetToolTip(this.cbCaseSensitive, "Set the Search to be Case Sensitive\r\nUppercase and Lowercase will not match");
|
||||
this.cbCaseSensitive.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cbFile2
|
||||
//
|
||||
this.cbFile2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cbFile2.FormattingEnabled = true;
|
||||
this.cbFile2.Location = new System.Drawing.Point(12, 25);
|
||||
this.cbFile2.Name = "cbFile2";
|
||||
this.cbFile2.Size = new System.Drawing.Size(623, 21);
|
||||
this.cbFile2.TabIndex = 10;
|
||||
this.tt.SetToolTip(this.cbFile2, "New PDF Folder\r\nAll Subfolders will be compared");
|
||||
//
|
||||
// cbFile1
|
||||
//
|
||||
this.cbFile1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cbFile1.FormattingEnabled = true;
|
||||
this.cbFile1.Location = new System.Drawing.Point(12, 3);
|
||||
this.cbFile1.Name = "cbFile1";
|
||||
this.cbFile1.Size = new System.Drawing.Size(623, 21);
|
||||
this.cbFile1.TabIndex = 9;
|
||||
this.tt.SetToolTip(this.cbFile1, "Baseline PDF Folder\r\nAll subfolders will be compared\r\n");
|
||||
//
|
||||
// tbSearch
|
||||
//
|
||||
this.tbSearch.Location = new System.Drawing.Point(221, 54);
|
||||
this.tbSearch.Name = "tbSearch";
|
||||
this.tbSearch.Size = new System.Drawing.Size(129, 20);
|
||||
this.tbSearch.TabIndex = 8;
|
||||
this.tt.SetToolTip(this.tbSearch, "String to search for in all data");
|
||||
//
|
||||
// btnSearch
|
||||
//
|
||||
this.btnSearch.Location = new System.Drawing.Point(152, 52);
|
||||
this.btnSearch.Name = "btnSearch";
|
||||
this.btnSearch.Size = new System.Drawing.Size(61, 23);
|
||||
this.btnSearch.TabIndex = 7;
|
||||
this.btnSearch.Text = "Search";
|
||||
this.tt.SetToolTip(this.btnSearch, "Perform Search on Baseline Data");
|
||||
this.btnSearch.UseVisualStyleBackColor = true;
|
||||
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
|
||||
//
|
||||
// btnSettings
|
||||
//
|
||||
this.btnSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSettings.Location = new System.Drawing.Point(641, 50);
|
||||
this.btnSettings.Name = "btnSettings";
|
||||
this.btnSettings.Size = new System.Drawing.Size(61, 26);
|
||||
this.btnSettings.TabIndex = 6;
|
||||
this.btnSettings.Text = "Settings";
|
||||
this.btnSettings.UseVisualStyleBackColor = true;
|
||||
this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click);
|
||||
//
|
||||
// btnBaseline
|
||||
//
|
||||
this.btnBaseline.Location = new System.Drawing.Point(79, 52);
|
||||
this.btnBaseline.Name = "btnBaseline";
|
||||
this.btnBaseline.Size = new System.Drawing.Size(67, 23);
|
||||
this.btnBaseline.TabIndex = 5;
|
||||
this.btnBaseline.Text = "Baseline";
|
||||
this.tt.SetToolTip(this.btnBaseline, "Find Baseline Differences");
|
||||
this.btnBaseline.UseVisualStyleBackColor = true;
|
||||
this.btnBaseline.Click += new System.EventHandler(this.btnBaseline_Click);
|
||||
//
|
||||
// btnPagination
|
||||
//
|
||||
this.btnPagination.Location = new System.Drawing.Point(3, 52);
|
||||
this.btnPagination.Name = "btnPagination";
|
||||
this.btnPagination.Size = new System.Drawing.Size(70, 23);
|
||||
this.btnPagination.TabIndex = 4;
|
||||
this.btnPagination.Text = "Pagination";
|
||||
this.tt.SetToolTip(this.btnPagination, "Find Pagination Differences");
|
||||
this.btnPagination.UseVisualStyleBackColor = true;
|
||||
this.btnPagination.Click += new System.EventHandler(this.btnPagination_Click);
|
||||
//
|
||||
// btnBrowse2
|
||||
//
|
||||
this.btnBrowse2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBrowse2.Location = new System.Drawing.Point(641, 25);
|
||||
this.btnBrowse2.Name = "btnBrowse2";
|
||||
this.btnBrowse2.Size = new System.Drawing.Size(61, 20);
|
||||
this.btnBrowse2.TabIndex = 3;
|
||||
this.btnBrowse2.Text = "Browse...";
|
||||
this.tt.SetToolTip(this.btnBrowse2, "Browse for new PDFs");
|
||||
this.btnBrowse2.UseVisualStyleBackColor = true;
|
||||
this.btnBrowse2.Click += new System.EventHandler(this.btnBrowse2_Click);
|
||||
//
|
||||
// btnBrowse1
|
||||
//
|
||||
this.btnBrowse1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBrowse1.Location = new System.Drawing.Point(641, 2);
|
||||
this.btnBrowse1.Name = "btnBrowse1";
|
||||
this.btnBrowse1.Size = new System.Drawing.Size(61, 20);
|
||||
this.btnBrowse1.TabIndex = 1;
|
||||
this.btnBrowse1.Text = "Browse...";
|
||||
this.tt.SetToolTip(this.btnBrowse1, "Browse for Baseline PDFs\r\n");
|
||||
this.btnBrowse1.UseVisualStyleBackColor = true;
|
||||
this.btnBrowse1.Click += new System.EventHandler(this.btnBrowse1_Click);
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 80);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.splitContainer3);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(707, 397);
|
||||
this.splitContainer1.SplitterDistance = 196;
|
||||
this.splitContainer1.TabIndex = 1;
|
||||
//
|
||||
// splitContainer3
|
||||
//
|
||||
this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer3.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer3.Name = "splitContainer3";
|
||||
this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer3.Panel1
|
||||
//
|
||||
this.splitContainer3.Panel1.Controls.Add(this.lbDifferent);
|
||||
//
|
||||
// splitContainer3.Panel2
|
||||
//
|
||||
this.splitContainer3.Panel2.Controls.Add(this.lbProcedures);
|
||||
this.splitContainer3.Panel2Collapsed = true;
|
||||
this.splitContainer3.Size = new System.Drawing.Size(707, 196);
|
||||
this.splitContainer3.SplitterDistance = 167;
|
||||
this.splitContainer3.TabIndex = 0;
|
||||
//
|
||||
// lbDifferent
|
||||
//
|
||||
this.lbDifferent.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lbDifferent.FormattingEnabled = true;
|
||||
this.lbDifferent.Location = new System.Drawing.Point(0, 0);
|
||||
this.lbDifferent.Name = "lbDifferent";
|
||||
this.lbDifferent.Size = new System.Drawing.Size(707, 196);
|
||||
this.lbDifferent.TabIndex = 1;
|
||||
this.tt.SetToolTip(this.lbDifferent, "Differences by Procedure Sets");
|
||||
this.lbDifferent.SelectedIndexChanged += new System.EventHandler(this.lbDifferent_SelectedIndexChanged);
|
||||
//
|
||||
// lbProcedures
|
||||
//
|
||||
this.lbProcedures.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lbProcedures.FormattingEnabled = true;
|
||||
this.lbProcedures.Location = new System.Drawing.Point(0, 0);
|
||||
this.lbProcedures.Name = "lbProcedures";
|
||||
this.lbProcedures.Size = new System.Drawing.Size(707, 25);
|
||||
this.lbProcedures.TabIndex = 1;
|
||||
this.tt.SetToolTip(this.lbProcedures, "Procedures withDifferences or Search Text");
|
||||
this.lbProcedures.SelectedIndexChanged += new System.EventHandler(this.lbProcedures_SelectedIndexChanged);
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer2.Name = "splitContainer2";
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
this.splitContainer2.Panel1.Controls.Add(this.lbResults1);
|
||||
//
|
||||
// splitContainer2.Panel2
|
||||
//
|
||||
this.splitContainer2.Panel2.Controls.Add(this.lbResults2);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(707, 197);
|
||||
this.splitContainer2.SplitterDistance = 350;
|
||||
this.splitContainer2.TabIndex = 0;
|
||||
//
|
||||
// lbResults1
|
||||
//
|
||||
this.lbResults1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lbResults1.FormattingEnabled = true;
|
||||
this.lbResults1.Location = new System.Drawing.Point(0, 0);
|
||||
this.lbResults1.Name = "lbResults1";
|
||||
this.lbResults1.Size = new System.Drawing.Size(350, 197);
|
||||
this.lbResults1.TabIndex = 0;
|
||||
this.tt.SetToolTip(this.lbResults1, "Results from Baseline PDFs");
|
||||
this.lbResults1.SelectedIndexChanged += new System.EventHandler(this.lbResults1_SelectedIndexChanged);
|
||||
//
|
||||
// lbResults2
|
||||
//
|
||||
this.lbResults2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lbResults2.FormattingEnabled = true;
|
||||
this.lbResults2.Location = new System.Drawing.Point(0, 0);
|
||||
this.lbResults2.Name = "lbResults2";
|
||||
this.lbResults2.Size = new System.Drawing.Size(353, 197);
|
||||
this.lbResults2.TabIndex = 0;
|
||||
this.tt.SetToolTip(this.lbResults2, "Results from New PDFs");
|
||||
this.lbResults2.SelectedIndexChanged += new System.EventHandler(this.lbResults2_SelectedIndexChanged);
|
||||
//
|
||||
// fbd
|
||||
//
|
||||
this.fbd.SelectedPath = "fbd";
|
||||
//
|
||||
// StatusBar
|
||||
//
|
||||
this.StatusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tsslStatus});
|
||||
this.StatusBar.Location = new System.Drawing.Point(0, 477);
|
||||
this.StatusBar.Name = "StatusBar";
|
||||
this.StatusBar.Size = new System.Drawing.Size(707, 22);
|
||||
this.StatusBar.TabIndex = 2;
|
||||
this.StatusBar.Text = "statusStrip1";
|
||||
//
|
||||
// tsslStatus
|
||||
//
|
||||
this.tsslStatus.Name = "tsslStatus";
|
||||
this.tsslStatus.Size = new System.Drawing.Size(118, 17);
|
||||
this.tsslStatus.Text = "toolStripStatusLabel1";
|
||||
//
|
||||
// frmBaseline
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(707, 499);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Controls.Add(this.StatusBar);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Name = "frmBaseline";
|
||||
this.Text = "Baseline";
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.splitContainer3.Panel1.ResumeLayout(false);
|
||||
this.splitContainer3.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
|
||||
this.splitContainer3.ResumeLayout(false);
|
||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||
this.splitContainer2.ResumeLayout(false);
|
||||
this.StatusBar.ResumeLayout(false);
|
||||
this.StatusBar.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Button btnSettings;
|
||||
private System.Windows.Forms.Button btnBaseline;
|
||||
private System.Windows.Forms.Button btnPagination;
|
||||
private System.Windows.Forms.Button btnBrowse2;
|
||||
private System.Windows.Forms.Button btnBrowse1;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||
private System.Windows.Forms.ListBox lbResults1;
|
||||
private System.Windows.Forms.ListBox lbResults2;
|
||||
private System.Windows.Forms.FolderBrowserDialog fbd;
|
||||
private System.Windows.Forms.StatusStrip StatusBar;
|
||||
private System.Windows.Forms.ToolStripStatusLabel tsslStatus;
|
||||
private System.Windows.Forms.TextBox tbSearch;
|
||||
private System.Windows.Forms.Button btnSearch;
|
||||
private System.Windows.Forms.SplitContainer splitContainer3;
|
||||
private System.Windows.Forms.ListBox lbDifferent;
|
||||
private System.Windows.Forms.ListBox lbProcedures;
|
||||
private System.Windows.Forms.ComboBox cbFile2;
|
||||
private System.Windows.Forms.ComboBox cbFile1;
|
||||
private System.Windows.Forms.CheckBox cbCaseSensitive;
|
||||
private System.Windows.Forms.Button btnUC;
|
||||
private System.Windows.Forms.ToolTip tt;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,132 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="tt.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>306, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tt.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>306, 17</value>
|
||||
</metadata>
|
||||
<metadata name="fbd.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="StatusBar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>203, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
Generated
-150
@@ -1,150 +0,0 @@
|
||||
namespace Baseline
|
||||
{
|
||||
partial class frmSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.dgv = new System.Windows.Forms.DataGridView();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.btnOK = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
|
||||
this.dgvcSearchType = new System.Windows.Forms.DataGridViewComboBoxColumn();
|
||||
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ignoreLinesBindingSource = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit();
|
||||
this.panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ignoreLinesBindingSource)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dgv
|
||||
//
|
||||
this.dgv.AutoGenerateColumns = false;
|
||||
this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.dataGridViewCheckBoxColumn1,
|
||||
this.dgvcSearchType,
|
||||
this.dataGridViewTextBoxColumn3});
|
||||
this.dgv.DataSource = this.ignoreLinesBindingSource;
|
||||
this.dgv.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.dgv.Location = new System.Drawing.Point(0, 0);
|
||||
this.dgv.Name = "dgv";
|
||||
this.dgv.Size = new System.Drawing.Size(515, 219);
|
||||
this.dgv.TabIndex = 1;
|
||||
this.dgv.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dgv_DataError);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.btnCancel);
|
||||
this.panel1.Controls.Add(this.btnOK);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 219);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(515, 77);
|
||||
this.panel1.TabIndex = 2;
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.Location = new System.Drawing.Point(347, 51);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnOK.TabIndex = 0;
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.UseVisualStyleBackColor = true;
|
||||
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(428, 51);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 1;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
// dataGridViewCheckBoxColumn1
|
||||
//
|
||||
this.dataGridViewCheckBoxColumn1.DataPropertyName = "Active";
|
||||
this.dataGridViewCheckBoxColumn1.FillWeight = 50F;
|
||||
this.dataGridViewCheckBoxColumn1.HeaderText = "Active";
|
||||
this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1";
|
||||
this.dataGridViewCheckBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
//
|
||||
// dgvcSearchType
|
||||
//
|
||||
this.dgvcSearchType.DataPropertyName = "SearchType";
|
||||
this.dgvcSearchType.HeaderText = "SearchType";
|
||||
this.dgvcSearchType.Name = "dgvcSearchType";
|
||||
this.dgvcSearchType.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dgvcSearchType.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// dataGridViewTextBoxColumn3
|
||||
//
|
||||
this.dataGridViewTextBoxColumn3.DataPropertyName = "Text";
|
||||
this.dataGridViewTextBoxColumn3.HeaderText = "Text";
|
||||
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
|
||||
this.dataGridViewTextBoxColumn3.Width = 200;
|
||||
//
|
||||
// ignoreLinesBindingSource
|
||||
//
|
||||
this.ignoreLinesBindingSource.DataSource = typeof(Baseline.IgnoreLine);
|
||||
//
|
||||
// frmSettings
|
||||
//
|
||||
this.AcceptButton = this.btnOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(515, 296);
|
||||
this.Controls.Add(this.dgv);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Name = "frmSettings";
|
||||
this.Text = "frmSettings";
|
||||
this.Load += new System.EventHandler(this.frmSettings_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit();
|
||||
this.panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.ignoreLinesBindingSource)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.BindingSource ignoreLinesBindingSource;
|
||||
private System.Windows.Forms.DataGridView dgv;
|
||||
private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1;
|
||||
private System.Windows.Forms.DataGridViewComboBoxColumn dgvcSearchType;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Button btnOK;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Baseline
|
||||
{
|
||||
public partial class frmSettings : Form
|
||||
{
|
||||
private IgnoreLines _MyIgnore;
|
||||
public IgnoreLines MyIgnore
|
||||
{
|
||||
get { return _MyIgnore; }
|
||||
set {
|
||||
_MyIgnore = value;
|
||||
dgv.DataSource=null;
|
||||
//dgvcSearchType.ValueType = typeof(Relation);
|
||||
//dgvcSearchType.ValueMember = "Value";
|
||||
//dgvcSearchType.DisplayMember = "Display";
|
||||
//dgvcSearchType.DataSource = new Relation[] { Relation.Contains, Relation.StartsWith, Relation.EndsWith, Relation.Regex }
|
||||
//.Select(x => new { Display = x.ToString(), Value = x })
|
||||
//.ToList();
|
||||
dgv.DataSource=value;
|
||||
//dgvcSearchType.DataSource =
|
||||
//new List<Relation>((Relation[]) Enum.GetValues(typeof(Relation)))
|
||||
//.Select(x => new { Display=x.ToString(), Value=(int)x })
|
||||
//.ToList();;
|
||||
}
|
||||
}
|
||||
public frmSettings(IgnoreLines myIgnore)
|
||||
{
|
||||
InitializeComponent();
|
||||
_MyIgnore=myIgnore;
|
||||
}
|
||||
private void frmSettings_Load(object sender, EventArgs e)
|
||||
{
|
||||
dgv.DataSource=MyIgnore;
|
||||
DataGridViewComboBoxColumn col = dgvcSearchType;
|
||||
col.Name = "My Enum Column";
|
||||
col.DataSource = Enum.GetValues(typeof(Relation));
|
||||
col.ValueType = typeof(Relation);
|
||||
}
|
||||
|
||||
private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e)
|
||||
{
|
||||
Console.WriteLine("Here");
|
||||
}
|
||||
private void btnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,126 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ignoreLinesBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ignoreLinesBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -1,61 +0,0 @@
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
partial class DropDownPanel
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.combo = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// combo
|
||||
//
|
||||
this.combo.DropDownHeight = 1;
|
||||
this.combo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.combo.FormattingEnabled = true;
|
||||
this.combo.IntegralHeight = false;
|
||||
this.combo.Location = new System.Drawing.Point(0, 0);
|
||||
this.combo.Name = "combo";
|
||||
this.combo.Size = new System.Drawing.Size(86, 21);
|
||||
this.combo.TabIndex = 0;
|
||||
this.combo.DropDown += new System.EventHandler(this.Combo_DropDown);
|
||||
//
|
||||
// DropDownPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.combo);
|
||||
this.Name = "DropDownPanel";
|
||||
this.Size = new System.Drawing.Size(105, 32);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox combo;
|
||||
}
|
||||
}
|
||||
@@ -1,287 +0,0 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
/// <summary>
|
||||
/// Control that allows any other control that implements IDropDownAware to be displayed
|
||||
/// in it's own combo-like dropdown area. This Control tries to mimic the standard ComboBox
|
||||
/// as accurately as possible.
|
||||
/// </summary>
|
||||
public partial class DropDownPanel : UserControl, IDropDownAware
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private IDropDownAware _dropDownControl = null;
|
||||
private DropDownWindowHelper _dropDownHelper = null;
|
||||
private Form _owner = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
public DropDownPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_dropDownHelper = new DropDownWindowHelper();
|
||||
|
||||
_dropDownHelper.DropDownClosed += new DropDownClosedEventHandler(DropDownHelper_DropDownClosed);
|
||||
_dropDownHelper.DropDownCancel += new DropDownCancelEventHandler(DropDownHelper_DropDownCancel);
|
||||
|
||||
combo.DisplayMember = "Text";
|
||||
combo.ValueMember = "Id";
|
||||
}
|
||||
#endregion
|
||||
#region Control Events
|
||||
/// <summary>
|
||||
/// The owning form is set within this event, wich is required to
|
||||
/// force the owning form not to loose focus when the dropdown is
|
||||
/// being displayed. Inherited controls should provide the PopupControl
|
||||
/// within an overridden implementation of this event.
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
protected override void OnHandleCreated(EventArgs e)
|
||||
{
|
||||
_owner = this.FindForm();
|
||||
_dropDownHelper.ReleaseHandle();
|
||||
|
||||
if (_owner != null)
|
||||
{
|
||||
_dropDownHelper.AssignHandle(_owner.Handle);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Make sure that the overall control's height is exactly the height
|
||||
/// of the internal ComboBox and that the ComboBox's widt is exactly the
|
||||
/// width of the control.
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
combo.Location = new Point(0, 0);
|
||||
combo.Width = this.ClientRectangle.Width;
|
||||
this.Height = combo.Height;
|
||||
}
|
||||
#endregion
|
||||
#region Event Handler
|
||||
/// <summary>
|
||||
/// We make our DropDownForm host the choosen control and show it instead
|
||||
/// of the dropdown portion of the ComboBox.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Combo_DropDown(object sender, EventArgs e)
|
||||
{
|
||||
if (!_dropDownHelper.DropDownShowing)
|
||||
{
|
||||
DropDownForm dropDown = new DropDownForm(_dropDownControl);
|
||||
|
||||
|
||||
dropDown.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing);
|
||||
dropDown.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged);
|
||||
|
||||
combo.DroppedDown = false;
|
||||
dropDown.Width = combo.Width; // KBR ADDED 2/15/08
|
||||
_dropDownHelper.ShowDropDown(_owner, dropDown, GetDropDownPosition(dropDown));
|
||||
}
|
||||
else
|
||||
{
|
||||
_dropDownHelper.CloseDropDown();
|
||||
this.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
private void DropDownHelper_DropDownClosed(object sender, DropDownClosedEventArgs e)
|
||||
{
|
||||
IDropDownAware dropDown = (e.DropDown as IDropDownAware);
|
||||
|
||||
if ((dropDown != null) && (dropDown.Value != null))
|
||||
{
|
||||
dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing);
|
||||
dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged);
|
||||
}
|
||||
|
||||
combo.DroppedDown = false;
|
||||
}
|
||||
|
||||
private void DropDownHelper_DropDownCancel(object sender, DropDownCancelEventArgs e)
|
||||
{
|
||||
if (this.Bounds.Contains(Parent.PointToClient(e.CursorLocation)))
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
IDropDownAware dropDown = (e.DropDown as IDropDownAware);
|
||||
|
||||
if (dropDown != null)
|
||||
{
|
||||
dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing);
|
||||
dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DropDown_FinishEditing(object sender, DropDownValueChangedEventArgs e)
|
||||
{
|
||||
if (e.Value != null)
|
||||
{
|
||||
SetValue<long>(e.Value as ILookupItem<long>);
|
||||
}
|
||||
|
||||
if (this.FinishEditing != null)
|
||||
{
|
||||
this.FinishEditing(this, e);
|
||||
}
|
||||
|
||||
_dropDownControl.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing);
|
||||
_dropDownControl.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged);
|
||||
_dropDownHelper.CloseDropDown();
|
||||
}
|
||||
|
||||
private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e)
|
||||
{
|
||||
if (this.ValueChanged != null)
|
||||
{
|
||||
this.ValueChanged(this, e);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Get or set the control (has to implement IDropDownAware) that is to
|
||||
/// be displayed as the dropdown portion of the combobox.
|
||||
/// </summary>
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public IDropDownAware DropDownControl
|
||||
{
|
||||
get { return _dropDownControl; }
|
||||
set
|
||||
{
|
||||
_dropDownControl = value;
|
||||
|
||||
this.Controls.Add(_dropDownControl as Control);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Public Methods
|
||||
public override string ToString()
|
||||
{
|
||||
return this.Name;
|
||||
}
|
||||
#endregion
|
||||
#region Private Methods
|
||||
/// <summary>
|
||||
/// Calculate an acceptable position of the DropDownForm even in a
|
||||
/// multi screen environment.
|
||||
/// </summary>
|
||||
/// <param name="DropDown"></param>
|
||||
/// <returns></returns>
|
||||
private Point GetDropDownPosition(DropDownForm DropDown)
|
||||
{
|
||||
Point lt = Parent.PointToScreen(new Point(Left, Top));
|
||||
Point rb = Parent.PointToScreen(new Point(Right, Bottom));
|
||||
Rectangle screen = Screen.FromControl(this).Bounds;
|
||||
Point point = new Point();
|
||||
|
||||
if (((lt.X + DropDown.Width) > (screen.X + screen.Width)) && ((rb.X - DropDown.Width) >= screen.X))
|
||||
{
|
||||
point.X = rb.X - DropDown.Width;
|
||||
|
||||
if ((point.X + DropDown.Width) > (screen.X + screen.Width))
|
||||
{
|
||||
point.X = ((screen.X + screen.Width) - DropDown.Width);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
point.X = lt.X;
|
||||
|
||||
if (point.X < screen.X)
|
||||
{
|
||||
point.X = screen.X;
|
||||
}
|
||||
}
|
||||
|
||||
if (((rb.Y + DropDown.Height) > (screen.Y + screen.Height)) && ((lt.Y - DropDown.Height) >= screen.Y))
|
||||
{
|
||||
point.Y = lt.Y - DropDown.Height;
|
||||
|
||||
if (point.Y < screen.Y)
|
||||
{
|
||||
point.Y = screen.Y;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
point.Y = rb.Y;
|
||||
|
||||
if ((point.Y + DropDown.Height) > (screen.Y + screen.Height))
|
||||
{
|
||||
point.Y = ((screen.Y + screen.Height) - DropDown.Height);
|
||||
}
|
||||
}
|
||||
|
||||
return point;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// In this implementation we don't the user to edit the ComboBox
|
||||
/// directly, so we add the new value to the item collection after
|
||||
/// clearing it first.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="Value"></param>
|
||||
private void SetValue<T>(ILookupItem<T> Value) where T: struct
|
||||
{
|
||||
if (DropDownControl != null)
|
||||
{
|
||||
ILookupItem<T>[] arr = new ILookupItem<T>[0];
|
||||
|
||||
combo.DataSource = arr;
|
||||
|
||||
if ((Value != null) && (Value is ILookupItem<long>))
|
||||
{
|
||||
DropDownControl.Value = Value;
|
||||
|
||||
arr = new ILookupItem<T>[1]{(ILookupItem<T>) Value};
|
||||
combo.DataSource = arr;
|
||||
combo.SelectedIndex = 0;
|
||||
//combo.Focus();
|
||||
}
|
||||
else
|
||||
{
|
||||
DropDownControl.Value = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region IDropDownAware Implementation
|
||||
/// <summary>
|
||||
/// Fired either on OK, Cancel or a click outside the control to indicate
|
||||
/// that the user has finished editing.
|
||||
/// </summary>
|
||||
public event DropDownValueChangedEventHandler FinishEditing;
|
||||
|
||||
/// <summary>
|
||||
/// Fired on any change of the controls's value during the editing process.
|
||||
/// </summary>
|
||||
public event DropDownValueChangedEventHandler ValueChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the controls' value.
|
||||
/// </summary>
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public object Value
|
||||
{
|
||||
get { return _dropDownControl.Value; }
|
||||
set { SetValue<long>(value as ILookupItem<long>); }
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,128 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>DropDownPanel</RootNamespace>
|
||||
<AssemblyName>DropDownPanel</AssemblyName>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>2.0</OldToolsVersion>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Demo|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Demo\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Demo|x86' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Demo\</OutputPath>
|
||||
<DefineConstants>TRACE;DEMO</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Forms\DropDownForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\DropDownForm.designer.cs">
|
||||
<DependentUpon>DropDownForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Controls\DropDownPanel.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Controls\DropDownPanel.Designer.cs">
|
||||
<DependentUpon>DropDownPanel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Helper\DropDownWindowHelper.cs" />
|
||||
<Compile Include="Helper\DropDownMessageFilter.cs" />
|
||||
<Compile Include="Events\Events.cs" />
|
||||
<Compile Include="Interfaces\IDropDownAware.cs" />
|
||||
<Compile Include="Interfaces\ILookupItem.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Unmanaged\UIApiCalls.cs" />
|
||||
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Forms\DropDownForm.resx">
|
||||
<DependentUpon>DropDownForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,123 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="combo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -1,154 +0,0 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents the method which responds to a <see cref="DropDownCancel"/> event.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
public delegate void DropDownCancelEventHandler(object sender, DropDownCancelEventArgs e);
|
||||
|
||||
/// <summary>
|
||||
/// Represents the method which responds to a <see cref="DropDownClosed"/> event.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
public delegate void DropDownClosedEventHandler(object sender, DropDownClosedEventArgs e);
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender">The object firing the event.</param>
|
||||
/// <param name="e"></param>
|
||||
public delegate void DropDownValueChangedEventHandler(object sender, DropDownValueChangedEventArgs e);
|
||||
|
||||
/// <summary>
|
||||
/// Arguments to a <see cref="DropDownCancelEvent"/>. Provides a
|
||||
/// reference to the popup form that is to be closed and
|
||||
/// allows the operation to be cancelled.
|
||||
///
|
||||
/// Thousand thanks to Steve McMahon:
|
||||
/// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp
|
||||
/// </summary>
|
||||
public class DropDownCancelEventArgs : EventArgs
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private bool _cancel = false;
|
||||
private Point _cursorLocation;
|
||||
private Form _dropDown = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Constructs a new instance of this class.
|
||||
/// </summary>
|
||||
/// <param name="DropDown">The popup form</param>
|
||||
/// <param name="CursorLocation">The mouse location, if any, where the
|
||||
/// mouse event that would cancel the popup occured.</param>
|
||||
public DropDownCancelEventArgs(Form DropDown, Point CursorLocation)
|
||||
{
|
||||
_dropDown = DropDown;
|
||||
_cursorLocation = CursorLocation;
|
||||
_cancel = false;
|
||||
}
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public bool Cancel
|
||||
{
|
||||
get { return _cancel; }
|
||||
set { _cancel = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Point CursorLocation
|
||||
{
|
||||
get { return _cursorLocation; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Form DropDown
|
||||
{
|
||||
get { return _dropDown; }
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Contains event information for a <see cref="DropDownClosed"/> event.
|
||||
///
|
||||
/// Thousand thanks to Steve McMahon:
|
||||
/// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp
|
||||
/// </summary>
|
||||
public class DropDownClosedEventArgs : EventArgs
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private Form _dropDown = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Constructs a new instance of this class for the specified
|
||||
/// popup form.
|
||||
/// </summary>
|
||||
/// <param name="DropDown">DropDown Form which is being closed.</param>
|
||||
public DropDownClosedEventArgs(Form DropDown)
|
||||
{
|
||||
_dropDown = DropDown;
|
||||
}
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Gets the dropdown form which is being closed.
|
||||
/// </summary>
|
||||
public Form DropDown
|
||||
{
|
||||
get { return _dropDown; }
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Contains event information for DropDownValueChangedEventHandler.
|
||||
/// </summary>
|
||||
public class DropDownValueChangedEventArgs : EventArgs
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private object _value = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Default Constructor
|
||||
/// </summary>
|
||||
public DropDownValueChangedEventArgs()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initialization with the control's value.
|
||||
/// </summary>
|
||||
/// <param name="Value"></param>
|
||||
public DropDownValueChangedEventArgs(object Value)
|
||||
{
|
||||
_value = Value;
|
||||
}
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Gets or sets the control's value.
|
||||
/// </summary>
|
||||
public object Value
|
||||
{
|
||||
get { return _value; }
|
||||
set { _value = value; }
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,116 +0,0 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
/// <summary>
|
||||
/// The form that pops up instead of the dropdown portion of the
|
||||
/// DropDownPanel's combobox. It containes the actual control to
|
||||
/// display.
|
||||
/// </summary>
|
||||
internal partial class DropDownForm : Form, IDropDownAware
|
||||
{
|
||||
#region Private Variable Declaration
|
||||
private IDropDownAware _control = null;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Default Constructor
|
||||
/// </summary>
|
||||
public DropDownForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor to initialize the for with the control to display.
|
||||
/// </summary>
|
||||
/// <param name="Ctrl">The control to display.</param>
|
||||
public DropDownForm(IDropDownAware Ctrl) : this()
|
||||
{
|
||||
if (Ctrl != null)
|
||||
{
|
||||
_control = Ctrl;
|
||||
|
||||
InitializeControl(_control as Control);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Form Events
|
||||
protected override void OnClosing(CancelEventArgs e)
|
||||
{
|
||||
this.Controls.Remove(_control as Control);
|
||||
base.OnClosing(e);
|
||||
}
|
||||
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
_control.FinishEditing += new DropDownValueChangedEventHandler(Ctrl_FinishEditing);
|
||||
_control.ValueChanged += new DropDownValueChangedEventHandler(Ctrl_ValueChanged);
|
||||
}
|
||||
#endregion
|
||||
#region Event Handler
|
||||
private void Ctrl_FinishEditing(object sender, DropDownValueChangedEventArgs e)
|
||||
{
|
||||
if (this.FinishEditing != null)
|
||||
{
|
||||
this.FinishEditing(this, e);
|
||||
}
|
||||
|
||||
_control.FinishEditing -= new DropDownValueChangedEventHandler(Ctrl_FinishEditing);
|
||||
_control.ValueChanged -= new DropDownValueChangedEventHandler(Ctrl_ValueChanged);
|
||||
}
|
||||
|
||||
private void Ctrl_ValueChanged(object sender, DropDownValueChangedEventArgs e)
|
||||
{
|
||||
if (this.ValueChanged != null)
|
||||
{
|
||||
this.ValueChanged(this, e);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region IDropDownAware Implementation
|
||||
/// <summary>
|
||||
/// Fired either on OK, Cancel or a click outside the control to indicate
|
||||
/// that the user has finished editing.
|
||||
/// </summary>
|
||||
public event DropDownValueChangedEventHandler FinishEditing;
|
||||
|
||||
/// <summary>
|
||||
/// Fired on any change of the controls's value during the editing process.
|
||||
/// </summary>
|
||||
public event DropDownValueChangedEventHandler ValueChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the controls' value.
|
||||
/// </summary>
|
||||
public object Value
|
||||
{
|
||||
get { return _control.Value; }
|
||||
set { _control.Value = value; }
|
||||
}
|
||||
#endregion
|
||||
#region Private Methods
|
||||
private void InitializeControl(Control Ctrl)
|
||||
{
|
||||
Size size = Ctrl.Size;
|
||||
Size inner = this.ClientRectangle.Size;
|
||||
Size outer = this.Size;
|
||||
int gap = outer.Width - inner.Width;
|
||||
|
||||
size.Width += gap;
|
||||
size.Height += gap;
|
||||
|
||||
this.Size = size;
|
||||
this.Controls.Add(Ctrl);
|
||||
Ctrl.Location = new Point(0, 0);
|
||||
Ctrl.Visible = true;
|
||||
Ctrl.Invalidate();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
-52
@@ -1,52 +0,0 @@
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
partial class DropDownForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// DropDownForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.ClientSize = new System.Drawing.Size(347, 211);
|
||||
this.ControlBox = false;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "DropDownForm";
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,120 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -1,110 +0,0 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
/// <summary>
|
||||
/// A Message Loop filter which detect mouse events whilst the popup form is shown
|
||||
/// and notifies the owning <see cref="PopupWindowHelper"/> class when a mouse
|
||||
/// click outside the popup occurs.
|
||||
///
|
||||
/// Thousand thanks to Steve McMahon:
|
||||
/// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp
|
||||
/// </summary>
|
||||
internal class DropDownMessageFilter : IMessageFilter
|
||||
{
|
||||
#region Private Constants
|
||||
private const int WM_LBUTTONDOWN = 0x201;
|
||||
private const int WM_RBUTTONDOWN = 0x204;
|
||||
private const int WM_MBUTTONDOWN = 0x207;
|
||||
private const int WM_NCLBUTTONDOWN = 0x0A1;
|
||||
private const int WM_NCRBUTTONDOWN = 0x0A4;
|
||||
private const int WM_NCMBUTTONDOWN = 0x0A7;
|
||||
#endregion
|
||||
#region Private Variable Declarations
|
||||
private Form _dropDown = null;
|
||||
private DropDownWindowHelper _owner = null;
|
||||
#endregion
|
||||
#region Event Declarations
|
||||
public event DropDownCancelEventHandler DropDownCancel;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Constructs a new instance of this class and sets the owning
|
||||
/// object.
|
||||
/// </summary>
|
||||
/// <param name="Owner">The <see cref="DropDownWindowHelper"/> object
|
||||
/// which owns this class.</param>
|
||||
public DropDownMessageFilter(DropDownWindowHelper Owner)
|
||||
{
|
||||
_owner = Owner;
|
||||
}
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Gets/sets the dropdown form which is being displayed.
|
||||
/// </summary>
|
||||
public Form DropDown
|
||||
{
|
||||
get { return _dropDown; }
|
||||
set { _dropDown = value; }
|
||||
}
|
||||
#endregion
|
||||
#region Private Methods
|
||||
private void OnMouseDown()
|
||||
{
|
||||
Point cursorPos = Cursor.Position; // Get the cursor location
|
||||
|
||||
if (!_dropDown.Bounds.Contains(cursorPos)) // Check if it is within the popup form
|
||||
{
|
||||
OnDropDownCancel(new DropDownCancelEventArgs(_dropDown, cursorPos)); // If not, then call to see if it should be closed
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region DropDownCancelEvent Implementation
|
||||
protected virtual void OnDropDownCancel(DropDownCancelEventArgs e)
|
||||
{
|
||||
if (this.DropDownCancel != null)
|
||||
{
|
||||
this.DropDownCancel(this, e);
|
||||
}
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
_owner.CloseDropDown();
|
||||
_dropDown = null; // Clear reference for GC
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region IMessageFilter Implementation
|
||||
/// <summary>
|
||||
/// Checks the message loop for mouse messages whilst the popup
|
||||
/// window is displayed. If one is detected the position is
|
||||
/// checked to see if it is outside the form, and the owner
|
||||
/// is notified if so.
|
||||
/// </summary>
|
||||
/// <param name="m">Windows Message about to be processed by the
|
||||
/// message loop</param>
|
||||
/// <returns><c>true</c> to filter the message, <c>false</c> otherwise.
|
||||
/// This implementation always returns <c>false</c>.</returns>
|
||||
public bool PreFilterMessage(ref Message m)
|
||||
{
|
||||
if (_dropDown != null)
|
||||
{
|
||||
switch (m.Msg)
|
||||
{
|
||||
case WM_LBUTTONDOWN:
|
||||
case WM_RBUTTONDOWN:
|
||||
case WM_MBUTTONDOWN:
|
||||
case WM_NCLBUTTONDOWN:
|
||||
case WM_NCRBUTTONDOWN:
|
||||
case WM_NCMBUTTONDOWN: OnMouseDown(); break;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,203 +0,0 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
/// <summary>
|
||||
/// A class to assist in creating popup windows like Combo Box drop-downs and Menus.
|
||||
/// This class includes functionality to keep the title bar of the popup owner form
|
||||
/// active whilst the popup is displayed, and to automatically cancel the popup
|
||||
/// whenever the user clicks outside the popup window or shifts focus to another
|
||||
/// application.
|
||||
///
|
||||
/// Thousand thanks to Steve McMahon:
|
||||
/// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp
|
||||
/// </summary>
|
||||
internal class DropDownWindowHelper : NativeWindow
|
||||
{
|
||||
#region Private Variable Declarations
|
||||
private EventHandler DropDownClosedHandler = null;
|
||||
|
||||
private Form _dropDown = null;
|
||||
private bool _dropDownShowing = false;
|
||||
private DropDownMessageFilter _filter = null;
|
||||
private Form _owner = null;
|
||||
private bool _skipClose = false;
|
||||
#endregion
|
||||
#region Event Declarations
|
||||
public event DropDownCancelEventHandler DropDownCancel;
|
||||
public event DropDownClosedEventHandler DropDownClosed;
|
||||
#endregion
|
||||
#region Constructor / Destructor
|
||||
/// <summary>
|
||||
/// Default constructor.
|
||||
/// </summary>
|
||||
/// <remarks>Use the <see cref="System.Windows.Forms.NativeWindow.AssignHandle"/>
|
||||
/// method to attach this class to the form you want to show popups from.</remarks>
|
||||
public DropDownWindowHelper()
|
||||
{
|
||||
_filter = new DropDownMessageFilter(this);
|
||||
_filter.DropDownCancel += new DropDownCancelEventHandler(Popup_Cancel);
|
||||
}
|
||||
#endregion
|
||||
#region Event Handler
|
||||
private void Popup_Cancel(object sender, DropDownCancelEventArgs e)
|
||||
{
|
||||
OnDropDownCancel(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Responds to the <see cref="System.Windows.Forms.Form.Closed"/>
|
||||
/// event from the popup form.
|
||||
/// </summary>
|
||||
/// <param name="sender">Popup form that has been closed.</param>
|
||||
/// <param name="e">Not used.</param>
|
||||
private void Popup_Closed(object sender, EventArgs e)
|
||||
{
|
||||
CloseDropDown();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Subclasses the owning form's existing Window Procedure to enables the
|
||||
/// title bar to remain active when a popup is show, and to detect if
|
||||
/// the user clicks onto another application whilst the popup is visible.
|
||||
/// </summary>
|
||||
/// <param name="m">Window Procedure Message</param>
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
base.WndProc(ref m);
|
||||
|
||||
if (DropDownShowing)
|
||||
{
|
||||
if (m.Msg == UIApiCalls.WM_NCACTIVATE)
|
||||
{
|
||||
if (((int)m.WParam) == 0) // Check if the title bar will made inactive:
|
||||
{ // Note it's no good to try and consume this message; if you try to do that you'll end up with windows
|
||||
UIApiCalls.SendMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 1, IntPtr.Zero); // If so reactivate it.
|
||||
}
|
||||
}
|
||||
else if (m.Msg == UIApiCalls.WM_ACTIVATEAPP)
|
||||
{
|
||||
if ((int)m.WParam == 0) // Check if the application is being deactivated.
|
||||
{
|
||||
CloseDropDown(); // It is so cancel the popup:
|
||||
UIApiCalls.PostMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 0, IntPtr.Zero); // And put the title bar into the inactive state:
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Public Methods
|
||||
/// <summary>
|
||||
/// Shows the specified Form as a popup window, keeping the
|
||||
/// Owner's title bar active and preparing to cancel the popup
|
||||
/// should the user click anywhere outside the popup window.
|
||||
/// <para>Typical code to use this message is as follows:</para>
|
||||
/// <code>
|
||||
/// frmPopup popup = new frmPopup();
|
||||
/// Point location = this.PointToScreen(new Point(button1.Left, button1.Bottom));
|
||||
/// popupHelper.ShowPopup(this, popup, location);
|
||||
/// </code>
|
||||
/// <para>Put as much initialisation code as possible
|
||||
/// into the popup form's constructor, rather than the <see cref="System.Windows.Forms.Load"/>
|
||||
/// event as this will improve visual appearance.</para>
|
||||
/// </summary>
|
||||
/// <param name="Owner">Main form which owns the popup</param>
|
||||
/// <param name="Popup">Window to show as a popup</param>
|
||||
/// <param name="v">Location relative to the screen to show the popup at.</param>
|
||||
public void ShowDropDown(Form Owner, Form DropDown, Point Location)
|
||||
{
|
||||
_owner = Owner;
|
||||
_dropDown = DropDown;
|
||||
Application.AddMessageFilter(_filter); // Start checking for the popup being cancelled
|
||||
DropDown.StartPosition = FormStartPosition.Manual; // Set the location of the popup form:
|
||||
DropDown.Location = Location;
|
||||
Owner.AddOwnedForm(DropDown); // Make it owned by the window that's displaying it:
|
||||
DropDownClosedHandler = new EventHandler(Popup_Closed); // Respond to the Closed event in case the popup is closed by its own internal means
|
||||
DropDown.Closed += DropDownClosedHandler;
|
||||
|
||||
_dropDownShowing = true; // Show the popup:
|
||||
DropDown.Show();
|
||||
DropDown.Activate();
|
||||
|
||||
// A little bit of fun. We've shown the popup, but because we've kept the main window's
|
||||
// title bar in focus the tab sequence isn't quite right. This can be fixed by sending a tab,
|
||||
// but that on its own would shift focus to the second control in the form. So send a tab,
|
||||
// followed by a reverse-tab.
|
||||
UIApiCalls.keybd_event((byte) Keys.Tab, 0, 0, 0);
|
||||
UIApiCalls.keybd_event((byte) Keys.Tab, 0, UIApiCalls.KEYEVENTF_KEYUP, 0);
|
||||
UIApiCalls.keybd_event((byte) Keys.ShiftKey, 0, 0, 0);
|
||||
UIApiCalls.keybd_event((byte) Keys.Tab, 0, 0, 0);
|
||||
UIApiCalls.keybd_event((byte) Keys.Tab, 0, UIApiCalls.KEYEVENTF_KEYUP, 0);
|
||||
UIApiCalls.keybd_event((byte) Keys.ShiftKey, 0, UIApiCalls.KEYEVENTF_KEYUP, 0);
|
||||
|
||||
_filter.DropDown = DropDown; // Start filtering for mouse clicks outside the popup
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when the popup is being hidden.
|
||||
/// </summary>
|
||||
public void CloseDropDown()
|
||||
{
|
||||
if (DropDownShowing)
|
||||
{
|
||||
if (!_skipClose)
|
||||
{
|
||||
OnPDropDownClosed(new DropDownClosedEventArgs(_dropDown));
|
||||
}
|
||||
|
||||
_skipClose = false;
|
||||
|
||||
_owner.RemoveOwnedForm(_dropDown); // Make sure the popup is closed and we've cleaned up:
|
||||
_dropDownShowing = false;
|
||||
_dropDown.Closed -= DropDownClosedHandler;
|
||||
DropDownClosedHandler = null;
|
||||
_dropDown.Close();
|
||||
|
||||
Application.RemoveMessageFilter(_filter); // No longer need to filter for clicks outside the popup.
|
||||
|
||||
// If we did something from the popup which shifted focus to a new form, like showing another popup
|
||||
// or dialog, then Windows won't know how to bring the original owner back to the foreground, so
|
||||
// force it here:
|
||||
_owner.Activate();
|
||||
|
||||
_dropDown = null; // Null out references for GC
|
||||
_owner = null;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Indicator weither the DropDown is showing.
|
||||
/// </summary>
|
||||
public bool DropDownShowing
|
||||
{
|
||||
get { return _dropDownShowing; }
|
||||
}
|
||||
#endregion
|
||||
#region Event Implementation
|
||||
protected virtual void OnDropDownCancel(DropDownCancelEventArgs e)
|
||||
{
|
||||
if (this.DropDownCancel != null)
|
||||
{
|
||||
this.DropDownCancel(this, e);
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
_skipClose = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnPDropDownClosed(DropDownClosedEventArgs e)
|
||||
{
|
||||
if (this.DropDownClosed != null)
|
||||
{
|
||||
this.DropDownClosed(this, e);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
/// <summary>
|
||||
/// Standard interface that has to be implemented by control's that
|
||||
/// should be diplayed in the dropdown area of the DropDownPanel.
|
||||
/// </summary>
|
||||
public interface IDropDownAware
|
||||
{
|
||||
#region Event Declarations
|
||||
/// <summary>
|
||||
/// Fired either on OK, Cancel or a click outside the control to indicate
|
||||
/// that the user has finished editing.
|
||||
/// </summary>
|
||||
event DropDownValueChangedEventHandler FinishEditing;
|
||||
|
||||
/// <summary>
|
||||
/// Fired on any change of the controls's value during the editing process.
|
||||
/// </summary>
|
||||
event DropDownValueChangedEventHandler ValueChanged;
|
||||
#endregion
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
/// Gets or sets the controls' value.
|
||||
/// </summary>
|
||||
object Value { get; set; }
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
public interface ILookupItem<T> where T: struct
|
||||
{
|
||||
T Id { get; }
|
||||
string Text { get; }
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("DropDownPanel")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("DropDownPanel")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2007")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("d59d03fc-b0ff-4210-867d-cfa4cef1728c")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,25 +0,0 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace AT.STO.UI.Win
|
||||
{
|
||||
public static class UIApiCalls
|
||||
{
|
||||
#region Public Constants
|
||||
public const int WM_ACTIVATE = 0x006;
|
||||
public const int WM_ACTIVATEAPP = 0x01C;
|
||||
public const int WM_NCACTIVATE = 0x086;
|
||||
public const int KEYEVENTF_KEYUP = 0x0002;
|
||||
#endregion
|
||||
#region Public Static API Calls
|
||||
[DllImport("user32", CharSet = CharSet.Auto)]
|
||||
public extern static int SendMessage(IntPtr handle, int msg, int wParam, IntPtr lParam);
|
||||
|
||||
[DllImport("user32", CharSet = CharSet.Auto)]
|
||||
public extern static int PostMessage(IntPtr handle, int msg, int wParam, IntPtr lParam);
|
||||
|
||||
[DllImport("user32")]
|
||||
public extern static void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,20 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LineDraw", "LineDraw\LineDraw.csproj", "{D94CFBC2-40EA-4470-BCF2-2D46777DADA3}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D94CFBC2-40EA-4470-BCF2-2D46777DADA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D94CFBC2-40EA-4470-BCF2-2D46777DADA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D94CFBC2-40EA-4470-BCF2-2D46777DADA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D94CFBC2-40EA-4470-BCF2-2D46777DADA3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,78 +0,0 @@
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{D94CFBC2-40EA-4470-BCF2-2D46777DADA3}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>LineDraw</RootNamespace>
|
||||
<AssemblyName>LineDraw</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="frmLineDraw.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmLineDraw.Designer.cs">
|
||||
<DependentUpon>frmLineDraw.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="frmLineDraw.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>frmLineDraw.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -1,20 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace LineDraw
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new frmLineDraw());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("LineDraw")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("LineDraw")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2009")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("32c2fc18-34ec-4eb1-ad46-77fc30e3c7a7")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,71 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3074
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace LineDraw.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LineDraw.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -1,30 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3074
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace LineDraw.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -1,86 +0,0 @@
|
||||
namespace LineDraw
|
||||
{
|
||||
partial class frmLineDraw
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.rtb = new System.Windows.Forms.RichTextBox();
|
||||
this.tbResults = new System.Windows.Forms.TextBox();
|
||||
this.btnCheck = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// rtb
|
||||
//
|
||||
this.rtb.Location = new System.Drawing.Point(31, 29);
|
||||
this.rtb.Name = "rtb";
|
||||
this.rtb.Size = new System.Drawing.Size(338, 234);
|
||||
this.rtb.TabIndex = 0;
|
||||
this.rtb.Text = "";
|
||||
//
|
||||
// tbResults
|
||||
//
|
||||
this.tbResults.Location = new System.Drawing.Point(33, 287);
|
||||
this.tbResults.Multiline = true;
|
||||
this.tbResults.Name = "tbResults";
|
||||
this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.tbResults.Size = new System.Drawing.Size(336, 204);
|
||||
this.tbResults.TabIndex = 1;
|
||||
//
|
||||
// btnCheck
|
||||
//
|
||||
this.btnCheck.Location = new System.Drawing.Point(443, 256);
|
||||
this.btnCheck.Name = "btnCheck";
|
||||
this.btnCheck.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCheck.TabIndex = 2;
|
||||
this.btnCheck.Text = "Check";
|
||||
this.btnCheck.UseVisualStyleBackColor = true;
|
||||
this.btnCheck.Click += new System.EventHandler(this.btnCheck_Click);
|
||||
//
|
||||
// frmLineDraw
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(600, 533);
|
||||
this.Controls.Add(this.btnCheck);
|
||||
this.Controls.Add(this.tbResults);
|
||||
this.Controls.Add(this.rtb);
|
||||
this.Name = "frmLineDraw";
|
||||
this.Text = "LineDrawTest";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.RichTextBox rtb;
|
||||
private System.Windows.Forms.TextBox tbResults;
|
||||
private System.Windows.Forms.Button btnCheck;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace LineDraw
|
||||
{
|
||||
public partial class frmLineDraw : Form
|
||||
{
|
||||
public frmLineDraw()
|
||||
{
|
||||
InitializeComponent();
|
||||
//rtb.Rtf = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 VESymbFix;}{\\f1\\fnil\\fcharset2 Prestige Elite Tall;}{\\f2\\fnil\\fcharset0 Prestige Elite Tall;}}\r\n\\viewkind4\\uc1\\pard\\sl-240\\slmult0\\f0\\fs20\\u9484?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9516?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9488?\\f1\\par\r\n\\f0\\u9474?\\f1 Tim\\f0\\u916?\\f1 e \\f0\\u9474?\\f1 Occ\\'b0urance\\f0\\u9474?\\f1\\par\r\n\\f0\\u9500?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9532?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\f1 \\f0\\u9474?\\f1\\par\r\n\\f0\\u9474?\\f1 03\\f0\\u931?\\f1 :00\\f0\\u9474?\\f1 Explosion \\f0\\u9474?\\f1\\par\r\n\\pard\\sl-252\\slmult0\\f0\\u9474?\\f1 04 :00\\f0\\u9474?\\f1 Fire \\f0\\u9474?\\f1\\par\r\n\\f0\\u9492?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9524?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9496?\\f2\\par\r\n}\r\n";
|
||||
rtb.Rtf = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Prestige Elite Tall;}{\\f1\\fnil\\fcharset0 VESymbFix;}{\\f2\\fnil\\fcharset0 Prestige Elite Tall;}}\r\n\\viewkind4\\uc1\\pard\\sl-240\\slmult0\\f0\\fs20\\f1\\u9484?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9516?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9488?\\f0 \\par\r\n\\f1\\u9474?\\f0 Tim\\f1\\u916?\\f0 e \\f1\\u9474?\\f0 Occ\\'b0urance\\f1\\u9474?\\f0 \\par\r\n\\f1\\u9500?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9532?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9474?\\f0 \\par\r\n\\f1\\u9474?\\f0 03\\f1\\u931?\\f0 :00\\f1\\u9474?\\f0 Explosion \\f1\\u9474?\\f0 \\par\r\n\\pard\\sl-252\\slmult0\\f1\\u9474?\\f0 04 :00\\f1\\u9474?\\f0 Fire \\f1\\u9474?\\f0 \\par\r\n\\f1\\u9492?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9524?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9496?\\f0 \\f2\\fs20\\par\r\n}\r\n";
|
||||
}
|
||||
|
||||
private void btnCheck_Click(object sender, EventArgs e)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (char c in rtb.Text)
|
||||
{
|
||||
if (c <= '\xFF' && c >= ' ')
|
||||
{
|
||||
sb.Append(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append(string.Format("0x{0:X4}",(int) c));
|
||||
}
|
||||
sb.Append("\r\n");
|
||||
}
|
||||
tbResults.Text = sb.ToString();
|
||||
}
|
||||
|
||||
//Generated //"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Prestige Elite Tall;}{\\f1\\fnil\\fcharset0 VESymbFix;}{\\f2\\fnil\\fcharset0 Prestige Elite Tall;}}\r\n\\viewkind4\\uc1\\pard\\sl-240\\slmult0\\f0\\fs20\\f1\\u9484?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9516?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9488?\\f0 \\par\r\n\\f1\\u9474?\\f0 Tim\\f1\\u916?\\f0 e \\f1\\u9474?\\f0 Occ\\'b0urance\\f1\\u9474?\\f0 \\par\r\n\\f1\\u9500?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9532?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9474?\\f0 \\par\r\n\\f1\\u9474?\\f0 03\\f1\\u931?\\f0 :00\\f1\\u9474?\\f0 Explosion \\f1\\u9474?\\f0 \\par\r\n\\pard\\sl-252\\slmult0\\f1\\u9474?\\f0 04 :00\\f1\\u9474?\\f0 Fire \\f1\\u9474?\\f0 \\par\r\n\\f1\\u9492?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9524?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9472?\\f0 \\f1\\u9496?\\f0 \\f2\\fs20\\par\r\n}\r\n"
|
||||
//RTF //"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 VESymbFix;}{\\f1\\fnil\\fcharset2 Prestige Elite Tall;}{\\f2\\fnil\\fcharset0 Prestige Elite Tall;}}\r\n\\viewkind4\\uc1\\pard\\sl-240\\slmult0\\f0\\fs20\\u9484?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9516?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9488?\\f1\\par\r\n\\f0\\u9474?\\f1 Tim\\f0\\u916?\\f1 e \\f0\\u9474?\\f1 Occ\\'b0urance\\f0\\u9474?\\f1\\par\r\n\\f0\\u9500?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9532?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\f1 \\f0\\u9474?\\f1\\par\r\n\\f0\\u9474?\\f1 03\\f0\\u931?\\f1 :00\\f0\\u9474?\\f1 Explosion \\f0\\u9474?\\f1\\par\r\n\\pard\\sl-252\\slmult0\\f0\\u9474?\\f1 04 :00\\f0\\u9474?\\f1 Fire \\f0\\u9474?\\f1\\par\r\n\\f0\\u9492?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9524?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9472?\\u9496?\\f2\\par\r\n}\r\n"
|
||||
}
|
||||
}
|
||||
@@ -1,120 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,35 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "About.h"
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CAboutDlg)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CAboutDlg)
|
||||
//}}AFX_DATA_INIT
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CAboutDlg)
|
||||
DDX_Control(pDX, IDC_ABOUT_EMAIL, m_ctrlEmail);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
BOOL CAboutDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
CString strMailTo = _T("");
|
||||
strMailTo.LoadString(IDS_MAILTO);
|
||||
|
||||
m_ctrlEmail.SetURL(strMailTo);
|
||||
|
||||
CenterWindow();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAboutDlg dialog used for App About
|
||||
|
||||
#ifndef ABOUT_H
|
||||
#define ABOUT_H
|
||||
|
||||
#include "xhyperlink.h"
|
||||
#include "resource.h"
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CAboutDlg)
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
CXHyperLink m_ctrlEmail;
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAboutDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
//{{AFX_MSG(CAboutDlg)
|
||||
virtual BOOL OnInitDialog();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
#endif //ABOUT_H
|
||||
@@ -1,8 +0,0 @@
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// XMonoFontDialogTest.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#ifndef STDAFX_H
|
||||
#define STDAFX_H
|
||||
|
||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
||||
|
||||
#if _MSC_VER >= 1400
|
||||
#ifndef WINVER
|
||||
#define WINVER 0x0501
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <afxwin.h> // MFC core and standard components
|
||||
#include <afxext.h> // MFC extensions
|
||||
#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
|
||||
|
||||
#if _MFC_VER > 0x700
|
||||
#ifdef _UNICODE
|
||||
#if defined _M_IX86
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_IA64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_X64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#else
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // STDAFX_H
|
||||
@@ -1,78 +0,0 @@
|
||||
// XFontSize.cpp Version 1.0
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
//#include "windows.h"
|
||||
#define XFONTSIZE_CPP
|
||||
#include "XFontSize.h"
|
||||
#include "tchar.h"
|
||||
|
||||
int CXFontSize::m_cyPixelsPerInch = 0;
|
||||
|
||||
//=============================================================================
|
||||
CXFontSize::CXFontSize()
|
||||
//=============================================================================
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXFontSize::Init()
|
||||
//=============================================================================
|
||||
{
|
||||
if (m_cyPixelsPerInch == 0)
|
||||
{
|
||||
HDC hdc = ::CreateDC(_T("DISPLAY"), NULL, NULL, NULL);
|
||||
if (hdc)
|
||||
{
|
||||
m_cyPixelsPerInch = ::GetDeviceCaps(hdc, LOGPIXELSY);
|
||||
::DeleteDC(hdc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
CXFontSize::~CXFontSize()
|
||||
//=============================================================================
|
||||
{
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
int CXFontSize::GetFontPointSize(int nHeight)
|
||||
//=============================================================================
|
||||
{
|
||||
Init();
|
||||
int nPointSize = 0;
|
||||
if (m_cyPixelsPerInch)
|
||||
{
|
||||
nPointSize = MulDiv(nHeight, 72, m_cyPixelsPerInch);
|
||||
if (nPointSize < 0)
|
||||
nPointSize = -nPointSize;
|
||||
}
|
||||
return nPointSize;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
int CXFontSize::GetFontHeight(int nPointSize)
|
||||
//=============================================================================
|
||||
{
|
||||
Init();
|
||||
int nHeight = 0;
|
||||
if (m_cyPixelsPerInch)
|
||||
{
|
||||
nHeight = -MulDiv(nPointSize, m_cyPixelsPerInch, 72);
|
||||
}
|
||||
return nHeight;
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
// XFontSize.h Version 1.0
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef XFONTSIZE_H
|
||||
#define XFONTSIZE_H
|
||||
|
||||
//=============================================================================
|
||||
class CXFontSize
|
||||
//=============================================================================
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CXFontSize();
|
||||
virtual ~CXFontSize();
|
||||
void Init();
|
||||
|
||||
// Operations
|
||||
public:
|
||||
int GetFontPointSize(int nHeight);
|
||||
int GetFontHeight(int nPointSize);
|
||||
|
||||
// Implementation
|
||||
private:
|
||||
static int m_cyPixelsPerInch;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// CXFontSize instance
|
||||
//
|
||||
#ifndef XFONTSIZE_CPP
|
||||
// include an instance in each file; the namespace insures uniqueness
|
||||
namespace { CXFontSize FontSize; }
|
||||
#endif
|
||||
|
||||
#endif //XFONTSIZE_H
|
||||
@@ -1,629 +0,0 @@
|
||||
// XHyperLink.cpp Version 1.0
|
||||
//
|
||||
// XHyperLink static control. Will open the default browser with the given URL
|
||||
// when the user clicks on the link.
|
||||
//
|
||||
// Copyright (C) 1997 - 1999 Chris Maunder
|
||||
// All rights reserved. May not be sold for profit.
|
||||
//
|
||||
// Thanks to Pål K. Tønder for auto-size and window caption changes.
|
||||
//
|
||||
// "GotoURL" function by Stuart Patterson
|
||||
// As seen in the August, 1997 Windows Developer's Journal.
|
||||
// Copyright 1997 by Miller Freeman, Inc. All rights reserved.
|
||||
// Modified by Chris Maunder to use TCHARs instead of chars.
|
||||
//
|
||||
// "Default hand cursor" from Paul DiLascia's Jan 1998 MSJ article.
|
||||
//
|
||||
// 2/29/00 -- P. Shaffer standard font mod.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Modified by: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "XHyperLink.h"
|
||||
#include "atlconv.h" // for Unicode conversion
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
#pragma warning(disable : 4996) // This function or variable may be unsafe
|
||||
|
||||
#define TOOLTIP_ID 1
|
||||
|
||||
// Uncomment following line to enable error message box for URL navigation
|
||||
//#define XHYPERLINK_REPORT_ERROR
|
||||
|
||||
|
||||
#ifndef IDC_HAND
|
||||
#define IDC_HAND MAKEINTRESOURCE(32649) // From WINUSER.H
|
||||
#endif
|
||||
|
||||
// sends message to parent when hyperlink is clicked (see SetNotifyParent())
|
||||
UINT WM_XHYPERLINK_CLICKED = ::RegisterWindowMessage(_T("WM_XHYPERLINK_CLICKED"));
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// CXHyperLink
|
||||
|
||||
BEGIN_MESSAGE_MAP(CXHyperLink, CStatic)
|
||||
//{{AFX_MSG_MAP(CXHyperLink)
|
||||
ON_WM_CTLCOLOR_REFLECT()
|
||||
ON_WM_SETCURSOR()
|
||||
ON_WM_MOUSEMOVE()
|
||||
ON_WM_TIMER()
|
||||
ON_CONTROL_REFLECT(STN_CLICKED, OnClicked)
|
||||
ON_WM_ERASEBKGND()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// ctor
|
||||
CXHyperLink::CXHyperLink()
|
||||
{
|
||||
m_hLinkCursor = NULL; // No cursor as yet
|
||||
m_crLinkColour = RGB(0,0,238); // Blue
|
||||
m_crVisitedColour = RGB(85,26,139); // Purple
|
||||
m_crHoverColour = RGB(255,0,0); // Red
|
||||
m_bOverControl = FALSE; // Cursor not yet over control
|
||||
m_bVisited = FALSE; // Hasn't been visited yet.
|
||||
m_nUnderline = ulHover; // Underline the link?
|
||||
m_bAdjustToFit = TRUE; // Resize the window to fit the text?
|
||||
m_strURL = _T("");
|
||||
m_nTimerID = 100;
|
||||
m_bNotifyParent = FALSE; // TRUE = notify parent
|
||||
m_bIsURLEnabled = TRUE; // TRUE = navigate to url
|
||||
m_bToolTip = TRUE; // TRUE = display tooltip
|
||||
m_crBackground = (UINT) -1; // set to default (no bg color)
|
||||
m_bAlwaysOpenNew = FALSE; // TRUE = always open new browser window
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// dtor
|
||||
CXHyperLink::~CXHyperLink()
|
||||
{
|
||||
TRACE(_T("in CXHyperLink::~CXHyperLink\n"));
|
||||
|
||||
if (m_hLinkCursor)
|
||||
DestroyCursor(m_hLinkCursor);
|
||||
m_hLinkCursor = NULL;
|
||||
m_UnderlineFont.DeleteObject();
|
||||
if (m_Brush.GetSafeHandle())
|
||||
m_Brush.DeleteObject();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXHyperLink overrides
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// DestroyWindow
|
||||
BOOL CXHyperLink::DestroyWindow()
|
||||
{
|
||||
KillTimer(m_nTimerID);
|
||||
return CStatic::DestroyWindow();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// PreTranslateMessage
|
||||
BOOL CXHyperLink::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
m_ToolTip.RelayEvent(pMsg);
|
||||
return CStatic::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// PreSubclassWindow
|
||||
void CXHyperLink::PreSubclassWindow()
|
||||
{
|
||||
// We want to get mouse clicks via STN_CLICKED
|
||||
DWORD dwStyle = GetStyle();
|
||||
::SetWindowLong(GetSafeHwnd(), GWL_STYLE, dwStyle | SS_NOTIFY);
|
||||
|
||||
// Set the URL as the window text
|
||||
if (m_strURL.IsEmpty())
|
||||
GetWindowText(m_strURL);
|
||||
|
||||
// Check that the window text isn't empty. If it is, set it as the URL.
|
||||
CString strWndText;
|
||||
GetWindowText(strWndText);
|
||||
if (strWndText.IsEmpty())
|
||||
{
|
||||
ASSERT(!m_strURL.IsEmpty()); // Window and URL both NULL. DUH!
|
||||
SetWindowText(m_strURL);
|
||||
}
|
||||
|
||||
CFont* pFont = GetFont();
|
||||
if (!pFont)
|
||||
{
|
||||
HFONT hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
|
||||
if (hFont == NULL)
|
||||
hFont = (HFONT) GetStockObject(ANSI_VAR_FONT);
|
||||
if (hFont)
|
||||
pFont = CFont::FromHandle(hFont);
|
||||
}
|
||||
ASSERT(pFont->GetSafeHandle());
|
||||
|
||||
// Create the underline font
|
||||
LOGFONT lf;
|
||||
pFont->GetLogFont(&lf);
|
||||
m_StdFont.CreateFontIndirect(&lf);
|
||||
lf.lfUnderline = (BYTE) TRUE;
|
||||
m_UnderlineFont.CreateFontIndirect(&lf);
|
||||
|
||||
PositionWindow(); // Adjust size of window to fit URL if necessary
|
||||
SetDefaultCursor(); // Try and load up a "hand" cursor
|
||||
SetUnderline();
|
||||
|
||||
// Create the tooltip
|
||||
if (m_bToolTip)
|
||||
{
|
||||
CRect rect;
|
||||
GetClientRect(rect);
|
||||
m_ToolTip.Create(this);
|
||||
m_ToolTip.AddTool(this, m_strURL, rect, TOOLTIP_ID);
|
||||
}
|
||||
|
||||
CStatic::PreSubclassWindow();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXHyperLink message handlers
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// OnClicked
|
||||
void CXHyperLink::OnClicked()
|
||||
{
|
||||
m_bOverControl = FALSE;
|
||||
int result = HINSTANCE_ERROR + 1;
|
||||
if (m_bIsURLEnabled)
|
||||
result = (int)(INT_PTR)GotoURL(m_strURL, SW_SHOW, m_bAlwaysOpenNew);
|
||||
m_bVisited = (result > HINSTANCE_ERROR);
|
||||
if (!m_bVisited)
|
||||
{
|
||||
MessageBeep(MB_ICONEXCLAMATION); // Unable to follow link
|
||||
ReportError(result);
|
||||
}
|
||||
else
|
||||
SetVisited(); // Repaint to show visited colour
|
||||
|
||||
NotifyParent();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// CtlColor
|
||||
#ifdef _DEBUG
|
||||
HBRUSH CXHyperLink::CtlColor(CDC* pDC, UINT nCtlColor)
|
||||
#else
|
||||
HBRUSH CXHyperLink::CtlColor(CDC* pDC, UINT /*nCtlColor*/)
|
||||
#endif
|
||||
{
|
||||
ASSERT(nCtlColor == CTLCOLOR_STATIC);
|
||||
|
||||
if (m_bOverControl)
|
||||
pDC->SetTextColor(m_crHoverColour);
|
||||
else if (m_bVisited)
|
||||
pDC->SetTextColor(m_crVisitedColour);
|
||||
else
|
||||
pDC->SetTextColor(m_crLinkColour);
|
||||
|
||||
// transparent text.
|
||||
pDC->SetBkMode(TRANSPARENT);
|
||||
|
||||
if (m_Brush.GetSafeHandle())
|
||||
{
|
||||
pDC->SetBkColor(m_crBackground);
|
||||
return (HBRUSH) m_Brush;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (HBRUSH)GetStockObject(NULL_BRUSH);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// OnMouseMove
|
||||
void CXHyperLink::OnMouseMove(UINT nFlags, CPoint point)
|
||||
{
|
||||
if (!m_bOverControl) // Cursor has just moved over control
|
||||
{
|
||||
m_bOverControl = TRUE;
|
||||
|
||||
if (m_nUnderline == ulHover)
|
||||
SetFont(&m_UnderlineFont);
|
||||
Invalidate();
|
||||
|
||||
SetTimer(m_nTimerID, 100, NULL);
|
||||
}
|
||||
CStatic::OnMouseMove(nFlags, point);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// OnTimer
|
||||
void CXHyperLink::OnTimer(UINT nIDEvent)
|
||||
{
|
||||
CPoint p(GetMessagePos());
|
||||
ScreenToClient(&p);
|
||||
|
||||
CRect rect;
|
||||
GetClientRect(rect);
|
||||
if (!rect.PtInRect(p))
|
||||
{
|
||||
m_bOverControl = FALSE;
|
||||
KillTimer(m_nTimerID);
|
||||
|
||||
if (m_nUnderline != ulAlways)
|
||||
SetFont(&m_StdFont);
|
||||
rect.bottom+=10;
|
||||
InvalidateRect(rect);
|
||||
}
|
||||
|
||||
CStatic::OnTimer(nIDEvent);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// OnSetCursor
|
||||
BOOL CXHyperLink::OnSetCursor(CWnd* /*pWnd*/, UINT /*nHitTest*/, UINT /*message*/)
|
||||
{
|
||||
if (m_hLinkCursor)
|
||||
{
|
||||
::SetCursor(m_hLinkCursor);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// OnEraseBkgnd
|
||||
BOOL CXHyperLink::OnEraseBkgnd(CDC* pDC)
|
||||
{
|
||||
CRect rect;
|
||||
GetClientRect(rect);
|
||||
if (m_crBackground != (UINT)-1)
|
||||
pDC->FillSolidRect(rect, m_crBackground);
|
||||
else
|
||||
pDC->FillSolidRect(rect, ::GetSysColor(COLOR_3DFACE));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXHyperLink operations
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetURL
|
||||
void CXHyperLink::SetURL(CString strURL)
|
||||
{
|
||||
m_strURL = strURL;
|
||||
|
||||
if (::IsWindow(GetSafeHwnd()))
|
||||
{
|
||||
PositionWindow();
|
||||
m_ToolTip.UpdateTipText(strURL, this, TOOLTIP_ID);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetColours
|
||||
void CXHyperLink::SetColours(COLORREF crLinkColour,
|
||||
COLORREF crVisitedColour,
|
||||
COLORREF crHoverColour /* = -1 */)
|
||||
{
|
||||
m_crLinkColour = crLinkColour;
|
||||
m_crVisitedColour = crVisitedColour;
|
||||
|
||||
if (crHoverColour == -1)
|
||||
m_crHoverColour = ::GetSysColor(COLOR_HIGHLIGHT);
|
||||
else
|
||||
m_crHoverColour = crHoverColour;
|
||||
|
||||
if (::IsWindow(m_hWnd))
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetBackgroundColour
|
||||
void CXHyperLink::SetBackgroundColour(COLORREF crBackground)
|
||||
{
|
||||
m_crBackground = crBackground;
|
||||
if (m_Brush.GetSafeHandle())
|
||||
m_Brush.DeleteObject();
|
||||
m_Brush.CreateSolidBrush(m_crBackground);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetVisited
|
||||
void CXHyperLink::SetVisited(BOOL bVisited /* = TRUE */)
|
||||
{
|
||||
m_bVisited = bVisited;
|
||||
|
||||
if (::IsWindow(GetSafeHwnd()))
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetLinkCursor
|
||||
void CXHyperLink::SetLinkCursor(HCURSOR hCursor)
|
||||
{
|
||||
m_hLinkCursor = hCursor;
|
||||
if (m_hLinkCursor == NULL)
|
||||
SetDefaultCursor();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetUnderline
|
||||
void CXHyperLink::SetUnderline(int nUnderline /*=ulHover*/)
|
||||
{
|
||||
if (m_nUnderline == nUnderline)
|
||||
return;
|
||||
|
||||
if (::IsWindow(GetSafeHwnd()))
|
||||
{
|
||||
if (nUnderline == ulAlways)
|
||||
SetFont(&m_UnderlineFont);
|
||||
else
|
||||
SetFont(&m_StdFont);
|
||||
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
m_nUnderline = nUnderline;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetAutoSize
|
||||
void CXHyperLink::SetAutoSize(BOOL bAutoSize /* = TRUE */)
|
||||
{
|
||||
m_bAdjustToFit = bAutoSize;
|
||||
|
||||
if (::IsWindow(GetSafeHwnd()))
|
||||
PositionWindow();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetWindowText
|
||||
void CXHyperLink::SetWindowText(LPCTSTR lpszString)
|
||||
{
|
||||
ASSERT(lpszString);
|
||||
if (!lpszString)
|
||||
return;
|
||||
CStatic::SetWindowText(_T(""));
|
||||
RedrawWindow();
|
||||
CStatic::SetWindowText(lpszString);
|
||||
PositionWindow();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// PositionWindow
|
||||
|
||||
// Move and resize the window so that the window is the same size
|
||||
// as the hyperlink text. This stops the hyperlink cursor being active
|
||||
// when it is not directly over the text. If the text is left justified
|
||||
// then the window is merely shrunk, but if it is centred or right
|
||||
// justified then the window will have to be moved as well.
|
||||
//
|
||||
// Suggested by Pål K. Tønder
|
||||
//
|
||||
void CXHyperLink::PositionWindow()
|
||||
{
|
||||
if (!::IsWindow(GetSafeHwnd()) || !m_bAdjustToFit)
|
||||
return;
|
||||
|
||||
// Get the current window position
|
||||
CRect WndRect, ClientRect;
|
||||
GetWindowRect(WndRect);
|
||||
GetClientRect(ClientRect);
|
||||
|
||||
ClientToScreen(ClientRect);
|
||||
|
||||
CWnd* pParent = GetParent();
|
||||
if (pParent)
|
||||
{
|
||||
pParent->ScreenToClient(WndRect);
|
||||
pParent->ScreenToClient(ClientRect);
|
||||
}
|
||||
|
||||
// Get the size of the window text
|
||||
CString strWndText;
|
||||
GetWindowText(strWndText);
|
||||
|
||||
CDC* pDC = GetDC();
|
||||
CFont* pOldFont = pDC->SelectObject(&m_UnderlineFont);
|
||||
CSize Extent = pDC->GetTextExtent(strWndText);
|
||||
pDC->SelectObject(pOldFont);
|
||||
ReleaseDC(pDC);
|
||||
|
||||
// Adjust for window borders
|
||||
Extent.cx += WndRect.Width() - ClientRect.Width();
|
||||
Extent.cy += WndRect.Height() - ClientRect.Height();
|
||||
|
||||
// Get the text justification via the window style
|
||||
DWORD dwStyle = GetStyle();
|
||||
|
||||
// Recalc the window size and position based on the text justification
|
||||
if (dwStyle & SS_CENTERIMAGE)
|
||||
WndRect.DeflateRect(0, (WndRect.Height() - Extent.cy)/2);
|
||||
else
|
||||
WndRect.bottom = WndRect.top + Extent.cy;
|
||||
|
||||
if (dwStyle & SS_CENTER)
|
||||
WndRect.DeflateRect((WndRect.Width() - Extent.cx)/2, 0);
|
||||
else if (dwStyle & SS_RIGHT)
|
||||
WndRect.left = WndRect.right - Extent.cx;
|
||||
else // SS_LEFT = 0, so we can't test for it explicitly
|
||||
WndRect.right = WndRect.left + Extent.cx;
|
||||
|
||||
// Move the window
|
||||
SetWindowPos(NULL,
|
||||
WndRect.left, WndRect.top,
|
||||
WndRect.Width(), WndRect.Height(),
|
||||
SWP_NOZORDER);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXHyperLink implementation
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// SetDefaultCursor
|
||||
void CXHyperLink::SetDefaultCursor()
|
||||
{
|
||||
if (m_hLinkCursor == NULL) // No cursor handle - try to load one
|
||||
{
|
||||
// First try to load the Win98 / Windows 2000 hand cursor
|
||||
|
||||
TRACE(_T("loading from IDC_HAND\n"));
|
||||
m_hLinkCursor = AfxGetApp()->LoadStandardCursor(IDC_HAND);
|
||||
|
||||
if (m_hLinkCursor == NULL) // Still no cursor handle -
|
||||
// load the WinHelp hand cursor
|
||||
{
|
||||
// The following appeared in Paul DiLascia's Jan 1998 MSJ articles.
|
||||
// It loads a "hand" cursor from the winhlp32.exe module.
|
||||
|
||||
TRACE(_T("loading from winhlp32\n"));
|
||||
|
||||
// Get the windows directory
|
||||
CString strWndDir;
|
||||
GetWindowsDirectory(strWndDir.GetBuffer(MAX_PATH), MAX_PATH);
|
||||
strWndDir.ReleaseBuffer();
|
||||
|
||||
strWndDir += _T("\\winhlp32.exe");
|
||||
|
||||
// This retrieves cursor #106 from winhlp32.exe, which is a hand pointer
|
||||
HMODULE hModule = LoadLibrary(strWndDir);
|
||||
if (hModule)
|
||||
{
|
||||
HCURSOR hHandCursor = ::LoadCursor(hModule, MAKEINTRESOURCE(106));
|
||||
if (hHandCursor)
|
||||
m_hLinkCursor = CopyCursor(hHandCursor);
|
||||
FreeLibrary(hModule);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// GetRegKey
|
||||
LONG CXHyperLink::GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata)
|
||||
{
|
||||
HKEY hkey;
|
||||
LONG retval = RegOpenKeyEx(key, subkey, 0, KEY_QUERY_VALUE, &hkey);
|
||||
|
||||
if (retval == ERROR_SUCCESS)
|
||||
{
|
||||
long datasize = MAX_PATH;
|
||||
TCHAR data[MAX_PATH];
|
||||
RegQueryValue(hkey, NULL, data, &datasize);
|
||||
_tcscpy(retdata, data);
|
||||
RegCloseKey(hkey);
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// ReportError
|
||||
void CXHyperLink::ReportError(int nError)
|
||||
{
|
||||
#ifdef XHYPERLINK_REPORT_ERROR
|
||||
|
||||
CString str;
|
||||
switch (nError)
|
||||
{
|
||||
case 0: str = "The operating system is out\nof memory or resources."; break;
|
||||
case SE_ERR_PNF: str = "The specified path was not found."; break;
|
||||
case SE_ERR_FNF: str = "The specified file was not found."; break;
|
||||
case ERROR_BAD_FORMAT: str = "The .EXE file is invalid\n(non-Win32 .EXE or error in .EXE image)."; break;
|
||||
case SE_ERR_ACCESSDENIED: str = "The operating system denied\naccess to the specified file."; break;
|
||||
case SE_ERR_ASSOCINCOMPLETE: str = "The filename association is\nincomplete or invalid."; break;
|
||||
case SE_ERR_DDEBUSY: str = "The DDE transaction could not\nbe completed because other DDE transactions\nwere being processed."; break;
|
||||
case SE_ERR_DDEFAIL: str = "The DDE transaction failed."; break;
|
||||
case SE_ERR_DDETIMEOUT: str = "The DDE transaction could not\nbe completed because the request timed out."; break;
|
||||
case SE_ERR_DLLNOTFOUND: str = "The specified dynamic-link library was not found."; break;
|
||||
case SE_ERR_NOASSOC: str = "There is no application associated\nwith the given filename extension."; break;
|
||||
case SE_ERR_OOM: str = "There was not enough memory to complete the operation."; break;
|
||||
case SE_ERR_SHARE: str = "A sharing violation occurred. ";
|
||||
default: str.Format(_T("Unknown Error (%d) occurred."), nError); break;
|
||||
}
|
||||
str = "Unable to open hyperlink:\n\n" + str;
|
||||
AfxMessageBox(str, MB_ICONEXCLAMATION | MB_OK);
|
||||
|
||||
#else
|
||||
|
||||
UNUSED_ALWAYS(nError);
|
||||
|
||||
#endif // XHYPERLINK_REPORT_ERROR
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// NotifyParent
|
||||
void CXHyperLink::NotifyParent()
|
||||
{
|
||||
if (m_bNotifyParent)
|
||||
{
|
||||
CWnd *pParent = GetParent();
|
||||
if (pParent && ::IsWindow(pParent->m_hWnd))
|
||||
{
|
||||
// wParam will contain control id
|
||||
pParent->SendMessage(WM_XHYPERLINK_CLICKED, GetDlgCtrlID());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// GotoURL
|
||||
HINSTANCE CXHyperLink::GotoURL(LPCTSTR url, int showcmd, BOOL bAlwaysOpenNew /*= FALSE*/)
|
||||
{
|
||||
// if no url then this is not an internet link
|
||||
if (!url || url[0] == _T('\0'))
|
||||
return (HINSTANCE) HINSTANCE_ERROR + 1;
|
||||
|
||||
TCHAR key[MAX_PATH*2];
|
||||
|
||||
// First try ShellExecute()
|
||||
TCHAR *verb = _T("open");
|
||||
if (bAlwaysOpenNew)
|
||||
verb = _T("new");
|
||||
HINSTANCE result = ShellExecute(NULL, verb, url, NULL,NULL, showcmd);
|
||||
|
||||
// If it failed, get the .htm regkey and lookup the program
|
||||
if (result <= (HINSTANCE)HINSTANCE_ERROR)
|
||||
{
|
||||
if (GetRegKey(HKEY_CLASSES_ROOT, _T(".htm"), key) == ERROR_SUCCESS)
|
||||
{
|
||||
_tcscat(key, _T("\\shell\\open\\command"));
|
||||
|
||||
if (GetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS)
|
||||
{
|
||||
TCHAR *pos;
|
||||
pos = _tcsstr(key, _T("\"%1\""));
|
||||
if (pos == NULL)
|
||||
{ // No quotes found
|
||||
pos = _tcsstr(key, _T("%1")); // Check for %1, without quotes
|
||||
if (pos == NULL) // No parameter at all...
|
||||
pos = key + _tcslen(key)-1;
|
||||
else
|
||||
*pos = _T('\0'); // Remove the parameter
|
||||
}
|
||||
else
|
||||
{
|
||||
*pos = _T('\0'); // Remove the parameter
|
||||
}
|
||||
|
||||
_tcscat(pos, _T(" "));
|
||||
_tcscat(pos, url);
|
||||
|
||||
USES_CONVERSION;
|
||||
result = (HINSTANCE) (UINT_PTR) WinExec(T2A(key),showcmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1,185 +0,0 @@
|
||||
// XHyperLink.h Version 1.0
|
||||
//
|
||||
// XHyperLink static control. Will open the default browser with the given URL
|
||||
// when the user clicks on the link.
|
||||
//
|
||||
// Copyright Chris Maunder, 1997-1999 (cmaunder@mail.com)
|
||||
// Feel free to use and distribute. May not be sold for profit.
|
||||
//
|
||||
// 2/29/00 -- P. Shaffer standard font mod.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Modified by: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef XHYPERLINK_H
|
||||
#define XHYPERLINK_H
|
||||
|
||||
extern UINT WM_XHYPERLINK_CLICKED;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXHyperLink window
|
||||
|
||||
class CXHyperLink : public CStatic
|
||||
{
|
||||
// Construction/destruction
|
||||
public:
|
||||
CXHyperLink();
|
||||
virtual ~CXHyperLink();
|
||||
|
||||
public:
|
||||
enum UnderLineOptions { ulHover = -1, ulNone = 0, ulAlways = 1};
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
void SetURL(CString strURL);
|
||||
CString GetURL() const
|
||||
{
|
||||
return m_strURL;
|
||||
}
|
||||
|
||||
void EnableURL(BOOL bFlag) { m_bIsURLEnabled = bFlag; }
|
||||
BOOL IsURLEnabled() const { return m_bIsURLEnabled; }
|
||||
|
||||
void SetColours(COLORREF crLinkColour,
|
||||
COLORREF crVisitedColour,
|
||||
COLORREF crHoverColour = -1);
|
||||
|
||||
COLORREF GetLinkColour() const
|
||||
{
|
||||
return m_crLinkColour;
|
||||
}
|
||||
|
||||
COLORREF GetVisitedColour() const
|
||||
{
|
||||
return m_crVisitedColour;
|
||||
}
|
||||
|
||||
COLORREF GetHoverColour() const
|
||||
{
|
||||
return m_crHoverColour;
|
||||
}
|
||||
|
||||
void SetBackgroundColour(COLORREF crBackground);
|
||||
COLORREF GetBackgroundColour() const
|
||||
{
|
||||
return m_crBackground;
|
||||
}
|
||||
|
||||
void SetVisited(BOOL bVisited = TRUE);
|
||||
BOOL GetVisited() const
|
||||
{
|
||||
return m_bVisited;
|
||||
}
|
||||
|
||||
void SetLinkCursor(HCURSOR hCursor);
|
||||
HCURSOR CXHyperLink::GetLinkCursor() const
|
||||
{
|
||||
return m_hLinkCursor;
|
||||
}
|
||||
|
||||
void SetUnderline(int nUnderline = ulHover);
|
||||
int GetUnderline() const
|
||||
{
|
||||
return m_nUnderline;
|
||||
}
|
||||
|
||||
void SetAutoSize(BOOL bAutoSize = TRUE);
|
||||
BOOL GetAutoSize() const
|
||||
{
|
||||
return m_bAdjustToFit;
|
||||
}
|
||||
|
||||
void SetNotifyParent(BOOL bFlag) { m_bNotifyParent = bFlag; }
|
||||
BOOL GetNotifyParent() const { return m_bNotifyParent; }
|
||||
|
||||
void EnableTooltip(BOOL bFlag)
|
||||
{
|
||||
m_bToolTip = bFlag;
|
||||
m_ToolTip.Activate(m_bToolTip);
|
||||
}
|
||||
BOOL IsTooltipEmabled() const
|
||||
{
|
||||
return m_bToolTip;
|
||||
}
|
||||
|
||||
void SetAlwaysOpenNew(BOOL bFlag)
|
||||
{
|
||||
m_bAlwaysOpenNew = bFlag;
|
||||
}
|
||||
BOOL GetAlwaysOpenNew() const
|
||||
{
|
||||
return m_bAlwaysOpenNew;
|
||||
}
|
||||
|
||||
void SetWindowText(LPCTSTR lpszString);
|
||||
|
||||
|
||||
// Operations
|
||||
public:
|
||||
static HINSTANCE GotoURL(LPCTSTR url, int showcmd, BOOL bAlwaysOpenNew = FALSE);
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CXHyperLink)
|
||||
public:
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
virtual BOOL DestroyWindow();
|
||||
protected:
|
||||
virtual void PreSubclassWindow();
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
static LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);
|
||||
void NotifyParent();
|
||||
void PositionWindow();
|
||||
void ReportError(int nError);
|
||||
void SetDefaultCursor();
|
||||
|
||||
// Protected attributes
|
||||
protected:
|
||||
COLORREF m_crLinkColour; // Hyperlink colours
|
||||
COLORREF m_crVisitedColour;
|
||||
COLORREF m_crHoverColour; // Hover colour
|
||||
COLORREF m_crBackground; // background color
|
||||
CBrush m_Brush; // background brush
|
||||
BOOL m_bOverControl; // cursor over control?
|
||||
BOOL m_bVisited; // Has it been visited?
|
||||
int m_nUnderline; // underline hyperlink?
|
||||
BOOL m_bAdjustToFit; // Adjust window size to fit text?
|
||||
CString m_strURL; // hyperlink URL
|
||||
CFont m_UnderlineFont; // Font for underline display
|
||||
CFont m_StdFont; // Standard font
|
||||
HCURSOR m_hLinkCursor; // Cursor for hyperlink
|
||||
CToolTipCtrl m_ToolTip; // The tooltip
|
||||
UINT m_nTimerID;
|
||||
BOOL m_bIsURLEnabled; // TRUE = navigate to url
|
||||
BOOL m_bNotifyParent; // TRUE = notify parent
|
||||
BOOL m_bToolTip; // TRUE = display tooltip
|
||||
BOOL m_bAlwaysOpenNew; // TRUE = always open new browser window
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CXHyperLink)
|
||||
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
|
||||
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
|
||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||||
//}}AFX_MSG
|
||||
afx_msg void OnTimer(UINT nIDEvent);
|
||||
afx_msg void OnClicked();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif //XHYPERLINK_H
|
||||
@@ -1,424 +0,0 @@
|
||||
// XMonoFontDialog.cpp Version 1.1
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// Description:
|
||||
// XMonoFontDialog.cpp implements CXMonoFontDialog, a class to display
|
||||
// a customized CFontDialog.
|
||||
//
|
||||
// History
|
||||
// Version 1.1 - 2008 October 29
|
||||
// - Fixed problem with small point sizes
|
||||
//
|
||||
// Version 1.0 - 2008 October 22
|
||||
// - Initial public release
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "XMonoFontDialog.h"
|
||||
#include "XMonoFontDialogRes.h"
|
||||
#include "XFontSize.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
#ifndef __noop
|
||||
#if _MSC_VER < 1300
|
||||
#define __noop ((void)0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef TRACE
|
||||
#define TRACE __noop
|
||||
|
||||
//=============================================================================
|
||||
// if you want to see the TRACE output, uncomment this line:
|
||||
//#include "XTrace.h"
|
||||
//=============================================================================
|
||||
|
||||
#pragma warning(disable : 4996) // disable bogus deprecation warning
|
||||
|
||||
#define TIMER_FONTLIST_SELCHANGE 1
|
||||
#define TIMER_FONTSIZES_SELCHANGE 2
|
||||
#define TIMER_FONTSIZES_UPDATE 3
|
||||
|
||||
static int CALLBACK EnumFontFamExProcSizes(const ENUMLOGFONTEX *lpelfe,
|
||||
const NEWTEXTMETRICEX *lpntme,
|
||||
DWORD FontType,
|
||||
LPARAM lParam);
|
||||
|
||||
IMPLEMENT_DYNAMIC(CXMonoFontDialog, CDialog)
|
||||
|
||||
//=============================================================================
|
||||
BEGIN_MESSAGE_MAP(CXMonoFontDialog, CDialog)
|
||||
//=============================================================================
|
||||
//{{AFX_MSG_MAP(CXMonoFontDialog)
|
||||
ON_WM_CTLCOLOR()
|
||||
ON_WM_TIMER()
|
||||
ON_CBN_SELCHANGE(IDC_FONT_LIST, OnSelchangeFontList)
|
||||
ON_CBN_SELCHANGE(IDC_FONT_SIZE, OnSelchangeFontSize)
|
||||
ON_CBN_EDITCHANGE(IDC_FONT_SIZE, OnEditchangeFontSize)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontDialog::CXMonoFontDialog(LPLOGFONT lplfInitial,
|
||||
DWORD /*dwFlags*/, // compatibility with CFontDialog
|
||||
CDC* /*pdcPrinter*/, // compatibility with CFontDialog
|
||||
CWnd* pParentWnd /*= NULL*/) :
|
||||
// use string resource name to avoid resource id conflicts
|
||||
CDialog(_T("IDD_XMONOFONTDIALOG"), pParentWnd)
|
||||
//CDialog(IDD_XMONOFONTDIALOG, pParentWnd)
|
||||
//=============================================================================
|
||||
{
|
||||
m_strFaceName = _T("");
|
||||
m_strCaption = _T("Font");
|
||||
m_strSampleText = _T("AaBbYyZz 0123456789");
|
||||
m_strMonospacedLabel = _T("MONOSPACED");
|
||||
m_Height = 0;
|
||||
m_dwFontFilter = 0;
|
||||
m_bShowMonospacedLabel = TRUE;
|
||||
m_bShowMonospacedAsBold = TRUE;
|
||||
|
||||
memset(&m_lfInitial, 0, sizeof(LOGFONT));
|
||||
memset(&m_lfCurrent, 0, sizeof(LOGFONT));
|
||||
|
||||
if (lplfInitial)
|
||||
{
|
||||
memcpy(&m_lfInitial, lplfInitial, sizeof(LOGFONT));
|
||||
}
|
||||
else
|
||||
{
|
||||
m_lfInitial.lfCharSet = DEFAULT_CHARSET;
|
||||
_tcscpy(m_lfInitial.lfFaceName, _T("Courier"));
|
||||
m_lfInitial.lfHeight = FontSize.GetFontHeight(10);
|
||||
}
|
||||
memcpy(&m_lfCurrent, &m_lfInitial, sizeof(LOGFONT));
|
||||
m_nPointSize = FontSize.GetFontPointSize(m_lfInitial.lfHeight);
|
||||
m_strFaceName = m_lfInitial.lfFaceName;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontDialog::~CXMonoFontDialog()
|
||||
//=============================================================================
|
||||
{
|
||||
if (m_SampleFont.GetSafeHandle())
|
||||
m_SampleFont.DeleteObject();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialog::DoDataExchange(CDataExchange* pDX)
|
||||
//=============================================================================
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CXMonoFontDialog)
|
||||
DDX_Control(pDX, IDC_FONT_SIZE, m_FontSizes);
|
||||
DDX_Control(pDX, IDC_FONT_SAMPLE, m_Sample);
|
||||
DDX_Control(pDX, IDC_FONT_MONOSPACED, m_MonospacedLabel);
|
||||
DDX_Control(pDX, IDC_FONT_LIST, m_FontList);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
BOOL CXMonoFontDialog::OnInitDialog()
|
||||
//=============================================================================
|
||||
{
|
||||
m_FontList.SetFontFilter(m_dwFontFilter)
|
||||
.SetFont(m_lfInitial)
|
||||
.ShowMonospacedAsBold(m_bShowMonospacedAsBold);
|
||||
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// at this point the font list combo has been filled with font names
|
||||
|
||||
m_MonospacedLabel.SetWindowText(m_strMonospacedLabel);
|
||||
|
||||
int h = m_FontList.GetItemHeight(0);
|
||||
m_FontSizes.SetItemHeight(-1, h);
|
||||
|
||||
SetWindowText(m_strCaption);
|
||||
m_Sample.SetWindowText(m_strSampleText);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
HBRUSH CXMonoFontDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
//=============================================================================
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// set MONOSPACED label to blue
|
||||
CWnd *pMonoSpaced = GetDlgItem(IDC_FONT_MONOSPACED);
|
||||
if (pMonoSpaced && pWnd)
|
||||
{
|
||||
if (pWnd->m_hWnd == pMonoSpaced->m_hWnd)
|
||||
pDC->SetTextColor(RGB(0,0,255));
|
||||
}
|
||||
|
||||
return hbr;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialog::GetCurrentFont(LPLOGFONT lplf)
|
||||
//=============================================================================
|
||||
{
|
||||
ASSERT(lplf);
|
||||
if (lplf)
|
||||
memcpy(lplf, &m_lfCurrent, sizeof(LOGFONT));
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// called when user selects size in combo list
|
||||
void CXMonoFontDialog::OnSelchangeFontSize()
|
||||
//=============================================================================
|
||||
{
|
||||
TRACE(_T("in CXMonoFontDialog::OnSelchangeFontSize\n"));
|
||||
SetTimer(TIMER_FONTSIZES_SELCHANGE, 50, 0);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// called when user types in size combo edit box
|
||||
void CXMonoFontDialog::OnEditchangeFontSize()
|
||||
//=============================================================================
|
||||
{
|
||||
TRACE(_T("in CXMonoFontDialog::OnEditchangeFontSize\n"));
|
||||
SetTimer(TIMER_FONTSIZES_UPDATE, 50, 0);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// called when user selects font in combo list
|
||||
void CXMonoFontDialog::OnSelchangeFontList()
|
||||
//=============================================================================
|
||||
{
|
||||
TRACE(_T("in CXMonoFontDialog::OnSelchangeFontList\n"));
|
||||
|
||||
CString s = _T("");
|
||||
CString strFont = _T("");
|
||||
int index = m_FontList.GetCurSel();
|
||||
if (index != CB_ERR)
|
||||
{
|
||||
m_FontList.GetLBText(index, strFont);
|
||||
m_FontList.SetWindowText(strFont);
|
||||
|
||||
m_FontSizes.ResetContent();
|
||||
|
||||
DWORD dwFlags = m_FontList.GetItemData(index);
|
||||
|
||||
if (dwFlags & (XFONT_TRUETYPE | XFONT_OPENTYPE | XFONT_VECTOR))
|
||||
{
|
||||
// use standard set of sizes
|
||||
TRACE(_T("open or true type or vector\n"));
|
||||
static int nSizes[] = { 8, 9, 10, 11, 12, 14, 16, 18,
|
||||
20, 22, 24, 26, 28, 36, 48, 72, -1 };
|
||||
for (int i = 0; nSizes[i] != -1; i++)
|
||||
{
|
||||
s.Format(_T("%d"), nSizes[i]);
|
||||
m_FontSizes.AddString(s);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// some other font type - enumerate sizes
|
||||
m_FontList.GetLBText(index, s);
|
||||
LOGFONT lf;
|
||||
memset(&lf, 0, sizeof(LOGFONT));
|
||||
lf.lfCharSet = DEFAULT_CHARSET;
|
||||
_tcsncpy(lf.lfFaceName, s, sizeof(lf.lfFaceName)/sizeof(TCHAR)-1);
|
||||
CClientDC dcClient(this);
|
||||
TRACE(_T("===== STARTING SIZE ENUMERATION ===========\n"));
|
||||
EnumFontFamiliesEx(dcClient, &lf,
|
||||
(FONTENUMPROC) EnumFontFamExProcSizes, (LPARAM)&m_FontSizes, 0);
|
||||
TRACE(_T("===== ENDING SIZE ENUMERATION ===========\n"));
|
||||
}
|
||||
}
|
||||
|
||||
// clear size selection
|
||||
m_FontSizes.SetCurSel(-1);
|
||||
|
||||
// set size in combo edit box
|
||||
s.Format(_T("%d"), m_nPointSize);
|
||||
m_FontSizes.SetWindowText(s);
|
||||
|
||||
// try to select size in combo
|
||||
index = m_FontSizes.FindStringExact(-1, s);
|
||||
if (index != CB_ERR)
|
||||
m_FontSizes.SetCurSel(index);
|
||||
|
||||
SetCurFont();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialog::SetCurFont()
|
||||
//=============================================================================
|
||||
{
|
||||
TRACE(_T("in CXMonoFontDialog::SetCurFont\n"));
|
||||
int index = m_FontList.GetCurSel();
|
||||
|
||||
if (index != CB_ERR)
|
||||
{
|
||||
m_dwXFontFlags = m_FontList.GetItemData(index);
|
||||
m_FontList.GetLBText(index, m_strFaceName);
|
||||
}
|
||||
|
||||
CString s = _T("");
|
||||
m_FontSizes.GetWindowText(s);
|
||||
if (s.IsEmpty())
|
||||
s = _T("10");
|
||||
int n = _ttoi(s);
|
||||
if (n > 0)
|
||||
m_nPointSize = n;
|
||||
|
||||
TRACE(_T("SetCurFont: setting font to %s(%d)\n"), m_strFaceName, m_nPointSize);
|
||||
|
||||
// set sample font
|
||||
memset(&m_lfCurrent, 0, sizeof(LOGFONT));
|
||||
m_lfCurrent.lfHeight = FontSize.GetFontHeight(m_nPointSize);
|
||||
m_Height = m_lfCurrent.lfHeight;
|
||||
m_lfCurrent.lfCharSet = DEFAULT_CHARSET;
|
||||
_tcsncpy(m_lfCurrent.lfFaceName, m_strFaceName,
|
||||
sizeof(m_lfCurrent.lfFaceName)/sizeof(TCHAR)-1);
|
||||
DWORD weight = (m_dwXFontFlags & XFONT_WEIGHT_MASK) >> 16;
|
||||
m_lfCurrent.lfWeight = weight;
|
||||
m_lfCurrent.lfItalic = (BYTE) (m_dwXFontFlags & XFONT_ITALIC);
|
||||
if (m_SampleFont.GetSafeHandle())
|
||||
m_SampleFont.DeleteObject();
|
||||
m_SampleFont.CreateFontIndirect(&m_lfCurrent);
|
||||
m_Sample.SetFont(&m_SampleFont);
|
||||
|
||||
// show / hide MONOSPACED label
|
||||
BOOL bIsMonospaced = m_dwXFontFlags & XFONT_MONOSPACED;
|
||||
m_MonospacedLabel.ShowWindow((bIsMonospaced && m_bShowMonospacedLabel) ?
|
||||
SW_SHOW : SW_HIDE);
|
||||
|
||||
// enable bold typeface in combo list
|
||||
m_FontList.SetBold(bIsMonospaced && m_bShowMonospacedAsBold);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialog::OnOK()
|
||||
//=============================================================================
|
||||
{
|
||||
CString s = _T("");
|
||||
m_FontSizes.GetWindowText(s);
|
||||
if (s.IsEmpty())
|
||||
s = _T("10");
|
||||
m_nPointSize = _ttoi(s);
|
||||
if (m_nPointSize <= 0)
|
||||
m_nPointSize = 10;
|
||||
|
||||
memset(&m_lfCurrent, 0, sizeof(LOGFONT));
|
||||
m_lfCurrent.lfHeight = FontSize.GetFontHeight(m_nPointSize);
|
||||
m_Height = m_lfCurrent.lfHeight;
|
||||
m_lfCurrent.lfCharSet = DEFAULT_CHARSET;
|
||||
_tcsncpy(m_lfCurrent.lfFaceName, m_strFaceName,
|
||||
sizeof(m_lfCurrent.lfFaceName)/sizeof(TCHAR)-1);
|
||||
DWORD weight = (m_dwXFontFlags & XFONT_WEIGHT_MASK) >> 16;
|
||||
m_lfCurrent.lfWeight = weight;
|
||||
m_lfCurrent.lfItalic = (BYTE) (m_dwXFontFlags & XFONT_ITALIC);
|
||||
|
||||
CDialog::OnOK();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialog::OnTimer(UINT nIDEvent)
|
||||
//=============================================================================
|
||||
{
|
||||
KillTimer(nIDEvent);
|
||||
|
||||
if (nIDEvent == TIMER_FONTSIZES_SELCHANGE)
|
||||
{
|
||||
SetCurFont();
|
||||
}
|
||||
else if (nIDEvent == TIMER_FONTSIZES_UPDATE)
|
||||
{
|
||||
// user is typing into combo edit box - check if what he has typed
|
||||
// so far is a valid size, and select it if it is
|
||||
CString strSize = _T("");
|
||||
m_FontSizes.GetWindowText(strSize);
|
||||
int index = m_FontSizes.FindStringExact(-1, strSize);
|
||||
if (index != CB_ERR)
|
||||
{
|
||||
TRACE(_T("found size at %d\n"), index);
|
||||
m_FontSizes.SetCurSel(index);
|
||||
}
|
||||
OnSelchangeFontSize();
|
||||
}
|
||||
|
||||
CDialog::OnTimer(nIDEvent);
|
||||
}
|
||||
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4100)
|
||||
//=============================================================================
|
||||
// This function is the enumeration callback for font sizes.
|
||||
// Its purpose is to fill the size combo with non-duplicate
|
||||
// sizes, making sure that they are entered in numerical order.
|
||||
int CALLBACK EnumFontFamExProcSizes(const ENUMLOGFONTEX *lpelfe,
|
||||
const NEWTEXTMETRICEX *lpntme,
|
||||
DWORD FontType,
|
||||
LPARAM lParam)
|
||||
//=============================================================================
|
||||
{
|
||||
// the lParam is a pointer to the size combobox
|
||||
CComboBox *pCombo = (CComboBox *) lParam;
|
||||
ASSERT(pCombo);
|
||||
ASSERT(IsWindow(pCombo->m_hWnd));
|
||||
|
||||
int nFontHeight = lpntme->ntmTm.tmHeight - lpntme->ntmTm.tmInternalLeading;
|
||||
int nPointSize = FontSize.GetFontPointSize(nFontHeight);
|
||||
|
||||
TRACE(_T("_____ %s nPointSize=%d FontType=0x%X\n"),
|
||||
lpelfe->elfLogFont.lfFaceName,
|
||||
nPointSize,
|
||||
FontType);
|
||||
|
||||
TCHAR szSize[100];
|
||||
_stprintf(szSize, _T("%d"), nPointSize);
|
||||
|
||||
if (pCombo->FindStringExact(-1, szSize) == CB_ERR)
|
||||
{
|
||||
// size is not in list
|
||||
|
||||
// the sizes are not always enumerated in numerical order,
|
||||
// so we have to check where to insert this size
|
||||
// (example: Terminal font)
|
||||
|
||||
BOOL bAdded = FALSE;
|
||||
int n = 0;
|
||||
int count = pCombo->GetCount();
|
||||
TCHAR szEntry[100];
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
szEntry[0] = 0;
|
||||
pCombo->GetLBText(i, szEntry);
|
||||
n = _ttoi(szEntry);
|
||||
if (nPointSize < n)
|
||||
{
|
||||
VERIFY(pCombo->InsertString(i, szSize) >= 0);
|
||||
bAdded = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bAdded)
|
||||
VERIFY(pCombo->AddString(szSize) >= 0);
|
||||
}
|
||||
|
||||
return TRUE; // continue enumeration
|
||||
}
|
||||
#pragma warning(pop)
|
||||
@@ -1,152 +0,0 @@
|
||||
// XMonoFontDialog.h Version 1.1
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef XMONOFONTDIALOG_H
|
||||
#define XMONOFONTDIALOG_H
|
||||
|
||||
#include "XMonoFontListCombo.h"
|
||||
|
||||
//=============================================================================
|
||||
// font filters
|
||||
//=============================================================================
|
||||
#define XFONT_SHOW_SYMBOL 0x01 // show symbol fonts
|
||||
#define XFONT_SHOW_MONOSPACED 0x02 // show monospaced fonts
|
||||
#define XFONT_SHOW_BOLD 0x04 // show bold fonts
|
||||
#define XFONT_SHOW_ITALIC 0x08 // show italic fonts
|
||||
#define XFONT_SHOW_NORMAL 0x10 // show normal fonts
|
||||
#define XFONT_SHOW_ALL 0xFF // show all
|
||||
|
||||
//=============================================================================
|
||||
// bit definitions for m_dwXFontFlags
|
||||
//=============================================================================
|
||||
#define XFONT_TRUETYPE 0x00000001
|
||||
#define XFONT_OPENTYPE 0x00000002
|
||||
#define XFONT_RASTER 0x00000004
|
||||
#define XFONT_VECTOR 0x00000008
|
||||
#define XFONT_FAMILY_MASK 0x000000F0
|
||||
#define XFONT_BOLD 0x00000100
|
||||
#define XFONT_ITALIC 0x00000200
|
||||
#define XFONT_SYMBOL 0x00000400
|
||||
#define XFONT_MONOSPACED 0x00000800
|
||||
#define XFONT_OEM 0x00001000
|
||||
#define XFONT_WEIGHT_MASK 0x0FFF0000
|
||||
|
||||
//=============================================================================
|
||||
class CXMonoFontDialog : public CDialog
|
||||
//=============================================================================
|
||||
{
|
||||
DECLARE_DYNAMIC(CXMonoFontDialog)
|
||||
|
||||
// Construction
|
||||
public:
|
||||
CXMonoFontDialog(LPLOGFONT lplfInitial = NULL,
|
||||
DWORD dwFlags = 0,
|
||||
CDC *pdcPrinter = NULL,
|
||||
CWnd *pParentWnd = NULL);
|
||||
virtual ~CXMonoFontDialog();
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CXMonoFontDialog)
|
||||
CXMonoFontListCombo m_FontList;
|
||||
CComboBox m_FontSizes;
|
||||
CStatic m_Sample;
|
||||
CStatic m_MonospacedLabel;
|
||||
//}}AFX_DATA
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// CFontDialog
|
||||
COLORREF GetColor() const { return RGB(0,0,0); }
|
||||
void GetCurrentFont(LPLOGFONT lplf);
|
||||
CString GetFaceName() const { return m_strFaceName; }
|
||||
int GetSize() const { return 10*m_nPointSize; }
|
||||
CString GetStyleName() const { return _T(""); }
|
||||
int GetWeight() const
|
||||
{ return (m_dwXFontFlags & XFONT_WEIGHT_MASK) >> 16; }
|
||||
// the following 4 functions report the selection in the style combo,
|
||||
// which we do not use
|
||||
BOOL IsBold() const { return FALSE; }
|
||||
BOOL IsItalic() const { return FALSE; }
|
||||
BOOL IsStrikeOut() const { return FALSE; }
|
||||
BOOL IsUnderline() const { return FALSE; }
|
||||
|
||||
// CXMonoFontDialog
|
||||
CString GetCaption() { return m_strCaption; }
|
||||
DWORD GetFontData() { return m_dwXFontFlags; }
|
||||
DWORD GetFontFilter() { return m_dwFontFilter; }
|
||||
CString GetSampleText() { return m_strSampleText; }
|
||||
LONG GetTmHeight() { return m_Height; }
|
||||
BOOL IsMonospaced() { return (m_dwXFontFlags & XFONT_MONOSPACED); }
|
||||
BOOL IsOpenType() { return (m_dwXFontFlags & XFONT_OPENTYPE); }
|
||||
BOOL IsSymbol() { return (m_dwXFontFlags & XFONT_SYMBOL); }
|
||||
BOOL IsTrueType() { return (m_dwXFontFlags & XFONT_TRUETYPE); }
|
||||
BOOL IsVector() { return (m_dwXFontFlags & XFONT_VECTOR); }
|
||||
CXMonoFontDialog& SetCaption(LPCTSTR strCaption)
|
||||
{ m_strCaption = strCaption; return *this; }
|
||||
CXMonoFontDialog& SetFontFilter(DWORD dwFontFilter)
|
||||
{ m_dwFontFilter = dwFontFilter; return *this; }
|
||||
CXMonoFontDialog& SetMonospacedLabel(LPCTSTR lpszLabel)
|
||||
{ m_strMonospacedLabel = lpszLabel; return *this; }
|
||||
CXMonoFontDialog& SetSampleText(LPCTSTR lpszSampleText)
|
||||
{ m_strSampleText = lpszSampleText; return *this; }
|
||||
CXMonoFontDialog& ShowMonospacedLabel(BOOL bShow)
|
||||
{ m_bShowMonospacedLabel = bShow; return *this; }
|
||||
CXMonoFontDialog& ShowMonospacedAsBold(BOOL bShow)
|
||||
{ m_bShowMonospacedAsBold = bShow; return *this; }
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CXMonoFontDialog)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
LOGFONT m_lfInitial;
|
||||
CFont m_SampleFont;
|
||||
CString m_strCaption;
|
||||
CString m_strSampleText;
|
||||
CString m_strMonospacedLabel;
|
||||
DWORD m_dwFontFilter;
|
||||
BOOL m_bShowMonospacedLabel;
|
||||
BOOL m_bShowMonospacedAsBold;
|
||||
CImageList m_FontType;
|
||||
|
||||
// current font
|
||||
CString m_strFaceName;
|
||||
LONG m_Height;
|
||||
int m_nPointSize;
|
||||
LOGFONT m_lfCurrent;
|
||||
DWORD m_dwXFontFlags;
|
||||
|
||||
void SetCurFont();
|
||||
|
||||
//{{AFX_MSG(CXMonoFontDialog)
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSelchangeFontList();
|
||||
afx_msg void OnSelchangeFontSize();
|
||||
afx_msg void OnEditchangeFontSize();
|
||||
afx_msg void OnTimer(UINT nIDEvent);
|
||||
virtual void OnOK();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif //XMONOFONTDIALOG_H
|
||||
@@ -1,110 +0,0 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "XMonoFontDialogRes.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
|
||||
"XMonoFontDialogRes.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_XMONOFONTDIALOG DIALOG DISCARDABLE 0, 0, 235, 170
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Font"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "&Font:",IDC_STATIC,11,7,17,8
|
||||
LTEXT "MONOSPACED",IDC_FONT_MONOSPACED,49,7,55,8,NOT
|
||||
WS_VISIBLE
|
||||
LTEXT "&Size:",IDC_STATIC,144,7,30,9,NOT WS_GROUP
|
||||
COMBOBOX IDC_FONT_LIST,10,16,130,97,CBS_SIMPLE |
|
||||
CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT |
|
||||
CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
COMBOBOX IDC_FONT_SIZE,144,16,30,97,CBS_SIMPLE |
|
||||
CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
|
||||
GROUPBOX "Sample",IDC_STATIC,10,118,215,43,WS_GROUP
|
||||
CTEXT "AaBbYyZz 0123456789",IDC_FONT_SAMPLE,15,129,205,25,
|
||||
SS_NOPREFIX | SS_CENTERIMAGE
|
||||
DEFPUSHBUTTON "OK",IDOK,182,16,44,14,WS_GROUP
|
||||
PUSHBUTTON "Cancel",IDCANCEL,182,34,44,14,WS_GROUP
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_XMONOFONTDIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 163
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by XMonoFontDialog.rc
|
||||
//
|
||||
//#define IDD_XMONOFONTDIALOG 999
|
||||
#define IDC_FONT_LIST 1001
|
||||
#define IDC_FONT_SIZE 1002
|
||||
#define IDC_FONT_SAMPLE 1003
|
||||
#define IDC_FONT_MONOSPACED 1004
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1005
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
@@ -1,52 +0,0 @@
|
||||
// XMonoFontDialogTest.cpp : Defines the class behaviors for the application.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "XMonoFontDialogTest.h"
|
||||
#include "XMonoFontDialogTestDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXMonoFontDialogTestApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CXMonoFontDialogTestApp, CWinApp)
|
||||
//{{AFX_MSG_MAP(CXMonoFontDialogTestApp)
|
||||
//}}AFX_MSG
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXMonoFontDialogTestApp construction
|
||||
|
||||
CXMonoFontDialogTestApp::CXMonoFontDialogTestApp()
|
||||
{
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// The one and only CXMonoFontDialogTestApp object
|
||||
|
||||
CXMonoFontDialogTestApp theApp;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXMonoFontDialogTestApp initialization
|
||||
|
||||
BOOL CXMonoFontDialogTestApp::InitInstance()
|
||||
{
|
||||
#if _MFC_VER < 0x700
|
||||
#ifdef _AFXDLL
|
||||
Enable3dControls(); // Call this when using MFC in a shared DLL
|
||||
#else
|
||||
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
||||
#endif
|
||||
#endif
|
||||
|
||||
CXMonoFontDialogTestDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
dlg.DoModal();
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
// XMonoFontDialogTest.h
|
||||
//
|
||||
|
||||
#ifndef XMONOFONTDIALOGTEST_H
|
||||
#define XMONOFONTDIALOGTEST_H
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error include 'stdafx.h' before including this file for PCH
|
||||
#endif
|
||||
|
||||
#include "resource.h" // main symbols
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CXMonoFontDialogTestApp:
|
||||
// See XMonoFontDialogTest.cpp for the implementation of this class
|
||||
//
|
||||
|
||||
class CXMonoFontDialogTestApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CXMonoFontDialogTestApp();
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CXMonoFontDialogTestApp)
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
|
||||
//{{AFX_MSG(CXMonoFontDialogTestApp)
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif //XMONOFONTDIALOGTEST_H
|
||||
@@ -1,258 +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 ""afxres.rc"" // Standard components\r\n"
|
||||
"#include ""XMonoFontDialog.rc""\r\n"
|
||||
"#endif\r\n"
|
||||
"#ifdef _VC60\r\n"
|
||||
"/////////////////////////////////////////////////////////////////////////////\r\n"
|
||||
"//\r\n"
|
||||
"// 24\r\n"
|
||||
"//\r\n"
|
||||
"1 24 MOVEABLE PURE ""app.manifest""\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON DISCARDABLE "hans.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 270, 131
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About XMonoFontDialogTest"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,11,14,20,20,SS_CENTERIMAGE |
|
||||
WS_BORDER
|
||||
LTEXT "XMonoFontDialogTest Version 1.1",IDC_STATIC,40,13,140,8,
|
||||
SS_NOPREFIX
|
||||
LTEXT "Copyright © 2008 Hans Dietrich",IDC_STATIC,40,27,165,8
|
||||
LTEXT "This software is released into the public domain. You are free to use it in any way you like.",
|
||||
IDC_STATIC,40,43,165,18
|
||||
LTEXT "This software is provided ""as is"" with no expressed or implied warranty. I accept no liability for any damage or loss of business that this software may cause. ",
|
||||
IDC_STATIC,40,67,165,34
|
||||
LTEXT "Send email to Hans Dietrich",IDC_ABOUT_EMAIL,90,113,90,
|
||||
8,SS_CENTERIMAGE
|
||||
DEFPUSHBUTTON "OK",IDOK,209,9,50,14,WS_GROUP
|
||||
END
|
||||
|
||||
IDD_XMONOFONTDIALOGTEST_DIALOG DIALOGEX 0, 0, 305, 262
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "XMonoFontDialogTest"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
GROUPBOX "Sample",IDC_GROUPBOX,10,8,285,50,WS_GROUP
|
||||
CTEXT "This is a sample 0123456789",IDC_SAMPLE,20,16,265,40,
|
||||
SS_CENTERIMAGE
|
||||
LTEXT "",IDC_PROPERTIES,10,58,285,10,SS_SUNKEN
|
||||
LTEXT "Note: GetSize() returns tenths of a point",IDC_NOTE,13,
|
||||
69,157,8,NOT WS_VISIBLE
|
||||
GROUPBOX "Filters",IDC_STATIC,10,84,285,56,WS_GROUP
|
||||
CONTROL "Show all fonts",IDC_ALL_FONTS,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,97,60,10
|
||||
CONTROL "Show symbol fonts only",IDC_SYMBOL,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_TABSTOP,18,108,89,10
|
||||
CONTROL "Show all fonts except symbol fonts",IDC_EXCEPT_SYMBOL,
|
||||
"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,119,124,10
|
||||
CONTROL "Show monospaced fonts only",IDC_MONOSPACED,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_TABSTOP,148,97,109,10
|
||||
CONTROL "Show all fonts except monospaced fonts",
|
||||
IDC_EXCEPT_MONOSPACED,"Button",BS_AUTORADIOBUTTON |
|
||||
WS_TABSTOP,148,108,143,10
|
||||
CONTROL "Show all fonts except monospaced and symbol fonts",
|
||||
IDC_EXCEPT_MONOSPACED_AND_SYMBOL,"Button",
|
||||
BS_AUTORADIOBUTTON | BS_TOP | BS_MULTILINE | WS_TABSTOP,
|
||||
148,119,141,16
|
||||
GROUPBOX "Sample Text",IDC_STATIC,10,186,285,35,WS_GROUP
|
||||
EDITTEXT IDC_SAMPLE_TEXT,20,200,265,12,ES_AUTOHSCROLL | WS_GROUP
|
||||
PUSHBUTTON "CFontDialog",IDC_TEST2,10,230,80,23,WS_GROUP
|
||||
DEFPUSHBUTTON "CXMonoFontDialog",IDC_TEST,106,230,94,23
|
||||
PUSHBUTTON "Help",IDC_ONLINE_HELP,215,230,80,23
|
||||
GROUPBOX "Monospaced Options",IDC_STATIC,10,146,285,34,WS_GROUP
|
||||
CONTROL "Show Monospaced Label",IDC_SHOW_MONOSPACED_LABEL,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,19,161,99,10
|
||||
CONTROL "Show Monospaced As Bold",IDC_SHOW_MONOSPACED_AS_BOLD,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,148,161,105,10
|
||||
END
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,1,0,1
|
||||
PRODUCTVERSION 1,1,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904B0"
|
||||
BEGIN
|
||||
VALUE "Article", "www.codeproject.com\0"
|
||||
VALUE "E-mail", "hdietrich@gmail.com\0"
|
||||
VALUE "FileDescription", "XMonoFontDialogTest.exe\0"
|
||||
VALUE "FileVersion", "1, 1, 0, 1\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2008 Hans Dietrich\0"
|
||||
VALUE "OriginalFilename", "XMonoFontDialogTest.exe\0"
|
||||
VALUE "ProductName", "XMonoFontDialogTest\0"
|
||||
VALUE "ProductVersion", "1, 1, 0, 1\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 48
|
||||
END
|
||||
|
||||
IDD_XMONOFONTDIALOGTEST_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 298
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 255
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ABOUTBOX "&About XMonoFontDialogTest..."
|
||||
IDS_MAILTO "mailto:hdietrich@gmail.com?subject=XMonoFontDialog"
|
||||
IDS_ONLINE_HELP "http://www.codeproject.com/KB/dialog/XMonoFontDialog.aspx"
|
||||
END
|
||||
|
||||
#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 "afxres.rc" // Standard components
|
||||
#include "XMonoFontDialog.rc"
|
||||
#endif
|
||||
#ifdef _VC60
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 24
|
||||
//
|
||||
1 24 MOVEABLE PURE "app.manifest"
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -1,341 +0,0 @@
|
||||
// XMonoFontDialogTestDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "XMonoFontDialogTest.h"
|
||||
#include "XMonoFontDialogTestDlg.h"
|
||||
#include "XMonoFontDialog.h"
|
||||
#include "about.h"
|
||||
#include "XTrace.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
#pragma warning(disable : 4996) // disable bogus deprecation warning
|
||||
|
||||
//=============================================================================
|
||||
BEGIN_MESSAGE_MAP(CXMonoFontDialogTestDlg, CDialog)
|
||||
//=============================================================================
|
||||
//{{AFX_MSG_MAP(CXMonoFontDialogTestDlg)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_BN_CLICKED(IDC_TEST, OnCXMonoFontDialog)
|
||||
ON_BN_CLICKED(IDC_TEST2, OnCFontDialog)
|
||||
ON_BN_CLICKED(IDC_ONLINE_HELP, OnOnlineHelp)
|
||||
ON_WM_CTLCOLOR()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontDialogTestDlg::CXMonoFontDialogTestDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CXMonoFontDialogTestDlg::IDD, pParent)
|
||||
//=============================================================================
|
||||
{
|
||||
//{{AFX_DATA_INIT(CXMonoFontDialogTestDlg)
|
||||
m_nFonts = 0;
|
||||
m_strSampleText = _T("AaBbYyZz 0123456789");
|
||||
m_bShowMonospacedAsBold = TRUE;
|
||||
m_bShowMonospacedLabel = TRUE;
|
||||
//}}AFX_DATA_INIT
|
||||
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontDialogTestDlg::~CXMonoFontDialogTestDlg()
|
||||
//=============================================================================
|
||||
{
|
||||
m_font.DeleteObject();
|
||||
m_buttonfont.DeleteObject();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialogTestDlg::DoDataExchange(CDataExchange* pDX)
|
||||
//=============================================================================
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CXMonoFontDialogTestDlg)
|
||||
DDX_Control(pDX, IDC_NOTE, m_Note);
|
||||
DDX_Control(pDX, IDC_PROPERTIES, m_Properties);
|
||||
DDX_Control(pDX, IDC_SAMPLE, m_Sample);
|
||||
DDX_Radio(pDX, IDC_ALL_FONTS, m_nFonts);
|
||||
DDX_Text(pDX, IDC_SAMPLE_TEXT, m_strSampleText);
|
||||
DDX_Check(pDX, IDC_SHOW_MONOSPACED_AS_BOLD, m_bShowMonospacedAsBold);
|
||||
DDX_Check(pDX, IDC_SHOW_MONOSPACED_LABEL, m_bShowMonospacedLabel);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
BOOL CXMonoFontDialogTestDlg::OnInitDialog()
|
||||
//=============================================================================
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// Add "About..." menu item to system menu.
|
||||
|
||||
// IDM_ABOUTBOX must be in the system command range.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// Set the icon for this dialog. The framework does this automatically
|
||||
// when the application's main window is not a dialog
|
||||
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||
|
||||
m_Sample.SetWindowText(m_strSampleText);
|
||||
|
||||
// create font for sample
|
||||
LOGFONT lf;
|
||||
CFont *pFont = GetFont();
|
||||
pFont->GetLogFont(&lf);
|
||||
m_nHeight = lf.lfHeight;
|
||||
m_strFaceName = lf.lfFaceName;
|
||||
m_font.CreateFontIndirect(&lf);
|
||||
m_Sample.SetFont(&m_font);
|
||||
|
||||
if (lf.lfHeight < 0)
|
||||
lf.lfHeight -= 1;
|
||||
else
|
||||
lf.lfHeight += 1;
|
||||
//lf.lfWeight = FW_BOLD;
|
||||
m_buttonfont.CreateFontIndirect(&lf);
|
||||
GetDlgItem(IDC_TEST)->SetFont(&m_buttonfont);
|
||||
GetDlgItem(IDC_TEST2)->SetFont(&m_buttonfont);
|
||||
GetDlgItem(IDC_ONLINE_HELP)->SetFont(&m_buttonfont);
|
||||
|
||||
// display font name in sample groupbox
|
||||
GetDlgItem(IDC_GROUPBOX)->SetWindowText(lf.lfFaceName);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialogTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
//=============================================================================
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialogTestDlg::OnPaint()
|
||||
//=============================================================================
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
|
||||
|
||||
// Center icon in client rectangle
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// Draw the icon
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
HCURSOR CXMonoFontDialogTestDlg::OnQueryDragIcon()
|
||||
//=============================================================================
|
||||
{
|
||||
return (HCURSOR) m_hIcon;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialogTestDlg::OnCXMonoFontDialog()
|
||||
//=============================================================================
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
|
||||
// get font for current dialog, just to fill in LOGFONT
|
||||
LOGFONT lf;
|
||||
CFont *pFont = GetFont();
|
||||
pFont->GetLogFont(&lf);
|
||||
|
||||
// use last font height
|
||||
lf.lfHeight = m_nHeight;
|
||||
|
||||
// use last face name
|
||||
_tcscpy(lf.lfFaceName, m_strFaceName);
|
||||
TRACE(_T("m_strFaceName=%s\n"), m_strFaceName);
|
||||
|
||||
// display CXMonoFontDialog
|
||||
CXMonoFontDialog dlg(&lf);
|
||||
|
||||
DWORD dwFonts = XFONT_SHOW_ALL;
|
||||
|
||||
// get font filters
|
||||
switch (m_nFonts)
|
||||
{
|
||||
case 0:
|
||||
dwFonts = XFONT_SHOW_ALL;
|
||||
break;
|
||||
case 1:
|
||||
dwFonts = XFONT_SHOW_SYMBOL;
|
||||
break;
|
||||
case 2:
|
||||
dwFonts &= ~XFONT_SHOW_SYMBOL;
|
||||
break;
|
||||
case 3:
|
||||
dwFonts = XFONT_SHOW_MONOSPACED;
|
||||
break;
|
||||
case 4:
|
||||
dwFonts &= ~XFONT_SHOW_MONOSPACED;
|
||||
break;
|
||||
case 5:
|
||||
dwFonts &= ~(XFONT_SHOW_MONOSPACED|XFONT_SHOW_SYMBOL);
|
||||
break;
|
||||
default:
|
||||
dwFonts = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
dlg.SetFontFilter(dwFonts)
|
||||
.SetCaption(_T("XMonoFontDialog"))
|
||||
.SetSampleText(m_strSampleText)
|
||||
.ShowMonospacedLabel(m_bShowMonospacedLabel)
|
||||
.ShowMonospacedAsBold(m_bShowMonospacedAsBold);
|
||||
|
||||
if (dlg.DoModal() == IDOK)
|
||||
{
|
||||
// display properties for selected font
|
||||
CString strProperties = _T("");
|
||||
strProperties.Format(_T(" tmHeight = %d "), dlg.GetTmHeight());
|
||||
CString str;
|
||||
str.Format(_T("GetSize() = %d "), dlg.GetSize());
|
||||
strProperties += str;
|
||||
if (dlg.IsMonospaced())
|
||||
strProperties += _T("Monospaced ");
|
||||
if (dlg.IsSymbol())
|
||||
strProperties += _T("Symbol ");
|
||||
if (dlg.IsTrueType())
|
||||
strProperties += _T("TrueType ");
|
||||
if (dlg.IsOpenType())
|
||||
strProperties += _T("OpenType ");
|
||||
if (dlg.IsVector())
|
||||
strProperties += _T("Vector ");
|
||||
m_Properties.SetWindowText(strProperties);
|
||||
|
||||
m_Note.ShowWindow(SW_SHOW);
|
||||
|
||||
dlg.GetCurrentFont(&lf);
|
||||
TRACE(_T("lfCharSet=%d\n"), lf.lfCharSet);
|
||||
|
||||
m_nHeight = lf.lfHeight;
|
||||
m_strFaceName = lf.lfFaceName;
|
||||
|
||||
GetDlgItem(IDC_GROUPBOX)->SetWindowText(lf.lfFaceName);
|
||||
m_font.DeleteObject();
|
||||
m_font.CreateFontIndirect(&lf);
|
||||
m_Sample.SetWindowText(m_strSampleText);
|
||||
m_Sample.SetFont(&m_font);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialogTestDlg::OnCFontDialog()
|
||||
//=============================================================================
|
||||
{
|
||||
TRACE(_T("in CXMonoFontDialogTestDlg::OnCFontDialog\n"));
|
||||
UpdateData(TRUE);
|
||||
|
||||
// get font for current dialog, just to fill in LOGFONT
|
||||
LOGFONT lf;
|
||||
CFont *pFont = GetFont();
|
||||
pFont->GetLogFont(&lf);
|
||||
|
||||
// use last font height
|
||||
lf.lfHeight = m_nHeight;
|
||||
|
||||
// use last face name
|
||||
_tcscpy(lf.lfFaceName, m_strFaceName);
|
||||
|
||||
// display CFontDialog
|
||||
CFontDialog dlg(&lf);
|
||||
|
||||
if (m_nFonts == 3)
|
||||
dlg.m_cf.Flags |= CF_FIXEDPITCHONLY;
|
||||
|
||||
dlg.m_cf.Flags |= CF_PRINTERFONTS;
|
||||
|
||||
//dlg.m_cf.Flags &= ~CF_EFFECTS; // remove the Effects controls
|
||||
//dlg.m_cf.Flags |= CF_NOSCRIPTSEL; // disable the script combo
|
||||
|
||||
if (dlg.DoModal() == IDOK)
|
||||
{
|
||||
CString strProperties = _T("");
|
||||
CString str;
|
||||
str.Format(_T(" GetSize() = %d "), dlg.GetSize());
|
||||
strProperties += str;
|
||||
m_Properties.SetWindowText(strProperties);
|
||||
|
||||
m_Note.ShowWindow(SW_SHOW);
|
||||
|
||||
dlg.GetCurrentFont(&lf);
|
||||
|
||||
m_nHeight = lf.lfHeight;
|
||||
m_strFaceName = lf.lfFaceName;
|
||||
TRACE(_T("lfCharSet=%d\n"), lf.lfCharSet);
|
||||
//TRACE(_T("GetStyleName=%s\n"), dlg.GetStyleName());
|
||||
TRACE(_T("IsBold=%d lfWeight=%d\n"), dlg.IsBold(), lf.lfWeight);
|
||||
|
||||
GetDlgItem(IDC_GROUPBOX)->SetWindowText(lf.lfFaceName);
|
||||
m_font.DeleteObject();
|
||||
m_font.CreateFontIndirect(&lf);
|
||||
m_Sample.SetWindowText(m_strSampleText);
|
||||
m_Sample.SetFont(&m_font);
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontDialogTestDlg::OnOnlineHelp()
|
||||
//=============================================================================
|
||||
{
|
||||
CString strHelp = _T("");
|
||||
VERIFY(strHelp.LoadString(IDS_ONLINE_HELP));
|
||||
CXHyperLink::GotoURL(strHelp, SW_SHOW, TRUE);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
HBRUSH CXMonoFontDialogTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
//=============================================================================
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
CWnd *pNote = GetDlgItem(IDC_NOTE);
|
||||
if (pWnd->m_hWnd == pNote->m_hWnd)
|
||||
pDC->SetTextColor(RGB(0,0,255));
|
||||
return hbr;
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
// XMonoFontDialogTestDlg.h : header file
|
||||
//
|
||||
|
||||
#ifndef XMONOFONTDIALOGTESTDLG_H
|
||||
#define XMONOFONTDIALOGTESTDLG_H
|
||||
|
||||
//=============================================================================
|
||||
class CXMonoFontDialogTestDlg : public CDialog
|
||||
//=============================================================================
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CXMonoFontDialogTestDlg(CWnd* pParent = NULL); // standard constructor
|
||||
virtual ~CXMonoFontDialogTestDlg();
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CXMonoFontDialogTestDlg)
|
||||
enum { IDD = IDD_XMONOFONTDIALOGTEST_DIALOG };
|
||||
CStatic m_Note;
|
||||
CStatic m_Properties;
|
||||
CStatic m_Sample;
|
||||
int m_nFonts;
|
||||
CString m_strSampleText;
|
||||
BOOL m_bShowMonospacedAsBold;
|
||||
BOOL m_bShowMonospacedLabel;
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CXMonoFontDialogTestDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
CFont m_font;
|
||||
CFont m_buttonfont;
|
||||
CString m_strFaceName;
|
||||
int m_nHeight;
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CXMonoFontDialogTestDlg)
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
afx_msg void OnCXMonoFontDialog();
|
||||
afx_msg void OnCFontDialog();
|
||||
afx_msg void OnOnlineHelp();
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif //XMONOFONTDIALOGTESTDLG_H
|
||||
@@ -1,535 +0,0 @@
|
||||
// XMonoFontListCombo.cpp
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// Description:
|
||||
// XMonoFontListCombo.cpp implements CXMonoFontListCombo, a class used by
|
||||
// CXMonoFontDialog to display font names.
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "XMonoFontListCombo.h"
|
||||
#include "XMonoFontDialog.h"
|
||||
#include "XFontSize.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
#ifndef __noop
|
||||
#if _MSC_VER < 1300
|
||||
#define __noop ((void)0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef TRACE
|
||||
#define TRACE __noop
|
||||
|
||||
//=============================================================================
|
||||
// if you want to see the TRACE output, uncomment this line:
|
||||
//#include "XTrace.h"
|
||||
//=============================================================================
|
||||
|
||||
#pragma warning(disable : 4996) // disable bogus deprecation warning
|
||||
|
||||
#define GLYPH_SIZE 12
|
||||
#define TIMER_INIT 1
|
||||
|
||||
static int CALLBACK EnumFontFamExProc(const ENUMLOGFONTEX *lpelfe,
|
||||
const NEWTEXTMETRICEX *lpntme,
|
||||
DWORD FontType,
|
||||
LPARAM lParam);
|
||||
|
||||
//=============================================================================
|
||||
BEGIN_MESSAGE_MAP(CXMonoFontListCombo, CComboBox)
|
||||
//=============================================================================
|
||||
//{{AFX_MSG_MAP(CXMonoFontListCombo)
|
||||
ON_WM_TIMER()
|
||||
ON_WM_CTLCOLOR()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontListCombo::CXMonoFontListCombo()
|
||||
//=============================================================================
|
||||
{
|
||||
m_bShowMonospacedAsBold = TRUE;
|
||||
m_pDC = 0;
|
||||
m_dwFontFilter = 0;
|
||||
|
||||
memset(&m_lfInitial, 0, sizeof(LOGFONT));
|
||||
m_lfInitial.lfCharSet = DEFAULT_CHARSET;
|
||||
_tcscpy(m_lfInitial.lfFaceName, _T("Courier"));
|
||||
m_lfInitial.lfHeight = FontSize.GetFontHeight(8);
|
||||
memcpy(&m_lfCurrent, &m_lfInitial, sizeof(LOGFONT));
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontListCombo::~CXMonoFontListCombo()
|
||||
//=============================================================================
|
||||
{
|
||||
if (m_BoldFont.GetSafeHandle())
|
||||
m_BoldFont.DeleteObject();
|
||||
m_FontType.DeleteImageList();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListCombo::PreSubclassWindow()
|
||||
//=============================================================================
|
||||
{
|
||||
TRACE(_T("in CXMonoFontListCombo::PreSubclassWindow\n"));
|
||||
|
||||
TRACE(_T("m_dwFontFilter=%X\n"), m_dwFontFilter);
|
||||
|
||||
CreateFontTypeImages();
|
||||
|
||||
CFont *pFont = GetFont();
|
||||
if (!pFont)
|
||||
pFont = GetParent()->GetFont();
|
||||
if (pFont)
|
||||
{
|
||||
LOGFONT lf;
|
||||
pFont->GetLogFont(&lf);
|
||||
lf.lfWeight = FW_BOLD;
|
||||
m_BoldFont.CreateFontIndirect(&lf);
|
||||
}
|
||||
|
||||
// enumerate fonts, fill combo
|
||||
LOGFONT lf;
|
||||
memset(&lf, 0, sizeof(LOGFONT));
|
||||
lf.lfCharSet = DEFAULT_CHARSET;
|
||||
|
||||
m_pDC = GetDC(); // use one dc for enumeration
|
||||
if (m_pDC)
|
||||
{
|
||||
int nSavedDC = m_pDC->SaveDC();
|
||||
EnumFontFamiliesEx(m_pDC->m_hDC,
|
||||
&lf,
|
||||
(FONTENUMPROC)EnumFontFamExProc,
|
||||
(LPARAM)this,
|
||||
0);
|
||||
TEXTMETRIC tm;
|
||||
m_pDC->GetTextMetrics(&tm);
|
||||
m_pDC->RestoreDC(nSavedDC);
|
||||
ReleaseDC(m_pDC);
|
||||
|
||||
// set height of edit box and combo list entries
|
||||
int h = tm.tmHeight - tm.tmInternalLeading;
|
||||
SetItemHeight(0, h);
|
||||
SetItemHeight(-1, h);
|
||||
}
|
||||
m_pDC = 0;
|
||||
|
||||
// select initial font
|
||||
int index = FindStringExact(-1, m_lfInitial.lfFaceName);
|
||||
if (index == CB_ERR)
|
||||
{
|
||||
if (GetCount() > 0)
|
||||
index = 0;
|
||||
}
|
||||
m_CurIndex = index;
|
||||
if (index >= 0)
|
||||
{
|
||||
SetCurSel(index);
|
||||
SetTimer(TIMER_INIT, 50, 0);
|
||||
}
|
||||
|
||||
TRACE(_T("exiting CXMonoFontListCombo::PreSubclassWindow\n"));
|
||||
CComboBox::PreSubclassWindow();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListCombo::CreateFontTypeImages()
|
||||
//=============================================================================
|
||||
{
|
||||
ASSERT(m_FontType.GetSafeHandle() == 0);
|
||||
|
||||
// We load the font type images from resource 38 in COMDLG32.DLL.
|
||||
// This bitmap is 100 x 24, and has 2 rows of 5 images
|
||||
HMODULE hModule = ::LoadLibraryEx(_T("COMDLG32.DLL"), NULL,
|
||||
DONT_RESOLVE_DLL_REFERENCES);
|
||||
ASSERT(hModule);
|
||||
if (!hModule)
|
||||
return;
|
||||
HBITMAP hBmp = (HBITMAP)::LoadImage(hModule, MAKEINTRESOURCE(38),
|
||||
IMAGE_BITMAP, 100, 24, LR_DEFAULTCOLOR);
|
||||
::FreeLibrary(hModule);
|
||||
ASSERT(hBmp);
|
||||
if (!hBmp)
|
||||
return;
|
||||
|
||||
CClientDC dcClient(this);
|
||||
|
||||
// We create one image list for the selected and non-selected
|
||||
// glyphs. The images are:
|
||||
// 0 - TrueType non-selected
|
||||
// 1 - OpenType non-selected
|
||||
// 2 - TrueType selected
|
||||
// 3 - OpenType selected
|
||||
|
||||
if (m_FontType.Create(GLYPH_SIZE, GLYPH_SIZE, ILC_COLOR32 | ILC_MASK, 4, 1))
|
||||
{
|
||||
CDC dcMem;
|
||||
dcMem.CreateCompatibleDC(&dcClient);
|
||||
CBitmap *pBmp = CBitmap::FromHandle(hBmp);
|
||||
CBitmap *pOldBitmap = dcMem.SelectObject(pBmp);
|
||||
|
||||
// dcMem now contains the 100 x 24 bitmap (2 rows) from COMDLG32.DLL.
|
||||
// The individual images are at 0, 20, 40, 60, and 80.
|
||||
// We want the images at 0 and 40 in each row.
|
||||
|
||||
CDC dcBitmap1;
|
||||
dcBitmap1.CreateCompatibleDC(&dcClient);
|
||||
CBitmap bmp1;
|
||||
bmp1.CreateCompatibleBitmap(&dcClient, 2*GLYPH_SIZE, GLYPH_SIZE);
|
||||
|
||||
// extract non-selected images from top row
|
||||
CBitmap *pOldBitmap1 = dcBitmap1.SelectObject(&bmp1);
|
||||
dcBitmap1.FillSolidRect(0, 0, 2*GLYPH_SIZE, GLYPH_SIZE, GetSysColor(COLOR_WINDOW));
|
||||
// we want 1st (TrueType) and 3rd (OpenType) images
|
||||
dcBitmap1.BitBlt(0, 0, GLYPH_SIZE, GLYPH_SIZE, &dcMem, 3, 0, SRCCOPY);
|
||||
dcBitmap1.BitBlt(GLYPH_SIZE, 0, GLYPH_SIZE, GLYPH_SIZE, &dcMem, 43, 0, SRCCOPY);
|
||||
dcBitmap1.SelectObject(pOldBitmap1);
|
||||
|
||||
m_FontType.Add(&bmp1, RGB(0,0,255)); // different mask color for each row
|
||||
|
||||
// extract selected images from 2nd row
|
||||
dcBitmap1.SelectObject(&bmp1);
|
||||
dcBitmap1.FillSolidRect(0, 0, 2*GLYPH_SIZE, GLYPH_SIZE, GetSysColor(COLOR_WINDOW));
|
||||
// we want 1st (TrueType) and 3rd (OpenType) images
|
||||
dcBitmap1.BitBlt(0, 0, GLYPH_SIZE, GLYPH_SIZE, &dcMem, 3, GLYPH_SIZE, SRCCOPY);
|
||||
dcBitmap1.BitBlt(GLYPH_SIZE, 0, GLYPH_SIZE, GLYPH_SIZE, &dcMem, 43, GLYPH_SIZE, SRCCOPY);
|
||||
dcBitmap1.SelectObject(pOldBitmap1);
|
||||
|
||||
m_FontType.Add(&bmp1, RGB(255,0,255)); // different mask color for each row
|
||||
|
||||
dcBitmap1.DeleteDC();
|
||||
bmp1.DeleteObject();
|
||||
|
||||
dcMem.SelectObject(pOldBitmap);
|
||||
dcMem.DeleteDC();
|
||||
}
|
||||
::DeleteObject(hBmp);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontListCombo& CXMonoFontListCombo::SetFont(LOGFONT& lf)
|
||||
//=============================================================================
|
||||
{
|
||||
memcpy(&m_lfInitial, &lf, sizeof(LOGFONT));
|
||||
memcpy(&m_lfCurrent, &lf, sizeof(LOGFONT));
|
||||
return *this;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListCombo::DrawItem(LPDRAWITEMSTRUCT lpDIS)
|
||||
//=============================================================================
|
||||
{
|
||||
if (lpDIS->itemID == -1)
|
||||
return;
|
||||
|
||||
ASSERT(lpDIS->CtlType == ODT_COMBOBOX);
|
||||
|
||||
CRect rect = lpDIS->rcItem;
|
||||
|
||||
int nSavedDC = ::SaveDC(lpDIS->hDC);
|
||||
|
||||
CDC dc;
|
||||
dc.Attach(lpDIS->hDC);
|
||||
|
||||
if (lpDIS->itemState & ODS_FOCUS)
|
||||
dc.DrawFocusRect(&rect);
|
||||
|
||||
COLORREF crText = ::GetSysColor(COLOR_WINDOWTEXT);
|
||||
COLORREF crBackground = ::GetSysColor(COLOR_WINDOW);
|
||||
|
||||
if (lpDIS->itemState & ODS_SELECTED)
|
||||
{
|
||||
crText = ::GetSysColor(COLOR_HIGHLIGHTTEXT);
|
||||
crBackground = ::GetSysColor(COLOR_HIGHLIGHT);
|
||||
}
|
||||
|
||||
dc.SetBkMode(TRANSPARENT);
|
||||
dc.SetTextColor(crText);
|
||||
dc.FillSolidRect(&rect, crBackground);
|
||||
|
||||
CString strFontName = _T("");
|
||||
GetLBText(lpDIS->itemID, strFontName);
|
||||
|
||||
// draw the font type glyph
|
||||
DWORD dwData = GetItemData(lpDIS->itemID);
|
||||
//TRACE(_T("dwData=0x%X for %s\n"), dwData, strFontName);
|
||||
|
||||
CPoint point(rect.left+3, rect.top);
|
||||
int nImage = -1;
|
||||
if (dwData & XFONT_TRUETYPE)
|
||||
nImage = 0;
|
||||
else if (dwData & XFONT_OPENTYPE)
|
||||
nImage = 1;
|
||||
if (nImage != -1)
|
||||
{
|
||||
if (lpDIS->itemState & ODS_SELECTED)
|
||||
nImage += 2;
|
||||
if (m_FontType.GetSafeHandle())
|
||||
m_FontType.Draw(&dc, nImage, point, ILD_TRANSPARENT);
|
||||
}
|
||||
|
||||
if ((dwData & XFONT_MONOSPACED) && m_bShowMonospacedAsBold)
|
||||
{
|
||||
if (m_BoldFont.GetSafeHandle())
|
||||
dc.SelectObject(&m_BoldFont);
|
||||
}
|
||||
|
||||
rect.left += GLYPH_SIZE + 8;
|
||||
|
||||
// draw the text
|
||||
dc.TextOut(rect.left, rect.top, strFontName);
|
||||
|
||||
dc.Detach();
|
||||
|
||||
::RestoreDC(lpDIS->hDC, nSavedDC);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
// This function is the enumeration callback for font names.
|
||||
// Its purpose is to fill the font combo with non-duplicate names,
|
||||
// and screen out unwanted fonts based on font filter.
|
||||
int CALLBACK EnumFontFamExProc(const ENUMLOGFONTEX *lpelfe,
|
||||
const NEWTEXTMETRICEX *lpntme,
|
||||
DWORD FontType,
|
||||
LPARAM lParam)
|
||||
//=============================================================================
|
||||
{
|
||||
CXMonoFontListCombo *pCombo = (CXMonoFontListCombo *) lParam;
|
||||
|
||||
ASSERT(lpelfe);
|
||||
ASSERT(lpntme);
|
||||
ASSERT(pCombo);
|
||||
if (!lpelfe || !lpntme || !pCombo)
|
||||
return FALSE; // something seriously wrong
|
||||
|
||||
if (pCombo->FindStringExact(-1, lpelfe->elfLogFont.lfFaceName) != CB_ERR)
|
||||
{
|
||||
// already in combo
|
||||
return TRUE; // continue enumeration
|
||||
}
|
||||
|
||||
// save font attributes - this will be stored in combobox item data
|
||||
|
||||
DWORD dwData = 0;
|
||||
UINT fonttype = lpntme->ntmTm.tmPitchAndFamily & 0x6;
|
||||
|
||||
if (fonttype == 0)
|
||||
dwData |= XFONT_RASTER;
|
||||
if (fonttype == 2)
|
||||
dwData |= XFONT_VECTOR;
|
||||
if (lpntme->ntmTm.tmCharSet == OEM_CHARSET)
|
||||
dwData |= XFONT_OEM;
|
||||
if (lpntme->ntmTm.tmCharSet == SYMBOL_CHARSET)
|
||||
dwData |= XFONT_SYMBOL;
|
||||
if (lpntme->ntmTm.tmWeight > 600)
|
||||
dwData |= XFONT_BOLD;
|
||||
if (lpntme->ntmTm.tmItalic)
|
||||
dwData |= XFONT_ITALIC;
|
||||
|
||||
DWORD weight = lpntme->ntmTm.tmWeight;
|
||||
weight = weight << 16;
|
||||
dwData |= weight;
|
||||
UINT family = lpntme->ntmTm.tmPitchAndFamily & 0xF0;
|
||||
dwData |= family;
|
||||
|
||||
// check if monospaced
|
||||
if (pCombo->m_pDC)
|
||||
{
|
||||
BOOL bMonoSpaced = FALSE;
|
||||
LOGFONT lf;
|
||||
memset(&lf, 0, sizeof(LOGFONT));
|
||||
_tcsncpy(lf.lfFaceName, lpelfe->elfLogFont.lfFaceName,
|
||||
sizeof(lf.lfFaceName)/sizeof(TCHAR)-1);
|
||||
lf.lfFaceName[sizeof(lf.lfFaceName)/sizeof(TCHAR)-1] = 0;
|
||||
lf.lfWeight = FW_NORMAL;
|
||||
lf.lfCharSet = DEFAULT_CHARSET;
|
||||
HFONT hFont = ::CreateFontIndirect(&lf);
|
||||
ASSERT(hFont);
|
||||
if (hFont)
|
||||
{
|
||||
// font is monospaced if
|
||||
// (1) width of W == width of !
|
||||
// (2) it is not a symbol font
|
||||
HFONT hFontOld = (HFONT)::SelectObject(pCombo->m_pDC->m_hDC, hFont);
|
||||
TEXTMETRIC tm;
|
||||
::GetTextMetrics(pCombo->m_pDC->m_hDC, &tm);
|
||||
SIZE sizeChar1;
|
||||
::GetTextExtentPoint32(pCombo->m_pDC->m_hDC, _T("W"), 1, &sizeChar1);
|
||||
SIZE sizeChar2;
|
||||
::GetTextExtentPoint32(pCombo->m_pDC->m_hDC, _T("!"), 1, &sizeChar2);
|
||||
bMonoSpaced = sizeChar1.cx == sizeChar2.cx;
|
||||
if (tm.tmCharSet == SYMBOL_CHARSET)
|
||||
bMonoSpaced = FALSE;
|
||||
if (hFontOld)
|
||||
::SelectObject(pCombo->m_pDC->m_hDC, hFontOld);
|
||||
::DeleteObject(hFont);
|
||||
}
|
||||
if (bMonoSpaced)
|
||||
dwData |= XFONT_MONOSPACED;
|
||||
}
|
||||
|
||||
BOOL bOkToAdd = TRUE;
|
||||
|
||||
TRACE(_T("m_dwFontFilter=%X\n"), pCombo->m_dwFontFilter);
|
||||
|
||||
if (bOkToAdd && ((pCombo->m_dwFontFilter & XFONT_SHOW_SYMBOL) == 0))
|
||||
{
|
||||
// don't show symbol fonts
|
||||
if (dwData & XFONT_SYMBOL)
|
||||
bOkToAdd = FALSE;
|
||||
}
|
||||
|
||||
if (bOkToAdd && ((pCombo->m_dwFontFilter & XFONT_SHOW_ITALIC) == 0))
|
||||
{
|
||||
// don't show italic fonts
|
||||
if (dwData & XFONT_ITALIC)
|
||||
bOkToAdd = FALSE;
|
||||
}
|
||||
|
||||
if (bOkToAdd && ((pCombo->m_dwFontFilter & XFONT_SHOW_BOLD) == 0))
|
||||
{
|
||||
// don't show bold fonts
|
||||
if (dwData & XFONT_BOLD)
|
||||
bOkToAdd = FALSE;
|
||||
}
|
||||
|
||||
if (bOkToAdd && ((pCombo->m_dwFontFilter & XFONT_SHOW_MONOSPACED) == 0))
|
||||
{
|
||||
// don't show monospaced fonts
|
||||
if (dwData & XFONT_MONOSPACED)
|
||||
bOkToAdd = FALSE;
|
||||
}
|
||||
|
||||
DWORD dwSpecial = XFONT_BOLD|XFONT_ITALIC|XFONT_SYMBOL|XFONT_MONOSPACED;
|
||||
if (bOkToAdd && ((pCombo->m_dwFontFilter & XFONT_SHOW_NORMAL) == 0))
|
||||
{
|
||||
// don't show normal fonts
|
||||
if ((dwData & dwSpecial) == 0)
|
||||
bOkToAdd = FALSE;
|
||||
}
|
||||
|
||||
if (bOkToAdd)
|
||||
{
|
||||
// According to docs, "The function uses the NEWTEXTMETRICEX structure
|
||||
// for TrueType fonts; and the TEXTMETRIC structure for other fonts."
|
||||
// In practice, it seems that a NEWTEXTMETRICEX struct is always returned,
|
||||
// but just to be safe we prepare for an exception.
|
||||
__try
|
||||
{
|
||||
if ((lpntme->ntmTm.ntmFlags & NTM_TT_OPENTYPE) ||
|
||||
(lpntme->ntmTm.ntmFlags & NTM_PS_OPENTYPE))
|
||||
{
|
||||
dwData |= XFONT_OPENTYPE;
|
||||
}
|
||||
else if (FontType & TRUETYPE_FONTTYPE)
|
||||
{
|
||||
dwData |= XFONT_TRUETYPE;
|
||||
}
|
||||
}
|
||||
__except(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
TRACE(_T("ERROR: exception in EnumFontFamExProc()\n"));
|
||||
}
|
||||
|
||||
int index = pCombo->AddString(lpelfe->elfLogFont.lfFaceName);
|
||||
ASSERT(index >= 0);
|
||||
|
||||
if (index >= 0)
|
||||
{
|
||||
VERIFY(pCombo->SetItemData(index, dwData) != CB_ERR);
|
||||
}
|
||||
|
||||
TRACE(_T("_____ added %s [%s] FontType=0x%X ntmFlags=0x%X tmCharSet=%d tmPitchAndFamily=0x%X dwData=0x%X \n"),
|
||||
lpelfe->elfLogFont.lfFaceName,
|
||||
lpelfe->elfFullName,
|
||||
FontType,
|
||||
lpntme->ntmTm.ntmFlags,
|
||||
lpntme->ntmTm.tmCharSet,
|
||||
lpntme->ntmTm.tmPitchAndFamily,
|
||||
dwData);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListCombo::OnTimer(UINT nIDEvent)
|
||||
//=============================================================================
|
||||
{
|
||||
KillTimer(nIDEvent);
|
||||
|
||||
if (nIDEvent == TIMER_INIT)
|
||||
{
|
||||
// send initial selection message
|
||||
GetParent()->SendMessage(WM_COMMAND,
|
||||
MAKEWPARAM(GetDlgCtrlID(), CBN_SELCHANGE),
|
||||
(LPARAM)m_hWnd);
|
||||
if (m_CurIndex >= 0)
|
||||
{
|
||||
DWORD dwData = GetItemData(m_CurIndex);
|
||||
// set bold typeface in edit box
|
||||
SetBold(m_bShowMonospacedAsBold && (dwData & XFONT_MONOSPACED));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
CComboBox::OnTimer(nIDEvent);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
HBRUSH CXMonoFontListCombo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
//=============================================================================
|
||||
{
|
||||
if (nCtlColor == CTLCOLOR_EDIT)
|
||||
{
|
||||
if (m_edit.GetSafeHwnd() == NULL)
|
||||
{
|
||||
// subclass edit box
|
||||
m_edit.SubclassWindow(pWnd->GetSafeHwnd());
|
||||
m_edit.SetReadOnly(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
return CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
LRESULT CXMonoFontListCombo::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
//=============================================================================
|
||||
{
|
||||
if (message == WM_CHAR)
|
||||
{
|
||||
// try to match first character of font name
|
||||
TCHAR s[2] = { 0 };
|
||||
s[0] = (TCHAR) wParam;
|
||||
int index = FindString(-1, s);
|
||||
if (index >= 0)
|
||||
{
|
||||
SetCurSel(index);
|
||||
// tell parent that selection has changed
|
||||
GetParent()->SendMessage(WM_COMMAND,
|
||||
MAKEWPARAM(GetDlgCtrlID(), CBN_SELCHANGE), (LPARAM)m_hWnd);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return CComboBox::WindowProc(message, wParam, lParam);
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
// XMonoFontListCombo.h
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef XMONOFONTLISTCOMBO_H
|
||||
#define XMONOFONTLISTCOMBO_H
|
||||
|
||||
#include "XMonoFontListComboEdit.h"
|
||||
|
||||
//=============================================================================
|
||||
class CXMonoFontListCombo : public CComboBox
|
||||
//=============================================================================
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CXMonoFontListCombo();
|
||||
virtual ~CXMonoFontListCombo();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
CDC * m_pDC;
|
||||
DWORD m_dwFontFilter;
|
||||
CXMonoFontListComboEdit m_edit;
|
||||
|
||||
CXMonoFontListCombo& SetBold(BOOL bBold)
|
||||
{
|
||||
if (IsWindow(m_edit.m_hWnd))
|
||||
{
|
||||
m_edit.SetBold(bBold);
|
||||
m_edit.RedrawWindow();
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
CXMonoFontListCombo& SetFont(LOGFONT& lf);
|
||||
CXMonoFontListCombo& SetFontFilter(DWORD dwFontFilter)
|
||||
{ m_dwFontFilter = dwFontFilter; return *this; }
|
||||
CXMonoFontListCombo& ShowMonospacedAsBold(BOOL bShow)
|
||||
{ m_bShowMonospacedAsBold = bShow; return *this; }
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CXMonoFontListCombo)
|
||||
public:
|
||||
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
|
||||
protected:
|
||||
virtual void PreSubclassWindow();
|
||||
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
CImageList m_FontType;
|
||||
CFont m_BoldFont;
|
||||
BOOL m_bShowMonospacedAsBold;
|
||||
LOGFONT m_lfInitial;
|
||||
LOGFONT m_lfCurrent;
|
||||
int m_CurIndex;
|
||||
|
||||
void CreateFontTypeImages();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CXMonoFontListCombo)
|
||||
afx_msg void OnTimer(UINT nIDEvent);
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
//}}AFX_MSG
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif //XMONOFONTLISTCOMBO_H
|
||||
@@ -1,233 +0,0 @@
|
||||
// XMonoFontListComboEdit.cpp
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// Description:
|
||||
// XMonoFontListComboEdit.cpp implements CXMonoFontListComboEdit, a class
|
||||
// used by CXMonoFontListCombo.
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "XMonoFontListComboEdit.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
#ifndef __noop
|
||||
#if _MSC_VER < 1300
|
||||
#define __noop ((void)0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef TRACE
|
||||
#define TRACE __noop
|
||||
|
||||
//=============================================================================
|
||||
// if you want to see the TRACE output, uncomment this line:
|
||||
//#include "XTrace.h"
|
||||
//=============================================================================
|
||||
|
||||
//=============================================================================
|
||||
BEGIN_MESSAGE_MAP(CXMonoFontListComboEdit, CEdit)
|
||||
//=============================================================================
|
||||
//{{AFX_MSG_MAP(CXMonoFontListComboEdit)
|
||||
ON_CONTROL_REFLECT(EN_SETFOCUS, OnSetfocus)
|
||||
ON_WM_CTLCOLOR_REFLECT()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_WM_PAINT()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontListComboEdit::CXMonoFontListComboEdit()
|
||||
//=============================================================================
|
||||
{
|
||||
m_bBold = FALSE;
|
||||
m_strText = _T("");
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
CXMonoFontListComboEdit::~CXMonoFontListComboEdit()
|
||||
//=============================================================================
|
||||
{
|
||||
if (m_Font.GetSafeHandle())
|
||||
m_Font.DeleteObject();
|
||||
if (m_BoldFont.GetSafeHandle())
|
||||
m_BoldFont.DeleteObject();
|
||||
if (m_brush.GetSafeHandle())
|
||||
m_brush.DeleteObject();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListComboEdit::PreSubclassWindow()
|
||||
//=============================================================================
|
||||
{
|
||||
TRACE(_T("in CXMonoFontListComboEdit::PreSubclassWindow ================\n"));
|
||||
|
||||
// get current font
|
||||
CFont* pFont = GetSafeFont();
|
||||
|
||||
// create the font for this control
|
||||
LOGFONT lf;
|
||||
pFont->GetLogFont(&lf);
|
||||
m_Font.CreateFontIndirect(&lf);
|
||||
|
||||
lf.lfWeight = FW_BOLD;
|
||||
m_BoldFont.CreateFontIndirect(&lf);
|
||||
|
||||
m_brush.CreateSolidBrush(GetSysColor(COLOR_WINDOW));
|
||||
|
||||
CEdit::PreSubclassWindow();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListComboEdit::OnPaint()
|
||||
//=============================================================================
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
BOOL bFocus = FALSE;
|
||||
CWnd *pWndFocus = GetFocus();
|
||||
if (pWndFocus && IsWindow(pWndFocus->m_hWnd))
|
||||
{
|
||||
if (pWndFocus->m_hWnd == m_hWnd)
|
||||
bFocus = TRUE;
|
||||
}
|
||||
|
||||
CString strText = m_strText;
|
||||
if (strText.IsEmpty())
|
||||
GetWindowText(strText);
|
||||
|
||||
TRACE(_T("strText=%s\n"), strText);
|
||||
|
||||
CRect rc;
|
||||
GetClientRect(&rc);
|
||||
dc.FillSolidRect(&rc, GetSysColor(COLOR_WINDOW));
|
||||
|
||||
CEdit::SetSel(0, 0);
|
||||
|
||||
CFont *pOldFont = 0;
|
||||
if (m_bBold)
|
||||
pOldFont = dc.SelectObject(&m_BoldFont);
|
||||
else
|
||||
pOldFont = dc.SelectObject(&m_Font);
|
||||
|
||||
dc.SetBkMode(OPAQUE);
|
||||
|
||||
if (bFocus)
|
||||
{
|
||||
dc.SetTextColor(GetSysColor(COLOR_WINDOW));
|
||||
dc.SetBkColor(GetSysColor(COLOR_HIGHLIGHT));
|
||||
}
|
||||
else
|
||||
{
|
||||
dc.SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
|
||||
dc.SetBkColor(GetSysColor(COLOR_WINDOW));
|
||||
}
|
||||
|
||||
dc.TextOut(rc.left, rc.top, strText);
|
||||
|
||||
dc.SelectObject(pOldFont);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
CFont * CXMonoFontListComboEdit::GetSafeFont()
|
||||
//=============================================================================
|
||||
{
|
||||
// get current font
|
||||
CFont *pFont = CWnd::GetFont();
|
||||
|
||||
if (pFont == 0)
|
||||
{
|
||||
// try to get parent font
|
||||
CWnd *pParent = GetParent();
|
||||
if (pParent && IsWindow(pParent->m_hWnd))
|
||||
pFont = pParent->GetFont();
|
||||
|
||||
if (pFont == 0)
|
||||
{
|
||||
// no font, so get a system font
|
||||
HFONT hFont = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
|
||||
if (hFont == 0)
|
||||
hFont = (HFONT)::GetStockObject(SYSTEM_FONT);
|
||||
if (hFont == 0)
|
||||
hFont = (HFONT)::GetStockObject(ANSI_VAR_FONT);
|
||||
if (hFont)
|
||||
pFont = CFont::FromHandle(hFont);
|
||||
}
|
||||
}
|
||||
|
||||
return pFont;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListComboEdit::SetWindowText(LPCTSTR lpszString)
|
||||
//=============================================================================
|
||||
{
|
||||
m_strText = lpszString;
|
||||
RedrawWindow();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
LRESULT CXMonoFontListComboEdit::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
//=============================================================================
|
||||
{
|
||||
if (message == WM_SETTEXT)
|
||||
{
|
||||
// don't allow CEdit to paint text
|
||||
m_strText = (LPCTSTR) lParam;
|
||||
lParam = (LPARAM)_T("");
|
||||
RedrawWindow();
|
||||
}
|
||||
else if ((message == WM_LBUTTONDOWN) ||
|
||||
(message == WM_LBUTTONDBLCLK))
|
||||
{
|
||||
GetParent()->SendMessage(message, wParam, lParam);
|
||||
return TRUE;
|
||||
}
|
||||
else if (message == WM_CHAR)
|
||||
{
|
||||
// let combobox handle it
|
||||
GetParent()->SendMessage(message, wParam, lParam);
|
||||
return TRUE;
|
||||
}
|
||||
else if (message == WM_CONTEXTMENU)
|
||||
{
|
||||
// suppress context menu
|
||||
return TRUE;
|
||||
}
|
||||
else if (message == WM_ERASEBKGND)
|
||||
{
|
||||
// entire control is painted in OnPaint
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return CEdit::WindowProc(message, wParam, lParam);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
void CXMonoFontListComboEdit::OnSetfocus()
|
||||
//=============================================================================
|
||||
{
|
||||
RedrawWindow();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
HBRUSH CXMonoFontListComboEdit::CtlColor(CDC* /*pDC*/, UINT /*nCtlColor*/)
|
||||
//=============================================================================
|
||||
{
|
||||
// this is necessary on Vista
|
||||
return m_brush;
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
// XMonoFontListComboEdit.h
|
||||
//
|
||||
// Author: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// License:
|
||||
// This software is released into the public domain. You are free to use
|
||||
// it in any way you like, except that you may not sell this source code.
|
||||
//
|
||||
// This software is provided "as is" with no expressed or implied warranty.
|
||||
// I accept no liability for any damage or loss of business that this
|
||||
// software may cause.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef XMONOFONTLISTCOMBOEDIT_H
|
||||
#define XMONOFONTLISTCOMBOEDIT_H
|
||||
|
||||
//=============================================================================
|
||||
class CXMonoFontListComboEdit : public CEdit
|
||||
//=============================================================================
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CXMonoFontListComboEdit();
|
||||
virtual ~CXMonoFontListComboEdit();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
void SetBold(BOOL bBold) { m_bBold = bBold; }
|
||||
void SetWindowText(LPCTSTR lpszString);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CXMonoFontListComboEdit)
|
||||
protected:
|
||||
virtual void PreSubclassWindow();
|
||||
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
CFont m_Font;
|
||||
CFont m_BoldFont;
|
||||
BOOL m_bBold;
|
||||
CString m_strText;
|
||||
CBrush m_brush;
|
||||
|
||||
CFont * GetSafeFont();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CXMonoFontListComboEdit)
|
||||
afx_msg void OnSetfocus();
|
||||
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
|
||||
//}}AFX_MSG
|
||||
afx_msg void OnPaint();
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif //XMONOFONTLISTCOMBOEDIT_H
|
||||
@@ -1,299 +0,0 @@
|
||||
// XTrace.h Version 1.2
|
||||
//
|
||||
// Author: Paul Mclachlan
|
||||
//
|
||||
// Modified by: Hans Dietrich
|
||||
// hdietrich@gmail.com
|
||||
//
|
||||
// Version 1.2 fixed macro redefinition warnings
|
||||
//
|
||||
// Version 1.1: added Unicode support
|
||||
// added optional thread id to output string
|
||||
// added option to enable/disable full path
|
||||
// added TRACERECT macro
|
||||
// changed name to avoid conflicts with Paul's class.
|
||||
//
|
||||
// This code was taken from article by Paul Mclachlan, "Getting around
|
||||
// the need for a vararg #define just to automatically use __FILE__ and
|
||||
// __LINE__ in a TRACE macro". For original article, see
|
||||
// http://www.codeproject.com/useritems/location_trace.asp
|
||||
//
|
||||
// XTrace.h is a drop-in replacement for MFC's TRACE facility. It has no
|
||||
// dependency on MFC. It is thread-safe and uses no globals or statics.
|
||||
//
|
||||
// It optionally adds source module/line number and thread id to each line
|
||||
// of TRACE output. To control these features, use the following defines:
|
||||
//
|
||||
// XTRACE_SHOW_FULLPATH
|
||||
// XTRACE_SHOW_THREAD_ID
|
||||
//
|
||||
// XTrace.h also provides the TRACERECT macro, which outputs the contents
|
||||
// of a RECT struct. In Release builds, no output will be produced.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef XTRACE_H
|
||||
#define XTRACE_H
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <tchar.h>
|
||||
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4127) // conditional expression is constant
|
||||
#pragma warning(disable : 4996) // disable bogus deprecation warning
|
||||
|
||||
#ifndef INVALID_SET_FILE_POINTER
|
||||
#define INVALID_SET_FILE_POINTER ((DWORD)-1)
|
||||
#endif
|
||||
|
||||
#define XTRACE_SHOW_FULLPATH FALSE // FALSE = only show base name of file
|
||||
#define XTRACE_SHOW_THREAD_ID TRUE // TRUE = include thread id in output
|
||||
#define XTRACE_FILE FALSE // TRUE = output to file
|
||||
|
||||
class xtracing_output_debug_string
|
||||
{
|
||||
public:
|
||||
xtracing_output_debug_string(LPCTSTR lpszFile, int line) :
|
||||
m_file(lpszFile),
|
||||
m_line(line)
|
||||
{
|
||||
}
|
||||
|
||||
void operator() (LPCTSTR lpszFormat, ...)
|
||||
{
|
||||
va_list va;
|
||||
va_start(va, lpszFormat);
|
||||
|
||||
TCHAR buf1[BUFFER_SIZE];
|
||||
TCHAR buf2[BUFFER_SIZE];
|
||||
|
||||
// add the __FILE__ and __LINE__ to the front
|
||||
TCHAR *cp = (LPTSTR) m_file;
|
||||
|
||||
if (!XTRACE_SHOW_FULLPATH)
|
||||
{
|
||||
cp = (TCHAR *)_tcsrchr(m_file, _T('\\'));
|
||||
if (cp)
|
||||
cp++;
|
||||
}
|
||||
|
||||
if (XTRACE_SHOW_THREAD_ID)
|
||||
{
|
||||
if (_sntprintf(buf1, BUFFER_SIZE-1, _T("%s(%d) : [%X] %s"),
|
||||
cp, m_line, GetCurrentThreadId(), lpszFormat) < 0)
|
||||
buf1[BUFFER_SIZE-1] = _T('\0');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_sntprintf(buf1, BUFFER_SIZE-1, _T("%s(%d) : %s"),
|
||||
cp, m_line, lpszFormat) < 0)
|
||||
buf1[BUFFER_SIZE-1] = _T('\0');
|
||||
}
|
||||
|
||||
// format the message as requested
|
||||
if (_vsntprintf(buf2, BUFFER_SIZE-1, buf1, va) < 0)
|
||||
buf2[BUFFER_SIZE-1] = _T('\0');
|
||||
|
||||
va_end(va);
|
||||
|
||||
if (XTRACE_FILE)
|
||||
{
|
||||
TCHAR szPathName[MAX_PATH*2] = { 0 };
|
||||
|
||||
::GetModuleFileName(NULL, szPathName, sizeof(szPathName)/sizeof(TCHAR)-2);
|
||||
|
||||
TCHAR *cp = _tcsrchr(szPathName, _T('\\'));
|
||||
if (cp != NULL)
|
||||
*(cp+1) = _T('\0');
|
||||
_tcscat(szPathName, _T("\\_trace.log"));
|
||||
HANDLE hFile = ::CreateFile(szPathName, GENERIC_WRITE, FILE_SHARE_WRITE,
|
||||
NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
DWORD dwRC = ::SetFilePointer(hFile, // handle to file
|
||||
0, // bytes to move pointer
|
||||
NULL, // bytes to move pointer
|
||||
FILE_END); // starting point
|
||||
|
||||
if (dwRC != INVALID_SET_FILE_POINTER)
|
||||
{
|
||||
DWORD dwWritten = 0;
|
||||
::WriteFile(hFile, // handle to file
|
||||
buf2, // data buffer
|
||||
(DWORD)_tcslen(buf2)*sizeof(TCHAR), // number of bytes to write
|
||||
&dwWritten, // number of bytes written
|
||||
NULL); // overlapped buffer
|
||||
}
|
||||
|
||||
::CloseHandle(hFile);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// write it out
|
||||
OutputDebugString(buf2);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
LPCTSTR m_file;
|
||||
int m_line;
|
||||
enum { BUFFER_SIZE = 4096 };
|
||||
};
|
||||
|
||||
class xtracing_entry_output_debug_string
|
||||
{
|
||||
public:
|
||||
xtracing_entry_output_debug_string(LPCTSTR lpszFile, int line) :
|
||||
m_file(lpszFile),
|
||||
m_line(line)
|
||||
{
|
||||
}
|
||||
|
||||
~xtracing_entry_output_debug_string()
|
||||
{
|
||||
TCHAR buf3[BUFFER_SIZE*3];
|
||||
_stprintf(buf3, _T("====== exiting scope: %s"), buf2);
|
||||
OutputDebugString(buf3);
|
||||
}
|
||||
|
||||
void operator() (LPCTSTR lpszFormat, ...)
|
||||
{
|
||||
va_list va;
|
||||
va_start(va, lpszFormat);
|
||||
|
||||
TCHAR buf1[BUFFER_SIZE];
|
||||
|
||||
// add the __FILE__ and __LINE__ to the front
|
||||
TCHAR *cp = (LPTSTR) m_file;
|
||||
|
||||
if (!XTRACE_SHOW_FULLPATH)
|
||||
{
|
||||
cp = (TCHAR *)_tcsrchr(m_file, _T('\\'));
|
||||
if (cp)
|
||||
cp++;
|
||||
}
|
||||
|
||||
if (XTRACE_SHOW_THREAD_ID)
|
||||
{
|
||||
if (_sntprintf(buf1, BUFFER_SIZE-1, _T("%s(%d) : [%X] ====== %s"),
|
||||
cp, m_line, GetCurrentThreadId(), lpszFormat) < 0)
|
||||
buf1[BUFFER_SIZE-1] = _T('\0');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_sntprintf(buf1, BUFFER_SIZE-1, _T("%s(%d) : ====== %s"),
|
||||
cp, m_line, lpszFormat) < 0)
|
||||
buf1[BUFFER_SIZE-1] = _T('\0');
|
||||
}
|
||||
|
||||
// format the message as requested
|
||||
if (_vsntprintf(buf2, BUFFER_SIZE-1, buf1, va) < 0)
|
||||
buf2[BUFFER_SIZE-1] = _T('\0');
|
||||
|
||||
va_end(va);
|
||||
|
||||
if (XTRACE_FILE)
|
||||
{
|
||||
TCHAR szPathName[MAX_PATH*2] = { 0 };
|
||||
|
||||
::GetModuleFileName(NULL, szPathName, sizeof(szPathName)/sizeof(TCHAR)-2);
|
||||
|
||||
TCHAR *cp = _tcsrchr(szPathName, _T('\\'));
|
||||
if (cp != NULL)
|
||||
*(cp+1) = _T('\0');
|
||||
_tcscat(szPathName, _T("\\_trace.log"));
|
||||
HANDLE hFile = ::CreateFile(szPathName, GENERIC_WRITE, FILE_SHARE_WRITE,
|
||||
NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
DWORD dwRC = ::SetFilePointer(hFile, // handle to file
|
||||
0, // bytes to move pointer
|
||||
NULL, // bytes to move pointer
|
||||
FILE_END); // starting point
|
||||
|
||||
if (dwRC != INVALID_SET_FILE_POINTER)
|
||||
{
|
||||
DWORD dwWritten = 0;
|
||||
::WriteFile(hFile, // handle to file
|
||||
buf2, // data buffer
|
||||
(DWORD)_tcslen(buf2)*sizeof(TCHAR), // number of bytes to write
|
||||
&dwWritten, // number of bytes written
|
||||
NULL); // overlapped buffer
|
||||
}
|
||||
|
||||
::CloseHandle(hFile);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// write it out
|
||||
OutputDebugString(buf2);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
LPCTSTR m_file;
|
||||
int m_line;
|
||||
enum { BUFFER_SIZE = 4096 };
|
||||
TCHAR buf2[BUFFER_SIZE*2];
|
||||
};
|
||||
|
||||
#undef TRACE
|
||||
#undef TRACE0
|
||||
#undef TRACE1
|
||||
#undef TRACE2
|
||||
#undef TRACERECT
|
||||
#undef TRACEPOINT
|
||||
#undef TRACESIZE
|
||||
#undef TRACEHILO
|
||||
|
||||
#define _DEBUGnow
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
#define TRACE (xtracing_output_debug_string(_T(__FILE__), __LINE__ ))
|
||||
#define TRACEENTRY (xtracing_output_debug_string(_T(__FILE__), __LINE__ ))
|
||||
#define TRACEERROR (xtracing_output_debug_string(_T(__FILE__), __LINE__ ))
|
||||
#define TRACE0 TRACE
|
||||
#define TRACE1 TRACE
|
||||
#define TRACE2 TRACE
|
||||
|
||||
#define TRACEHILO(d) \
|
||||
WORD ___hi = HIWORD(d); WORD ___lo = LOWORD(d); \
|
||||
TRACE(_T(#d) _T(": HIWORD = %u LOWORD = %u\n"), ___hi, ___lo)
|
||||
|
||||
#define TRACESIZE(s) TRACE(_T(#s) _T(": cx = %d cy = %d\n"), \
|
||||
(s).cx, (s).cy)
|
||||
|
||||
#define TRACEPOINT(p) TRACE(_T(#p) _T(": x = %d y = %d\n"), \
|
||||
(p).x, (p).y)
|
||||
|
||||
#define TRACERECT(r) TRACE(_T(#r) _T(": left = %d top = %d right = %d bottom = %d\n"), \
|
||||
(r).left, (r).top, (r).right, (r).bottom)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef __noop
|
||||
#if _MSC_VER < 1300
|
||||
#define __noop ((void)0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define TRACE __noop
|
||||
#define TRACEERROR __noop
|
||||
#define TRACE0 __noop
|
||||
#define TRACE1 __noop
|
||||
#define TRACE2 __noop
|
||||
#define TRACERECT __noop
|
||||
#define TRACEPOINT __noop
|
||||
#define TRACESIZE __noop
|
||||
#define TRACEHILO __noop
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
#pragma warning(pop)
|
||||
|
||||
#endif //XTRACE_H
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
|
||||
manifestVersion="1.0">
|
||||
<assemblyIdentity
|
||||
version="1.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
name="Microsoft.Windows.atest"
|
||||
type="win32"
|
||||
/>
|
||||
<description>description</description>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
</assembly>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 766 B |
@@ -1,41 +0,0 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by XMonoFontDialogTest.rc
|
||||
//
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_XMONOFONTDIALOGTEST_DIALOG 102
|
||||
#define IDS_MAILTO 103
|
||||
#define IDS_ONLINE_HELP 104
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDC_ABOUT_EMAIL 1001
|
||||
#define IDC_ABOUT_HYPERLINK 1002
|
||||
#define IDC_GROUPBOX 1003
|
||||
#define IDC_SAMPLE 1004
|
||||
#define IDC_ALL_FONTS 1005
|
||||
#define IDC_SYMBOL 1006
|
||||
#define IDC_EXCEPT_SYMBOL 1007
|
||||
#define IDC_MONOSPACED 1008
|
||||
#define IDC_EXCEPT_MONOSPACED 1009
|
||||
#define IDC_EXCEPT_MONOSPACED_AND_SYMBOL 1010
|
||||
#define IDC_PROPERTIES 1011
|
||||
#define IDC_NOTE 1012
|
||||
#define IDC_TEST 1013
|
||||
#define IDC_TEST2 1014
|
||||
#define IDC_SAMPLE_TEXT 1015
|
||||
#define IDC_SCRIPT 1016
|
||||
#define IDC_ONLINE_HELP 1017
|
||||
#define IDC_SHOW_MONOSPACED_LABEL 1018
|
||||
#define IDC_SHOW_MONOSPACED_AS_BOLD 1019
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1020
|
||||
#define _APS_NEXT_SYMED_VALUE 105
|
||||
#endif
|
||||
#endif
|
||||
@@ -1,20 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XMonoFontDialogTest", "XMonoFontDialogTest.vcproj", "{77B69CB3-4461-4711-9FD8-A5DC6846AEDC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{77B69CB3-4461-4711-9FD8-A5DC6846AEDC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{77B69CB3-4461-4711-9FD8-A5DC6846AEDC}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{77B69CB3-4461-4711-9FD8-A5DC6846AEDC}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{77B69CB3-4461-4711-9FD8-A5DC6846AEDC}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,308 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="XMonoFontDialogTest"
|
||||
ProjectGUID="{77B69CB3-4461-4711-9FD8-A5DC6846AEDC}"
|
||||
RootNamespace="XMonoFontDialogTest"
|
||||
Keyword="MFCProj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="2"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
ValidateParameters="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="4"
|
||||
Detect64BitPortabilityProblems="false"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="2"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
ValidateParameters="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
MinimalRebuild="false"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="4"
|
||||
Detect64BitPortabilityProblems="false"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\src\About.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\StdAfx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XFontSize.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XHyperLink.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialog.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialogTest.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialogTestDlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontListCombo.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontListComboEdit.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\src\About.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\resource.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\StdAfx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XFontSize.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XHyperLink.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialog.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialogRes.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialogTest.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialogTestDlg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontListCombo.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontListComboEdit.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\src\XMonoFontDialogTest.rc"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loaded 100 of 1873 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user