mirror of
https://github.com/gryf/wmaker.git
synced 2026-03-22 11:23:31 +01:00
Compare commits
389 Commits
before-xft
...
wmaker-0.9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f55eef413f | ||
|
|
643e49f190 | ||
|
|
8a2a0b6adc | ||
|
|
0deb198b10 | ||
|
|
b6689a0108 | ||
|
|
7ef8178d2a | ||
|
|
b3e817305d | ||
|
|
a2133e8e2f | ||
|
|
efa31f30b2 | ||
|
|
024e2f5299 | ||
|
|
629b118767 | ||
|
|
d8ef209c9a | ||
|
|
2ba803ad98 | ||
|
|
33c9e87692 | ||
|
|
0a5febcada | ||
|
|
41fdb79e28 | ||
|
|
d74a90d1bf | ||
|
|
fe8ab024af | ||
|
|
6c6e832c52 | ||
|
|
13c2d523e2 | ||
|
|
e7cc15df71 | ||
|
|
3db3f179d1 | ||
|
|
5fa41941fe | ||
|
|
4c4d50c813 | ||
|
|
8c5a7b287a | ||
|
|
347fbcc87a | ||
|
|
a2cb317f11 | ||
|
|
391d5de79e | ||
|
|
ad4358c605 | ||
|
|
2203b229b0 | ||
|
|
4932433b95 | ||
|
|
f9792a042a | ||
|
|
96b9b22cb2 | ||
|
|
1f1eb393f8 | ||
|
|
bf88570a5f | ||
|
|
a3246cfe3b | ||
|
|
c5f027d811 | ||
|
|
af8cec15e3 | ||
|
|
15e37ff942 | ||
|
|
347e804bb6 | ||
|
|
a063338175 | ||
|
|
781b663341 | ||
|
|
09140a82b9 | ||
|
|
87161c5e0c | ||
|
|
cda27758bc | ||
|
|
b014ef2770 | ||
|
|
e9309e1e39 | ||
|
|
06d3360224 | ||
|
|
9d6728d3e7 | ||
|
|
2765bec3e4 | ||
|
|
7df49cce14 | ||
|
|
21eb8456ba | ||
|
|
bc3995bf6b | ||
|
|
7f457fa275 | ||
|
|
484bdbe7d4 | ||
|
|
ef2f5a6f29 | ||
|
|
12b6be768e | ||
|
|
6a0120f014 | ||
|
|
0a0c2391de | ||
|
|
7a86f48f73 | ||
|
|
3953f53680 | ||
|
|
92eff967a7 | ||
|
|
eaca92db50 | ||
|
|
1a85719971 | ||
|
|
5979162878 | ||
|
|
306165775e | ||
|
|
c7f2a189c4 | ||
|
|
ca2c1f900d | ||
|
|
18408fff93 | ||
|
|
5c46f48898 | ||
|
|
567279b962 | ||
|
|
1a27b34160 | ||
|
|
9789cf3154 | ||
|
|
513a509096 | ||
|
|
f6645ac564 | ||
|
|
cf0f7d68d5 | ||
|
|
3106292f4b | ||
|
|
e42586c712 | ||
|
|
0a47a19b3e | ||
|
|
e4fcd515fe | ||
|
|
4bce3e3805 | ||
|
|
cbd13dd95f | ||
|
|
18c7a20136 | ||
|
|
816fee1b68 | ||
|
|
5b93254d0f | ||
|
|
62bf6d17b5 | ||
|
|
8efc490361 | ||
|
|
5f5b1df7d2 | ||
|
|
88ab8b74b4 | ||
|
|
2ccc8e4a79 | ||
|
|
8490e31fde | ||
|
|
05720d9707 | ||
|
|
f8dd3dc49e | ||
|
|
c04a2caeab | ||
|
|
cf62d1591f | ||
|
|
7857f297ea | ||
|
|
b37e065252 | ||
|
|
d7183d33b4 | ||
|
|
2ed9c12ee5 | ||
|
|
229b6984de | ||
|
|
a1f35d7f5b | ||
|
|
34be9d7816 | ||
|
|
9af6316d1d | ||
|
|
6924454836 | ||
|
|
328251c68a | ||
|
|
2f87d01a41 | ||
|
|
22730876e4 | ||
|
|
be08535ab4 | ||
|
|
108127f0b5 | ||
|
|
6d75291e1d | ||
|
|
ca60620f50 | ||
|
|
a9aeefbe70 | ||
|
|
d6c134f420 | ||
|
|
442e3876c6 | ||
|
|
19f110d26e | ||
|
|
3f6ae395ce | ||
|
|
ba027149bd | ||
|
|
f893728d2d | ||
|
|
01dddf00c8 | ||
|
|
fe736e849c | ||
|
|
874b0fadf5 | ||
|
|
31f16389f6 | ||
|
|
2706f7217c | ||
|
|
e522ca734d | ||
|
|
3a0eb643d9 | ||
|
|
f79379c090 | ||
|
|
001bc28037 | ||
|
|
203eba8937 | ||
|
|
d27e43e6b5 | ||
|
|
1db15a3543 | ||
|
|
c970c94f82 | ||
|
|
570df8316d | ||
|
|
21b5df494b | ||
|
|
e113ec10c9 | ||
|
|
95a576bd62 | ||
|
|
3f7110b120 | ||
|
|
f9bb2a428a | ||
|
|
333dbf5418 | ||
|
|
a9238c99b9 | ||
|
|
4a041b6f0a | ||
|
|
688a56e8ab | ||
|
|
59fc927dc9 | ||
|
|
066af13b5c | ||
|
|
e2d8cbe238 | ||
|
|
cb31fd374c | ||
|
|
f4fd88b8a9 | ||
|
|
f36ab39680 | ||
|
|
0a32ecf1fe | ||
|
|
9baff1363c | ||
|
|
f18567db9a | ||
|
|
be0d694dc2 | ||
|
|
6310e40d47 | ||
|
|
7a84127a27 | ||
|
|
288853e44f | ||
|
|
09a8911b6f | ||
|
|
ceeca912cd | ||
|
|
7a3b139dcb | ||
|
|
e2b6a85e80 | ||
|
|
38074e7bd5 | ||
|
|
f516213bf3 | ||
|
|
bbc52564d0 | ||
|
|
3e9aae7a91 | ||
|
|
9fa4fbef91 | ||
|
|
f21ce5768b | ||
|
|
b487d56452 | ||
|
|
d316260395 | ||
|
|
6b08fc9e78 | ||
|
|
0c469de04f | ||
|
|
d680e6e580 | ||
|
|
3c323e1e9a | ||
|
|
06f59b9928 | ||
|
|
4339e446e4 | ||
|
|
72689513a3 | ||
|
|
56d8568787 | ||
|
|
c91bb1ba13 | ||
|
|
e4800e84d0 | ||
|
|
ee28b0257a | ||
|
|
722c82c8ab | ||
|
|
2061c30758 | ||
|
|
4e8423d18a | ||
|
|
a5aa8573c9 | ||
|
|
ecd5217633 | ||
|
|
577b3ee949 | ||
|
|
bc4de88d8b | ||
|
|
4688c9839b | ||
|
|
90c0e656f1 | ||
|
|
42191340fd | ||
|
|
d873d09fa5 | ||
|
|
2e114bcc1e | ||
|
|
1a73c71d56 | ||
|
|
240586edc5 | ||
|
|
eae4c45cf5 | ||
|
|
c2c58734b8 | ||
|
|
085e9d6254 | ||
|
|
f683b99405 | ||
|
|
bacf8229b0 | ||
|
|
fa7a5db4bd | ||
|
|
e534138417 | ||
|
|
73d94f7bdc | ||
|
|
054f954390 | ||
|
|
c0317ddae5 | ||
|
|
91f5abc955 | ||
|
|
d26f18505a | ||
|
|
f3a960d9d8 | ||
|
|
5f0a357b1f | ||
|
|
20d5925d08 | ||
|
|
b655a5fa5f | ||
|
|
ad0ae4887f | ||
|
|
eca635cb5d | ||
|
|
ad641c1992 | ||
|
|
69730273b1 | ||
|
|
f8b3a774be | ||
|
|
2ea40ff2c5 | ||
|
|
33f7b63d11 | ||
|
|
880880162b | ||
|
|
2f56373cc2 | ||
|
|
24519b6292 | ||
|
|
24e349afe7 | ||
|
|
5cfc565bbd | ||
|
|
c8406b640c | ||
|
|
53db5fc4a5 | ||
|
|
9bd4abb288 | ||
|
|
25c37b7637 | ||
|
|
3301b57d4b | ||
|
|
fe381eca77 | ||
|
|
e3df52ca51 | ||
|
|
b2e87b76f9 | ||
|
|
5811c3d89c | ||
|
|
140c48f1cc | ||
|
|
b62e379299 | ||
|
|
71f1d7f101 | ||
|
|
bde572f673 | ||
|
|
684621ecd4 | ||
|
|
9f89695c48 | ||
|
|
acc868d91d | ||
|
|
d7d3003e06 | ||
|
|
d292143af1 | ||
|
|
3b46cf38cd | ||
|
|
e53ddd046f | ||
|
|
e9e1186f1d | ||
|
|
558615a853 | ||
|
|
ca61675597 | ||
|
|
79864ba94c | ||
|
|
d63a0b4859 | ||
|
|
ac87ca5596 | ||
|
|
2ea68b8d2b | ||
|
|
9234fb72b2 | ||
|
|
92a84fe050 | ||
|
|
c95b464680 | ||
|
|
59609280a2 | ||
|
|
bb0c0dafae | ||
|
|
5f3c54af13 | ||
|
|
d8862b0bdf | ||
|
|
bbd1e5dada | ||
|
|
087a16400f | ||
|
|
b89f3e6df5 | ||
|
|
4bc0bcfbc2 | ||
|
|
9ff9fcda48 | ||
|
|
ac6b5afd32 | ||
|
|
0d9b73cd74 | ||
|
|
12b8b8ba58 | ||
|
|
f274afdd1d | ||
|
|
e3c67d55de | ||
|
|
8bf6071c48 | ||
|
|
897e75d554 | ||
|
|
363b6032f5 | ||
|
|
4638216209 | ||
|
|
67a9ea74a3 | ||
|
|
f89cf06299 | ||
|
|
cb7f34e237 | ||
|
|
7401a1329f | ||
|
|
df1228f387 | ||
|
|
9ead135f51 | ||
|
|
193a63511d | ||
|
|
b00076b32a | ||
|
|
51c2edf868 | ||
|
|
11b464a002 | ||
|
|
c3cff33f99 | ||
|
|
663df7b4cb | ||
|
|
b79524ce6f | ||
|
|
65a113f9a3 | ||
|
|
45c55a3e76 | ||
|
|
e93e16de06 | ||
|
|
620a280d64 | ||
|
|
4bda625076 | ||
|
|
b034bb077f | ||
|
|
d08691d5a5 | ||
|
|
08e811aae7 | ||
|
|
6de693a24d | ||
|
|
3a7749b0fc | ||
|
|
f555ccb9b9 | ||
|
|
f6682a9ade | ||
|
|
1166a58ec7 | ||
|
|
59d2a5cbe5 | ||
|
|
85f72d6576 | ||
|
|
435aee107e | ||
|
|
6cd91272a6 | ||
|
|
7908c9a66b | ||
|
|
f6fb9fbb3e | ||
|
|
9de3560d9f | ||
|
|
88e207f9e0 | ||
|
|
66ec682107 | ||
|
|
1076645853 | ||
|
|
30247c5886 | ||
|
|
1e3a40370d | ||
|
|
27b9e27ae0 | ||
|
|
28050dab72 | ||
|
|
bc6aeab722 | ||
|
|
737328566f | ||
|
|
6cfad0b10f | ||
|
|
19c7a99197 | ||
|
|
7929d55f3f | ||
|
|
1f12617065 | ||
|
|
944737dde7 | ||
|
|
a91a34732c | ||
|
|
744c0726a1 | ||
|
|
7055530895 | ||
|
|
9402724e40 | ||
|
|
cd36d73886 | ||
|
|
0c09179f01 | ||
|
|
884a3f1647 | ||
|
|
2e572717c5 | ||
|
|
8502709884 | ||
|
|
5f4a3f6777 | ||
|
|
067fc41354 | ||
|
|
36b55dc1e6 | ||
|
|
3a97c33072 | ||
|
|
62590be0db | ||
|
|
440f2abe6f | ||
|
|
f54f0856c1 | ||
|
|
62994167c5 | ||
|
|
00e709cec4 | ||
|
|
2b51c21ee5 | ||
|
|
3ed1d3e25c | ||
|
|
3088277b1e | ||
|
|
879b00a57b | ||
|
|
6830b05716 | ||
|
|
5912898b06 | ||
|
|
f614cb8341 | ||
|
|
9ff85407b7 | ||
|
|
d211420261 | ||
|
|
1ef52e0aec | ||
|
|
9aca0d5f6e | ||
|
|
c7c68c6fe7 | ||
|
|
95897acc30 | ||
|
|
57869b667b | ||
|
|
2c8a70b743 | ||
|
|
0445dd5c18 | ||
|
|
b6e06d4beb | ||
|
|
b75b7cbc01 | ||
|
|
eb646a6682 | ||
|
|
7b88cd8afd | ||
|
|
f5a6724142 | ||
|
|
afbab71401 | ||
|
|
20fe42df2b | ||
|
|
d0c5bedab6 | ||
|
|
ef31cd1323 | ||
|
|
427a42ab58 | ||
|
|
474c4caf94 | ||
|
|
109bb540ec | ||
|
|
9b7b9f6815 | ||
|
|
32973f6e15 | ||
|
|
5b26a68910 | ||
|
|
59014546aa | ||
|
|
e4483de406 | ||
|
|
90d830837a | ||
|
|
752163dfc6 | ||
|
|
6d02fe98f2 | ||
|
|
500d569c79 | ||
|
|
f54b0de7b4 | ||
|
|
b8193865f6 | ||
|
|
e7d0c5d9e9 | ||
|
|
791bb6a444 | ||
|
|
a018eff89d | ||
|
|
1096cfa991 | ||
|
|
5d9354f362 | ||
|
|
0b42849a3e | ||
|
|
df75c86ef0 | ||
|
|
20975c4918 | ||
|
|
1dfaec332e | ||
|
|
3d6d775f08 | ||
|
|
1f393ac4f7 | ||
|
|
847479b886 | ||
|
|
6aed0cd713 | ||
|
|
39b9edfdcd | ||
|
|
090cc27f00 | ||
|
|
08225948bc | ||
|
|
18d07e04a6 | ||
|
|
74ba4f8eef |
@@ -1,8 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
aclocal.m4
|
||||
configure config.log config.cache config.guess config.status config.sub
|
||||
libtool ltconfig ltmain.sh
|
||||
autom4te.cache
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
update
|
||||
WindowMaker*.tar.gz
|
||||
@@ -1,6 +0,0 @@
|
||||
#
|
||||
# You can add here extra email addresses (one per line) where notifications
|
||||
# should be sent on cvs commit.
|
||||
# This is easier than to modify CVSROOT/loginfo to add extra addresses there.
|
||||
# Lines that start with # or empty lines are ignored.
|
||||
#
|
||||
87
.gitignore
vendored
Normal file
87
.gitignore
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
*Makefile
|
||||
*Makefile.in
|
||||
WINGs/get-wings-flags
|
||||
WINGs/get-wutil-flags
|
||||
WINGs/WINGs.pc
|
||||
aclocal.m4
|
||||
autom4te.cache*
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
contrib/WindowMaker.spec
|
||||
libtool
|
||||
ltmain.sh
|
||||
src/config.h
|
||||
src/config.h.in
|
||||
src/stamp-h1
|
||||
src/wconfig.h
|
||||
wmlib/wmlib.pc
|
||||
wrlib/get-wraster-flags
|
||||
wrlib/wrlib.pc
|
||||
*.o
|
||||
*.lo
|
||||
WINGs/Examples/.libs/colorpick
|
||||
WINGs/Examples/.libs/fontl
|
||||
WINGs/Examples/.libs/puzzle
|
||||
WINGs/Examples/colorpick
|
||||
WINGs/Examples/connect
|
||||
WINGs/Examples/fontl
|
||||
WINGs/Examples/puzzle
|
||||
WINGs/Examples/server
|
||||
WINGs/Extras/.libs/test
|
||||
WINGs/Extras/libExtraWINGs.a
|
||||
WINGs/Extras/test
|
||||
WINGs/Tests/.libs/testmywidget
|
||||
WINGs/Tests/.libs/wmfile
|
||||
WINGs/Tests/.libs/wmquery
|
||||
WINGs/Tests/.libs/wtest
|
||||
WINGs/Tests/testmywidget
|
||||
WINGs/Tests/wmfile
|
||||
WINGs/Tests/wmquery
|
||||
WINGs/Tests/wtest
|
||||
WINGs/libWINGs.a
|
||||
WINGs/libWUtil.a
|
||||
WPrefs.app/.libs/WPrefs
|
||||
WPrefs.app/WPrefs
|
||||
WindowMaker/Defaults/WMRootMenu
|
||||
WindowMaker/Defaults/WMState
|
||||
WindowMaker/Defaults/WMWindowAttributes
|
||||
WindowMaker/Defaults/WindowMaker
|
||||
WindowMaker/IconSets/Default.iconset
|
||||
src/.libs/wmaker
|
||||
src/wmaker
|
||||
test/wtest
|
||||
util/.libs/wmagnify
|
||||
util/.libs/wmsetbg
|
||||
util/.libs/wmsetup
|
||||
util/convertfonts
|
||||
util/geticonset
|
||||
util/getstyle
|
||||
util/seticons
|
||||
util/setstyle
|
||||
util/wdread
|
||||
util/wdwrite
|
||||
util/wmagnify
|
||||
util/wmaker.inst
|
||||
util/wmsetbg
|
||||
util/wmsetup
|
||||
util/wxcopy
|
||||
util/wxpaste
|
||||
wmlib/libWMaker.a
|
||||
wrlib/.libs/libwraster.a
|
||||
wrlib/.libs/libwraster.la
|
||||
wrlib/.libs/libwraster.lai
|
||||
wrlib/.libs/libwraster.so
|
||||
wrlib/.libs/libwraster.so.3
|
||||
wrlib/.libs/libwraster.so.3.1.0
|
||||
wrlib/libwraster.la
|
||||
wrlib/tests/.libs/testdraw
|
||||
wrlib/tests/.libs/testgrad
|
||||
wrlib/tests/.libs/testrot
|
||||
wrlib/tests/.libs/view
|
||||
wrlib/tests/testdraw
|
||||
wrlib/tests/testgrad
|
||||
wrlib/tests/testrot
|
||||
wrlib/tests/view
|
||||
8
AUTHORS
8
AUTHORS
@@ -107,10 +107,10 @@ made autoarrange icons a runtime option, SHADOW_RESIZEBAR c-time option,
|
||||
no workspace switch to the same workspace, dashed icon selection,
|
||||
misclellaneous bug fixes, definable cursors, --no-polling command line option.
|
||||
|
||||
The JED Text Editor <xjed@windowmaker.org>
|
||||
The JED Text Editor <xjed@windowmaker.info>
|
||||
Project maintainer
|
||||
|
||||
Alfredo K. Kojima <kojima@windowmaker.org>
|
||||
Alfredo K. Kojima <kojima@windowmaker.info>
|
||||
The guy who types random keys to feed JED with the necessary entropy
|
||||
|
||||
Jay Kominek <jkominek@xtn.net>
|
||||
@@ -149,7 +149,7 @@ Fix for unassociated alpha tiff
|
||||
Craig Nellist <crn@ozemail.com.au>
|
||||
selection in textfield
|
||||
|
||||
Dan Pascu <dan@windowmaker.org>
|
||||
Dan Pascu <dan@windowmaker.info>
|
||||
dock ghost (superfluous mode) fix, enhancement for scrollable menus,
|
||||
clip, numerous other stuff, project maintainer
|
||||
|
||||
@@ -217,7 +217,7 @@ FRBall <frb@umr.edu>
|
||||
dgradient fix
|
||||
|
||||
|
||||
"]d" <id@windowmaker.org>
|
||||
"]d" <id@windowmaker.info>
|
||||
Window list menu miniaturized/hidden hints, XDE support, XKB lock
|
||||
language status, WINGs enhancements, bug fixes, window commands menu
|
||||
enhancement, window move/resize by keyboard. GNUstepGlow.tiff icon,
|
||||
|
||||
9
BUGFORM
9
BUGFORM
@@ -4,11 +4,11 @@
|
||||
|
||||
|
||||
If you find a bug please fill this form and send it to
|
||||
developers@windowmaker.org Please, USE THIS FORM!!!
|
||||
wmaker-dev@lists.windowmaker.org Please, USE THIS FORM!!!
|
||||
|
||||
You can also report a bug in the WWW bug tracker at
|
||||
http://windowmaker.org/cgi-bin/bugs or by sending this report
|
||||
to bugs@windowmaker.org
|
||||
http://bugs.windowmaker.org/projects/wmaker/issues or by sending this report to
|
||||
bugs@windowmaker.org
|
||||
|
||||
|
||||
0. Before reporting this bug I already:
|
||||
@@ -35,9 +35,6 @@ to bugs@windowmaker.org
|
||||
[ ] --enable-kanji
|
||||
[ ] --disable-shape
|
||||
[ ] --enable-single-icon
|
||||
[ ] --enable-kde
|
||||
[ ] --enable-gnome
|
||||
[ ] --enable-openlook
|
||||
[ ] --enable-modelock
|
||||
[ ] Others: .......................
|
||||
|
||||
|
||||
8
BUGS
8
BUGS
@@ -1,8 +1,12 @@
|
||||
Newly added
|
||||
- after a crash, wmaker will forget the hidden state of the apps and just
|
||||
show their windows minimized. normal restart is unaffected
|
||||
- after a crash, wmaker will completely mess the window's saved geometries
|
||||
and maximizing will have weird results. restart is unaffected
|
||||
|
||||
- wmaker will not stop managing a screen even if another window manager
|
||||
requests that, through the ICCCM 2.0 manager selection stuff
|
||||
- stacking code is buggy (or XFree is buggy)
|
||||
- after restart focus is losed or switched to another window. May be related
|
||||
to the one above.
|
||||
- save session doesnt work on some platforms (Alpha and Sparc)
|
||||
- texture pixmaps are being incorrectly freed somewhere. Either
|
||||
fix bug (to support broken MetroX servers) or remove all useless references
|
||||
|
||||
172
ChangeLog
172
ChangeLog
@@ -1,3 +1,103 @@
|
||||
Changes since version 0.92.0:
|
||||
.............................
|
||||
|
||||
- added check for --with-gnustepdir option to configure to verify that its
|
||||
argument is an absolute path
|
||||
- updated german translations (Torsten Marek <shlomme@gmx.net>)
|
||||
- fixed WPrefs.app to find its icons when not installed under GNUstep paths
|
||||
- fixed gcc-4 compilation issues (Vladimir Nadvornik <nadvornik@suse.cz>)
|
||||
- fixed amd64 compilation issues (Vladimir Nadvornik <nadvornik@suse.cz>)
|
||||
- eliminated gcc-4 compilation warnings
|
||||
- small fix for compilation in a different directory than the source
|
||||
(Balaton Zoltan <balaton@eik.bme.hu>)
|
||||
- fixed some warnings on 64bit platforms (Balaton Zoltan <balaton@eik.bme.hu>)
|
||||
- fixed issue with invisible modal windows from Qt and Gtk applications
|
||||
on 64bit platforms (Max Loparyev <max@city.veganet.ru>)
|
||||
- fixed issue with icon colors on big endian platforms
|
||||
(Max Loparyev <max@city.veganet.ru>)
|
||||
- release colors to avoid issues with the reference count overflowing a
|
||||
small integer and causing unexpected color releases that can crash
|
||||
Window Maker (Martin Frydl <martin.frydl@systinet.com>)
|
||||
- fixed a small memory leak in WINGs/wview.c caused by not releasing the
|
||||
background color of a view (Martin Frydl <martin.frydl@systinet.com>)
|
||||
- updated estonian translation (Ivar Smolin <okul@linux.ee>)
|
||||
- updated the XDND code in WINGs to work with GDK based applications.
|
||||
WINGs based applications should now work with both KDE and GNOME
|
||||
applications (Sylvain Reynal <sreynal@nerim.net>)
|
||||
- better check for the XDND protocol version when interoperating with other
|
||||
applications. As it seems xdnd version 3 (which WINGs supports) and newer
|
||||
are not backward compatible with xdnd version 1 and 2. This is why WINGs
|
||||
applications cannot interoperate with GNUstep applications (which uses
|
||||
xdnd version 2). Xdnd version 4 and 5 are backwards compatible with
|
||||
version 3 though. (Sylvain Reynal <sreynal@nerim.net>)
|
||||
- Improved Info panel layout and fonts.
|
||||
- Fixed missing library paths when linking some binaries on certain
|
||||
platforms with a recent pkg-config (debian unstable/sid for one)
|
||||
- Fixed buggy handling of UTF8 characters in textfields in WINGs.
|
||||
(Stanislav Maslovski <stanislav.maslovski@gmail.com>)
|
||||
- Fixed segfault in WPrefs when some font description is missing from the
|
||||
configuration file (Stanislav Maslovski <stanislav.maslovski@gmail.com>)
|
||||
- Removed WINGs' dependency on rgb.txt (from X11) and issues with locating it
|
||||
on the filesystem for different systems/distributions.
|
||||
- Fixed segfault when unhiding an application in certain conditions (seen
|
||||
with KDE applications with transient windows)
|
||||
|
||||
|
||||
Changes since version 0.91.0:
|
||||
.............................
|
||||
|
||||
- fixed crash with info panel and alt-tabbing
|
||||
- updated Japanese translations (Takeo Hashimoto <HashimotoTakeo@mac.com>)
|
||||
- allow disable of switch panel when SwitchPanelImages=None
|
||||
- added X Input Methods support in WINGs
|
||||
- fixed issues with compiling on Solaris with openwin
|
||||
- reduced minimum required version number for the Xft library to 2.1.0
|
||||
- fixed some compilation issues with gcc-2.9x
|
||||
- removed --with-appsdir option and replaced it with --with-gnustepdir. Also,
|
||||
default installation path (for non GNUstep users) is now $(prefix)/bin
|
||||
- fixed bug with infinite loop in some circumstances in fitText() in WINGs
|
||||
- fixed to allow parallel builds on SMP systems using make -j
|
||||
- updated Italian translation (Marco Colombo <m.colombo@ed.ac.uk>)
|
||||
- applied .AppInfo --> Library path rename patch (Alex Perez <aperez@student.santarosa.edu>)
|
||||
- added code to automatically update the icon paths from the old .AppInfo
|
||||
style to the new Library/WindowMaker style in WMWindowAttributes when
|
||||
Window Maker starts to make transition transparent for users.
|
||||
- fixed issue with window being moved by 1 pixel up and left when the window
|
||||
move was initiated by the client
|
||||
- improved hide/unhide animation for applications with multiple windows
|
||||
(only animate the active window hiding/unhiding, which makes Window Maker
|
||||
faster and more responsive for such applications). This also makes the
|
||||
restart operation much faster.
|
||||
- fixed bug with windows shrinking to very small sizes when Unmaximize was
|
||||
used on them, after they were closed in a maximized state.
|
||||
- fixed bug with restoring maximized state from NetWM atoms.
|
||||
- fixed issue with GNUstep applications losing focus when all their windows
|
||||
are closed and there remains only their menu (Matt Rice <ratmice@yahoo.com>)
|
||||
- try fixed font for the technical drawing font if helvetica-12 is not
|
||||
available to avoid crashing (Timo Juhani Lindfors <timo.lindfors@iki.fi>)
|
||||
- new algorithm for placing miniwindows after unhiding the application they
|
||||
belong to, that works without auto-arranging the icons, while still avoiding
|
||||
multiple icons in the same spot by moving the miniwindows to a new slot if
|
||||
their old slot was occupied in the meantime.
|
||||
- double clicking an appicon will also raise the miniwindows that belong to
|
||||
that application to the front (along with the normal windows).
|
||||
|
||||
|
||||
Changes since version 0.90.0:
|
||||
.............................
|
||||
|
||||
- added _NET_WM_NAME, _NET_WM_ICON_NAME and _NET_WM_ICON to WINGs
|
||||
- new WPrefs icon (thanks to Largo)
|
||||
- replaced VirtualEdgeThickness option, with EnableVirtualDesktop (boolean)
|
||||
- enhanced alt-tab panel, added theming ability
|
||||
- fixed issues with broken crash dialog
|
||||
- removed obsoleted options from wconfig.h
|
||||
- changed animation delay constants to fix issues with 2.6.x linux kernels
|
||||
(patch provided by Eric Piel <Eric.Piel@lifl.fr>)
|
||||
- fixed several broken po files
|
||||
- increased libwraster version number to 3.1.0 (added a RCopyArea function)
|
||||
|
||||
|
||||
Changes since version 0.80.2:
|
||||
.............................
|
||||
|
||||
@@ -16,7 +116,7 @@ Changes since version 0.80.2:
|
||||
- Removed obsoleted acconfig.h and implemented its functionality using
|
||||
AC_DEFINE and AC_DEFINE_UNQUOTED as autoconf 2.5x recommends.
|
||||
This will definitely enforce the need to use autoconf 2.5x
|
||||
- Added Xft support to WINGs, for rendering antialiased fonts with
|
||||
- Added Xft2 support to WINGs, for rendering antialiased fonts with
|
||||
transparency. Details in WINGs/ChangeLog.
|
||||
- Fixed problem with long, preset workspace names (Wanderlei Antonio Cavassin
|
||||
<cavassin@conectiva.com.br>)
|
||||
@@ -110,13 +210,69 @@ Changes since version 0.80.2:
|
||||
(Marcelo E. Magallon <marcelo.magallon@bigfoot.com>)
|
||||
- Do not use the disabled clip color for the clip's workspace navigation arrows
|
||||
when the clip is collapsed (it made them look like disabled)
|
||||
- Fixed the 'focus flicker' problem, seen with GTK2 applications.
|
||||
- Fixed bug with incorrect un-escaping if there is a dot in wm_class.
|
||||
- Updated Catalan translations (Ernest Adrogue <eadrogue@gmx.net>)
|
||||
- Updated Spanish translation of WPrefs (Alberto Gimenez <algibe@teleline.es>)
|
||||
- Fixed synchronization problem between hair cursor and mouse cursor in
|
||||
wmagnify with mouse cursor at the screen edge (Jon Diercks <jon@diercks.net>)
|
||||
- Fixed 2 focus switching related bugs (Allan Peramaki <aperamak@cc.hut.fi>)
|
||||
- Fixed a bug that made the crash panel to be shown again and again when the
|
||||
'Restart Window Maker' option was selected, under some circumstances.
|
||||
- Added workaround in global WMWindowAttributes, to avoid creating a second
|
||||
appicon when a KDE3 application opens a config panel.
|
||||
- Updated slovak translation (Jan Tomka <judas@linux.sk>)
|
||||
- Added xdnd v3 support in WINGs (Sylvain Reynal <sreynal@nerim.net>)
|
||||
- Check whether libXft is at least version 2.1.2 else refuse to compile.
|
||||
- Fixed bug in icon chooser dialog that could cause a segmentation fault
|
||||
in some cases (Pascal Hofstee <caelian@gmail.com>)
|
||||
- Fixed crash in asm code in wrlib, with new versions of gcc.
|
||||
- Fixed bug in the x86_PseudoColor_32_to_8() function which incorrectly
|
||||
used the r, g, b fields in the conversion.
|
||||
- Fixed x86 ASM code in wrlib to work on 64 bit architectures.
|
||||
- Fixed the focus flicker seen with some apps (notably gtk2)
|
||||
(Alexey Spiridonov <snarkmaster@gmail.com>)
|
||||
- Fixed all crashing bugs that were generated by wmaker starting with the
|
||||
WMState file missing.
|
||||
- Added NetWM support (a modified version of the patch originaly written
|
||||
by Peter Zijlstra <a.p.zijlstra@chello.nl>)
|
||||
- Applied patch to enhance the Virtual Desktop behaviour, and to integrate
|
||||
it with the NetWM code (Peter Zijlstra <a.p.zijlstra@chello.nl>)
|
||||
- Applied a few xinerama and placement fixes (Peter Zijlstra
|
||||
<a.p.zijlstra@chello.nl>)
|
||||
- Fixed memory leak in dock code.
|
||||
- Fixed and enhanced the text wrapping in WINGs.
|
||||
- Fixed the layout of some elements in WPrefs.app
|
||||
- Added workaround for aplications that don't set the required hints on the
|
||||
client leader window, but they set them on normal windows (observer with
|
||||
KDE 3.3.0 mainly). This will allow these apps to get an appicon again.
|
||||
(they should be fixed still)
|
||||
- Added workaround for applications that do not set a command with
|
||||
XSetCommand(), but instead they set the _NET_WM_PID property. This works
|
||||
with operating systems that offer a /proc interface similar to what linux
|
||||
has. (This also is to fix problems with KDE 3.3.0 apps, but not only them).
|
||||
- Fixed bug with autostart and exit scripts not being executed if user
|
||||
GNUstep path was different from ~/GNUstep (when setting GNUSTEP_USER_ROOT)
|
||||
- Removed legacy OFFIX_DND support code
|
||||
- Fixed the signal handler for crashes (ie, removed it) and made wmaker
|
||||
restarting be made automatically by a monitoring process.
|
||||
- Made NetWM support be enabled by default
|
||||
- Removed old code to store/restore workspace state (now relies on netwm)
|
||||
- Added a (simple) Font Configuration for fontconfig fonts
|
||||
- MacOS X style window switching panel (navigate through windows with Alt-Tab
|
||||
or arrow keys)
|
||||
- Added support for NET_WM_NAME/NET_WM_ICON_NAME
|
||||
- Moved out font name conversion code from getstyle/setstyle/convertfonts and
|
||||
made it support fontsets
|
||||
- Converted all menu and po files to UTF-8
|
||||
- Updated de.po (Thomas Otto <3.1415926535897932384626433832@gmx.net>)
|
||||
- Fixed a crash bug when switching workspaces
|
||||
- Removed obsoleted scripts from util: wsetfont, wmchlocale, wcopy, wpaste
|
||||
|
||||
|
||||
Changes since version 0.80.1:
|
||||
.............................
|
||||
|
||||
- Fixed a buffer overflow when allocating an RImage struct.
|
||||
- Fixed a buffer overflow when allocating a RImage struct.
|
||||
|
||||
|
||||
Changes since version 0.80.0:
|
||||
@@ -674,9 +830,9 @@ Changes since version 0.51.2:
|
||||
- fixed focus problem with unfocusable windows
|
||||
- fixed bug in WPrefs that changed EXIT to SHUTDOWN
|
||||
- fixed menu title messup bug in WPrefs
|
||||
- added a dot to mark hidden applications (compile time) (id@windowmaker.org)
|
||||
- enhancements to the modelock patch (id@windowmaker.org)
|
||||
- show kbd mode for modelock (id@windowmaker.org)
|
||||
- added a dot to mark hidden applications (compile time) (id@windowmaker.info)
|
||||
- enhancements to the modelock patch (id@windowmaker.info)
|
||||
- show kbd mode for modelock (id@windowmaker.info)
|
||||
- enhanced positioning of transient windows
|
||||
- added dynamically loadable texture renderer code
|
||||
from Tobias Gloth <gloth@online.de>
|
||||
@@ -1517,7 +1673,7 @@ Changes since version 0.14.1:
|
||||
They are icons for dock, clip, defaultAppIcon, sound server and for xterm.
|
||||
All the rest needed for apps that can be started from menu, and have entries
|
||||
in WMWindowAttributes, are in WindowMaker-data.tar.gz which can be found on
|
||||
http://windowmaker.org/ or ftp://ftp.windowmaker.org/pub/contrib/icons
|
||||
http://windowmaker.info/ or ftp://ftp.windowmaker.info/pub/contrib/icons
|
||||
- Changed the SlideWindow() function to better adapt to slow machines. Also
|
||||
the animation constants are now run time. They are IconSlideDelay = 0;
|
||||
IconSlideStep = 5; and IconSlideSlowDown = 50; See NEWS for a more in depth
|
||||
@@ -1585,7 +1741,7 @@ Changes since version 0.14.0:
|
||||
or exiting, while an Attribute Editor panel is open.
|
||||
- Put clip.tif, clip.png, clip.xpm, clip2.tif, clip2.xpm, Cone.xpm and
|
||||
Penguin.xpm in WindowMaker-data_tar.gz. These are icons intended for fiend.
|
||||
It can be found on ftp://ftp.windowmaker.org/pub/wmaker/contrib/icons
|
||||
It can be found on ftp://ftp.windowmaker.info/pub/wmaker/contrib/icons
|
||||
|
||||
|
||||
|
||||
|
||||
90
FAQ
90
FAQ
@@ -143,10 +143,9 @@ here for example screenshots.
|
||||
1.2 Where can I get Window Maker?
|
||||
----------------------------------
|
||||
The official site to get new developmental versions from is
|
||||
ftp://ftp.windowmaker.org/pub/beta/srcs/.
|
||||
http://windowmaker.org/pub/source/beta/
|
||||
|
||||
NOTE: Also see http://wm.current.nu/downloads.html for the latest
|
||||
Stable and Development versions.
|
||||
The mercurial repository is available at https://hg.windowmaker.org/wmaker
|
||||
|
||||
The development versions are usually very stable themselves, so if you
|
||||
want to have all the newest features, you can rather safetly go with the
|
||||
@@ -158,23 +157,15 @@ crash.
|
||||
|
||||
1.3 Where are the mailing list archives?
|
||||
----------------------------------------
|
||||
Phillip Smith from Netplex, our wonderful provider of windowmaker.org, has set
|
||||
up some new lists from the domain. Please read the information on the web
|
||||
pages at http://www.windowmaker.org/lists.html for information on how to
|
||||
subscribe, the posting guidelines, and how to access the web archives.
|
||||
|
||||
Many thanks to Ed Orcutt who hosted the original lists from his own machine
|
||||
for many years and Caldera who graciously allowed Ed to continue hosting
|
||||
from them when he moved to his new position with them. Ed provided a very
|
||||
valuable service for many years and we are sad to see him go.
|
||||
Please read the information on the web pages at http://lists.windowmaker.org/
|
||||
for information on how to subscribe, the posting guidelines, and how to access
|
||||
the web archives.
|
||||
|
||||
|
||||
1.4 Where is more documentation on configuring Window Maker?
|
||||
----------------------------------
|
||||
Besides the mailing list archives, there are nice documents in
|
||||
ftp://ftp.windowmaker.org/pub/docs/, at
|
||||
http://wm.current.nu/downloads.html on my download page and at
|
||||
http://wm.current.nu/user-guide/index.htm in the online user-guide.
|
||||
http://windowmaker.org/documentation.php
|
||||
|
||||
|
||||
1.5 What is an appicon?
|
||||
@@ -182,51 +173,33 @@ http://wm.current.nu/user-guide/index.htm in the online user-guide.
|
||||
An appicon is the icon (without the tiny titlebar a minimized application icon
|
||||
has) produced by most applications that initially is in the bottom left corner
|
||||
of the screen while an application is running. For an example, run xterm and
|
||||
notice the icon in the corner. (Make sure that you use xterm and not a
|
||||
default older rxvt because older versions of rxvt do not properly set their
|
||||
window attributes.)
|
||||
notice the icon in the corner.
|
||||
|
||||
|
||||
1.6. How can I get a question added to the FAQ?
|
||||
----------------------------------
|
||||
Right now, the only method is to mail Chris Green <sprout@dok.org> or
|
||||
myself <largo@current.nu> the question or post it on the Window Maker
|
||||
Mailing list, and see if enough people have the same problem.
|
||||
Ask on the mailing list, or send your request to faqs@windowmaker.org
|
||||
|
||||
If you are a developer and would like to be able to edit the official FAQ on
|
||||
Chris's site, let him know at <sprout@dok.org>
|
||||
|
||||
He is currently pondering writing a front end that allows everyone to add
|
||||
entries and only require a moderator approval before being posted.
|
||||
Other avenues are the Window Maker wiki
|
||||
http://bugs.windowmaker.org/projects/wmaker/wiki
|
||||
and the forums
|
||||
http://bugs.windowmaker.org/projects/wmaker/boards
|
||||
|
||||
|
||||
1.7. How do I report bugs?
|
||||
----------------------------------
|
||||
You can look at the BUGFORM file in your tarball of Window Maker.
|
||||
Alternatively, you can use the Window Maker Bugtracker at
|
||||
http://windowmaker.org/cgi-bin/bugs.
|
||||
http://bugs.windowmaker.org/projects/wmaker/issues
|
||||
|
||||
|
||||
1.8. Is there an anomymous cvs server?
|
||||
1.8. Is there a public source code repository?
|
||||
----------------------------------
|
||||
Yes there is. To check out from cvs, first
|
||||
|
||||
export CVSROOT=":pserver:anoncvs@cvs.net-community.com:/gnustep"
|
||||
cvs login
|
||||
|
||||
'anoncvs' is the password.
|
||||
|
||||
Then issue the command. "wm" is the name of the module.
|
||||
|
||||
cvs -z3 checkout -d WindowMaker wm
|
||||
|
||||
|
||||
To update your source tree, cd to the WindowMaker directory and type
|
||||
|
||||
cvs -z3 update
|
||||
|
||||
inside the WindowMaker directory.
|
||||
Yes there is. To check out from mercurial use:
|
||||
hg clone http://hg.windowmaker.org/wmaker wmaker
|
||||
|
||||
To update your source tree, cd to the wmaker directory and type
|
||||
hg pull
|
||||
|
||||
|
||||
|
||||
@@ -365,8 +338,8 @@ for your convenience.
|
||||
|
||||
|
||||
2.8 Can I use WindowMaker with KDE or GNOME or CDE?
|
||||
----------------------------------
|
||||
Contrary to a lot of people thinks, KDE is NOT a window manager. KDE is
|
||||
---------------------------------------------------
|
||||
Contrary to what a lot of people think, KDE is NOT a window manager. KDE is
|
||||
a suite of various applications that includes a custom window manager (kwm).
|
||||
The same is true for CDE.
|
||||
|
||||
@@ -386,7 +359,7 @@ mouse.
|
||||
|
||||
|
||||
2.9 How do I get Window Maker working with xdm in Redhat 5.[01]?
|
||||
----------------------------------
|
||||
----------------------------------------------------------------
|
||||
After running wmaker.inst and letting it write to .xinitrc,
|
||||
cp .xinitrc .xsession
|
||||
and make sure that /usr/local/bin is in your $PATH for the Xserver. You can
|
||||
@@ -1102,7 +1075,7 @@ keep-on-top options for the dock and clip.
|
||||
4.18 How do I restore the configuration app to the dock?
|
||||
----------------------------------]
|
||||
You should start it from a terminal using its full path name, which is
|
||||
/usr/local/GNUstep/Apps/WPrefs.app/WPrefs
|
||||
/usr/local/GNUstep/Applications/WPrefs.app/WPrefs
|
||||
by default.
|
||||
|
||||
|
||||
@@ -1192,10 +1165,10 @@ Several Nice applications are available:
|
||||
http://www.geocities.com/SiliconValley/Vista/2471/linux.htm#xapps
|
||||
|
||||
ascd,WMRack,asmixer,asmodem, and others
|
||||
ftp://ftp.windowmaker.org/pub/wmaker/contrib/srcs/apps/
|
||||
ftp://ftp.windowmaker.info/pub/wmaker/contrib/srcs/apps/
|
||||
|
||||
wmavgload, wmmount, and wmload
|
||||
ftp://ftp.windowmaker.org/pub/wmaker/contrib/srcs/utils/
|
||||
ftp://ftp.windowmaker.info/pub/wmaker/contrib/srcs/utils/
|
||||
|
||||
wmppp-wmifs, wmtime, wmmon and other nifty apps
|
||||
http://windowmaker.mezaway.org/
|
||||
@@ -1311,14 +1284,8 @@ in routines/xsci/jpc_SGraph.c
|
||||
5.12 Netscape shows black and white icons
|
||||
----------------------------------
|
||||
|
||||
This is because Netscape uses monochrome icons when running under olwm
|
||||
and you are using the OPEN LOOK emulation option. If you do not use any XView
|
||||
apps anyway, recompile Window Maker without the --enable-openlook option.
|
||||
If you need OPEN LOOK emulation, you will have to get used to the monochrome
|
||||
icons or change then manually in the Attributes panel for each window.
|
||||
I have also seen this happen on some systems if you run Netscape in a high
|
||||
colour depth (32bpp) regardless of whether you're using openlook or not.
|
||||
That is a Netscape bug. Therefore, bug Netscape.
|
||||
I have seen this happen on some systems if you run Netscape in a high
|
||||
colour depth (32bpp). That is a Netscape bug. Therefore, bug Netscape.
|
||||
|
||||
|
||||
5.13 Snow flakes from xsnow don't acumulate on titlebars!
|
||||
@@ -1470,11 +1437,14 @@ the files manually. Or download the whole distribution.
|
||||
|
||||
|
||||
7.5 Will you add GNOME or KDE support?
|
||||
----------------------------------
|
||||
--------------------------------------
|
||||
|
||||
Support for GNOME (and KDE) hints is included since 0.50.0. You have to
|
||||
enable them at compile-time using the appropriate arguments to ./configure.
|
||||
Please read the INSTALL file for more details.
|
||||
Note: starting with version 0.90.0, support for legacy Gnome-1.x and KDE-2.x
|
||||
was dropped in favor of NETWM support (used by both Gnome-2.x and KDE-3.x)
|
||||
|
||||
|
||||
-=-=-=-=-
|
||||
Themes:
|
||||
|
||||
33
FAQ.I18N
33
FAQ.I18N
@@ -32,24 +32,35 @@ If I18N support does not work for you, check these:
|
||||
here:
|
||||
ftp://ftp.linux.or.jp/pub/RPM/glibc
|
||||
|
||||
- if you'd like to display multibyte characters, set the
|
||||
MultiByteText option to YES in ~/GNUstep/Defaults/WindowMaker
|
||||
and ~/GNUstep/Defaults/WMGLOBAL
|
||||
|
||||
- the fonts you're using support your locale. if your font
|
||||
setting on $HOME/GNUstep/Defaults/WindowMaker is like..
|
||||
|
||||
WindowTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
|
||||
MenuTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
|
||||
WindowTitleFont = "Trebuchet MS:bold:pixelsize=12";
|
||||
MenuTitleFont = "Trebuchet MS:bold:pixelsize=12";
|
||||
......................................................
|
||||
|
||||
then you can't display non iso8859-x charcters by helvetica.
|
||||
so quick way to display various languages' font is to change
|
||||
all the font settings into:
|
||||
then you can't display asian language (ja,ko,ch) characters using
|
||||
Trebuchet MS. A font that is guaranteed to work for any language is
|
||||
sans (or sans-serif). sans is not a font itself, but an alias which
|
||||
points to multiple fonts and will load the first in that list that
|
||||
has the ability to show glyphs in your language. If you don't know
|
||||
a font that is suited for you language you can always set all your
|
||||
fonts to something like:
|
||||
|
||||
"-*-*-medium-r-normal-*-14-*-*-*-*-*-*-*"
|
||||
"sans:pixelsize=12"
|
||||
|
||||
and also you need to change font settings in style files in
|
||||
However, please note that if your font is something like:
|
||||
|
||||
"Trebuchet MS,Luxi Sans,sans:pixelsize=12"
|
||||
|
||||
this will not be able to display asian languages if any of the
|
||||
previous fonts before sans are installed. This is because unlike
|
||||
the proper font pickup that sans guarantees for your language,
|
||||
this construct only allows a font fallback mechanism, which tries
|
||||
all the fonts in the list in order, until it finds one that is
|
||||
available, even if it doesn't support your language.
|
||||
|
||||
Also you need to change font settings in style files in
|
||||
the "$HOME/Library/WindowMaker/Style" directory.
|
||||
|
||||
- the LC_CTYPE environment variable is unset or it has the correct
|
||||
|
||||
@@ -44,12 +44,6 @@ Pokud v
|
||||
|
||||
ftp://ftp.linux.or.jp/pub/RPM/glibc
|
||||
|
||||
- pokud chcete zobrazovat multibyte znaky, nastavte volbu MultiByteText
|
||||
na YES v souborech:
|
||||
|
||||
~/GNUstep/Defaults/WindowMaker
|
||||
~/GNUstep/Defaults/WMGLOBAL
|
||||
|
||||
- fonty, které používáte by měli být podporované vaším místním nastavením.
|
||||
Jestliže vaše nastavení fontů v souboru ~/GNUstep/Defaults/WindowMaker
|
||||
vypadá takto:
|
||||
|
||||
@@ -35,10 +35,6 @@ Ak v
|
||||
|
||||
ftp://ftp.linux.or.jp/pub/RPM/glibc
|
||||
|
||||
- ak chcete zobrazovať multibyte znaky, nastavte možnosť
|
||||
MultiByteText YES v ~/GNUstep/Defaults/WindowMaker a
|
||||
~/GNUstep/Defaults/WMGLOBAL
|
||||
|
||||
- fonty, ktoré používate, podporujú vaše miesne nastavenia.
|
||||
Ak vaše nastavenia fontov v ~/GNUstep/Defaults/WindowMaker
|
||||
vyzerajú takto:
|
||||
|
||||
104
INSTALL
104
INSTALL
@@ -64,23 +64,18 @@ The following software is required to use Window Maker:
|
||||
The following is required to build Window Maker:
|
||||
|
||||
- Basic obvious stuff
|
||||
If you will build Window Maker, make sure you have gcc (or some
|
||||
other ANSI C compiler) and the X header files installed. Specially
|
||||
for newbie Linux users: you must install all X development packages
|
||||
and the gcc suite. Otherwise you won't be able to build any X
|
||||
program, including Window Maker.
|
||||
gcc (or some other ANSI C compiler)
|
||||
glibc development files (usually glibc-devel in Linux distributions)
|
||||
X development files (XFree86-devel or something similar)
|
||||
|
||||
- autoconf, automake and libtool
|
||||
These tools are NOT needed, but IF you have one or
|
||||
more of them installed, make sure you have ALL of the following
|
||||
with exactly these versions:
|
||||
autoconf 2.54
|
||||
automake 1.4
|
||||
libtool 1.4.2
|
||||
If you have a different version, disable them by temporarily
|
||||
renaming them to something else or uninstalling them from your
|
||||
system. If you don't develop software you don't need them,
|
||||
so you can safely uninstall.
|
||||
|
||||
- Xft2
|
||||
and its dependencies (such as freetype2 and fontconfig)
|
||||
You will also need the development files for it (xft2-devel)
|
||||
|
||||
|
||||
OPTIONAL:
|
||||
@@ -125,13 +120,19 @@ might work too.
|
||||
CONFIGURE OPTIONS:
|
||||
==================
|
||||
|
||||
If you downloaded the cvs or git versions, type
|
||||
|
||||
./autogen.sh
|
||||
|
||||
to generate the config files.
|
||||
|
||||
These options can be passed to the configure script to enable/disable
|
||||
some Window Maker features. Example:
|
||||
|
||||
./configure --enable-kde --enable-gnome
|
||||
|
||||
will configure Window Maker with KDE and GNOME supported compiled in.
|
||||
./configure --enable-modelock --disable-gif
|
||||
|
||||
will configure Window Maker with modelock supported and disable gif support.
|
||||
Normally, you won't need any of them.
|
||||
|
||||
To get a list of other options, run ./configure --help
|
||||
|
||||
@@ -153,15 +154,6 @@ To get a list of other options, run ./configure --help
|
||||
--disable-motif
|
||||
disable support for mwm window manager hints
|
||||
|
||||
--enable-openlook
|
||||
enable support for OPEN LOOK(tm) window manager hints
|
||||
|
||||
--enable-gnome
|
||||
enable support for GNOME window manager hints
|
||||
|
||||
--enable-kde
|
||||
enable support for kde/kwm window manager hints
|
||||
|
||||
--enable-lite
|
||||
remove things that are already supported in desktop environments,
|
||||
like KDE and GNOME. Disabled things are: window list, root
|
||||
@@ -278,27 +270,6 @@ apply.
|
||||
* make sure you have /usr/local/lib in /etc/ld.so.conf before running
|
||||
ldconfig;
|
||||
|
||||
* if you have problems that mention an error message with --no-reexec
|
||||
uninstall libtool-1.2b and install libtool-1.3 instead. libtool-1.3
|
||||
can be found in ftp.gnu.org Also read the TROUBLESHOOTING section;
|
||||
|
||||
* if you installed the Window Maker package from RedHat and are
|
||||
installing a new version of it by hand (compiling yourself), uninstall
|
||||
the package from RedHat before.
|
||||
|
||||
* make sure you have a symbolic link from /usr/include/X11 to
|
||||
/usr/X11R6/include/X11 (if not, type ln -s /usr/X11R6/include/X11
|
||||
/usr/include/X11 )
|
||||
|
||||
* make sure you have /lib/cpp pointing to the cpp program
|
||||
|
||||
If you have any doubts in doing any of the stuff above, please
|
||||
don't hesitate to contact the RedHat user support. They will
|
||||
kindly answer to all your questions regarding their system.
|
||||
They also know much more about their own system than us
|
||||
(we don't use RedHat).
|
||||
|
||||
|
||||
- PowerPC MkLinux
|
||||
You will need to have the latest version of Xpmac. Older versions
|
||||
seem to have bugs that cause the system to hang.
|
||||
@@ -352,9 +323,9 @@ following.
|
||||
to get a complete listing of other options that are available.
|
||||
|
||||
2. Run configure with the options you want. For example, if you
|
||||
want to use the --enable-kde option, type:
|
||||
want to use the --enable-modelock option, type:
|
||||
|
||||
./configure --enable-kde
|
||||
./configure --enable-modelock
|
||||
|
||||
3. (optional) Edit src/wconfig.h with your favorite text editor
|
||||
and browse through it for some options you might want to change.
|
||||
@@ -401,11 +372,10 @@ Installing the extras package
|
||||
|
||||
Unpack WindowMaker-extra-<version-number>.tar.gz in /usr/local/share
|
||||
|
||||
You can get the file at ftp://ftp.windowmaker.org. This file is optional
|
||||
and only have a few icons, and themes. Look for the latest <version-number>
|
||||
available.
|
||||
Also there is a WindowMaker-extra.readme to instruct you where that package
|
||||
should go.
|
||||
You can get the file at http://windowmaker.org/pub/source/release/. This file
|
||||
is optional and only have a few icons, and themes. Look for the latest
|
||||
<version-number> available. Also there is a WindowMaker-extra.readme to
|
||||
instruct you where that package should go.
|
||||
|
||||
|
||||
|
||||
@@ -418,7 +388,7 @@ when running configure in step 2 of building Window Maker. You will
|
||||
also need to supply the --with-appspath option, to specify the path for
|
||||
WPrefs.app Example:
|
||||
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Applications
|
||||
|
||||
|
||||
Then make /home/jshmoe/bin be included in your search PATH, add
|
||||
@@ -567,31 +537,3 @@ menu.pt
|
||||
menu
|
||||
|
||||
|
||||
5 - If you chose a language that uses multi-byte characters, you must
|
||||
configure the fonts appropriately. Read the manual page for XCreateFontSet
|
||||
to have more details about it. You must change the ~/G/D/WindowMaker file
|
||||
for fonts used in titlebars, menus and other things. For fonts used in
|
||||
dialog windows, change ~/G/D/WMGLOBAL. The %d in the font names must not be
|
||||
removed. You can also use the supplied wsetfont script for the task.
|
||||
Read the script itself for instructions.
|
||||
|
||||
For example, you can specify the following in ~/G/D/WindowMaker:
|
||||
|
||||
WindowTitleFont = "-*-helvetica-bold-r-normal-*-12-*,-*-*-medium-r-normal-*-14-*";
|
||||
MenuTitleFont = "-*-helvetica-bold-r-normal-*-12-*,-*-*-medium-r-normal-*-14-*";
|
||||
MenuTextFont = "-*-helvetica-medium-r-normal-*-12-*,-*-*-medium-r-normal-*-14-*";
|
||||
IconTitleFont = "-*-helvetica-medium-r-normal-*-8-*,-*-*-medium-r-normal-*-12-*";
|
||||
ClipTitleFont = "-*-helvetica-bold-r-normal-*-10-*,-*-*-medium-r-normal-*-12-*";
|
||||
DisplayFont = "-*-helvetica-medium-r-normal-*-12-*,-*-*-medium-r-normal-*-12-*";
|
||||
|
||||
and in ~/G/D/WMGLOBAL:
|
||||
|
||||
SystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*";
|
||||
BoldSystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*";
|
||||
|
||||
The above 2 fonts are only used by applications that use WINGs (WindowMaker
|
||||
and WPrefs.app)
|
||||
|
||||
The wsetfont script that's supplied will allow you to change the font
|
||||
settings in a easier way. Take a look in the script for details on usage.
|
||||
|
||||
|
||||
13
INSTALL.cs
13
INSTALL.cs
@@ -153,15 +153,6 @@ Seznam ostatn
|
||||
--disable-motif
|
||||
zakáže podporu pokynů pro okenní manažer mwm.
|
||||
|
||||
--enable-openlook
|
||||
povolí podporu pokynů pro okenní manažer OPEN LOOK(tm).
|
||||
|
||||
--enable-gnome
|
||||
povolí podporu pokynů pro GNOME.
|
||||
|
||||
--enable-kde
|
||||
povolí podporu pokynů pro KDE.
|
||||
|
||||
--enable-lite
|
||||
odstraní nástroje a funkce, které jsou už dostupné v desktopových
|
||||
prosředích KDE a GNOME. Odstraní se: seznam oken, menu aplikací,
|
||||
@@ -420,7 +411,7 @@ Instalov
|
||||
|
||||
Rozbalte WindowMaker-extra-<číslo_verze>.tar.gz v adresáři /usr/local/share
|
||||
|
||||
Tento soubor si můžete sehnat na adrese: ftp://ftp.windowmaker.org. Instalace
|
||||
Tento soubor si můžete sehnat na adrese: ftp://ftp.windowmaker.info. Instalace
|
||||
tohoto souboru vůbec není nutná. tento balíček obsahuje několik ikon a témat.
|
||||
Hledejte poslední dostupnou verzi. V balíčku také naleznete soubor
|
||||
WindowMaker-extra.readme, který vám poradí, co máte udělat.
|
||||
@@ -435,7 +426,7 @@ domovsk
|
||||
cestu pro WPrefs.app.
|
||||
Příklad:
|
||||
|
||||
./configure --prefix=/home/karel --with-appspath=/home/karel/GNUstep/Apps
|
||||
./configure --prefix=/home/karel --with-appspath=/home/karel/GNUstep/Applications
|
||||
|
||||
Potom přidejte adresář /home/karel/bin do systémové proměnné PATH a adresář
|
||||
/home/karel/lib do sytémové proměnné LD_LIBRARY_PATH a nakonec spusťte
|
||||
|
||||
13
INSTALL.es
13
INSTALL.es
@@ -69,7 +69,7 @@ Lo siguiente se necesita para compilar Window Maker:
|
||||
compilar ningún programa X, incluyendo Window Maker.
|
||||
|
||||
- libPropList
|
||||
Esta biblioteca se puede encontrar en ftp://ftp.windowmaker.org/pub/libs
|
||||
Esta biblioteca se puede encontrar en ftp://ftp.windowmaker.info/pub/libs
|
||||
o en ftp://ftp.gnome.org/pub/libPropList
|
||||
Instálela antes de compilar Window Maker.
|
||||
|
||||
@@ -165,15 +165,6 @@ Para obtener una lista de otras opciones, ejecute ./configure --help
|
||||
--disable-motif
|
||||
desactiva el soporte para el gestor de ventanas mwm.
|
||||
|
||||
--enable-openlook
|
||||
activa el soporte para el gestor de ventanas OPEN LOOK(tm)
|
||||
|
||||
--enable-gnome
|
||||
activa el soporte para el gestor de ventanas GNOME.
|
||||
|
||||
--enable-kde
|
||||
activa el soporte para el gestor de ventanas kde/kwm.
|
||||
|
||||
--enable-lite
|
||||
quita cosas que ya están soportadas en los entornos de escritorio,
|
||||
tal como KDE y Gnome. Desactiva cosas como: lista de ventanas,
|
||||
@@ -422,7 +413,7 @@ opci
|
||||
También necesitará proporcionar la opción --with-appspath, para especificar la ruta
|
||||
para WPrefs.app. Ejemplo:
|
||||
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Applications
|
||||
|
||||
Luego haga /home/jshmoe/bin para que se lo incluya en su ruta de búsqueda, agregue
|
||||
/home/jshmoe/lib a su variable de entorno LD_LIBRARY_PATH y ejecute bin/wmaker.inst
|
||||
|
||||
46
INSTALL.fr
46
INSTALL.fr
@@ -3,9 +3,9 @@
|
||||
|
||||
|
||||
|
||||
PLATEFORMES SUPPORTEES
|
||||
PLATEFORMES SUPPORTÉES
|
||||
======================
|
||||
(c.a.d : j'ai entendu dire que la compilation a été réalisée avec succès sur..)
|
||||
(c.à.d. : j'ai entendu dire que la compilation a été réalisée avec succès sur..)
|
||||
|
||||
- Intel GNU/Linux Conectiva 5.9 (beta)
|
||||
- Intel GNU/Linux Slackware
|
||||
@@ -49,7 +49,7 @@ Tout patch qui pourrait faciliter l'adaptation
|
||||
est le bienvenu.
|
||||
|
||||
|
||||
PRE-REQUIS
|
||||
PRÉ-REQUIS
|
||||
==========
|
||||
|
||||
Les logiciels suivants sont nécessaires à l'utilisation de Window Maker :
|
||||
@@ -124,8 +124,6 @@ fonctionner aussi bien.
|
||||
Si vous voulez disposer des traductions en d'autres langues, GNU gettext
|
||||
est nécessaire. Les autres versions de gettext sont incompatibles et ne
|
||||
fonctionneront pas.
|
||||
If you want to use translated messages, you will need GNU gettext.
|
||||
Other versions of gettext are not compatible and will not work.
|
||||
Vous trouverez la version GNU sur ftp://ftp.gnu.org
|
||||
|
||||
|
||||
@@ -143,12 +141,12 @@ configurera Window Maker avec le support int
|
||||
Afin d'obtenir la liste des autres options, exécutez ./configure --help
|
||||
|
||||
--with-libs-from
|
||||
ajoute des chemins d"accès pour la recherche des librairies.
|
||||
ajoute des chemins d'accès pour la recherche des librairies.
|
||||
L'option -L doit précéder chaque chemin d'accès, comme suit :
|
||||
--with-libs-from="-L/opt/libs -L/usr/local/lib"
|
||||
|
||||
--with-incs-from
|
||||
ajoute des chemins d"accès pour la recherche des fichiers d'en-tête.
|
||||
ajoute des chemins d'accès pour la recherche des fichiers d'en-tête.
|
||||
L'option -I doit précéder chaque chemin d'accès, comme suit :
|
||||
--with-incs-from="-I/opt/headers -I/usr/local/include"
|
||||
|
||||
@@ -169,18 +167,6 @@ Afin d'obtenir la liste des autres options, ex
|
||||
désactive le support pour les fonctionnalités en rapport avec le gestionnaire
|
||||
de fenêtres mwm.
|
||||
|
||||
--enable-openlook
|
||||
désactive le support pour les fonctionnalités en rapport avec le gestionnaire
|
||||
de fenêtres OPEN LOOK(tm).
|
||||
|
||||
--enable-gnome
|
||||
désactive le support pour les fonctionnalités en rapport avec le gestionnaire
|
||||
de fenêtres GNOME.
|
||||
|
||||
--enable-kde
|
||||
désactive le support pour les fonctionnalités en rapport avec le gestionnaire
|
||||
de fenêtres kde/kwm.
|
||||
|
||||
--enable-lite
|
||||
désactive des fonctionnalités déjà prises en compte par les gestionnaires de
|
||||
bureau tels que KDE et GNOME. Celà concerne : la liste de fenêtres, le menu
|
||||
@@ -217,7 +203,7 @@ Afin d'obtenir la liste des autres options, ex
|
||||
désactive l'utilisation de "shaped windows" (pour oclock, xeyes, etc.).
|
||||
|
||||
|
||||
NOTES SPECIFIQUES AUX PLATEFORMES
|
||||
NOTES SPÉCIFIQUES AUX PLATEFORMES
|
||||
=================================
|
||||
|
||||
- machines DEC/Alpha
|
||||
@@ -242,7 +228,7 @@ Sujet : Re : Est-ce que le paquetage WindowMaker fonctionne correctement sur Alp
|
||||
> pour compiler sur Alpha?
|
||||
|
||||
Notez bien : les Alphas dont je me sers ne sont jamais sous X et ne sont pas près
|
||||
de le faire.
|
||||
de l'être.
|
||||
|
||||
Bien souvent, la configuration des Alphas n'inclut qu'un volume ridiculement
|
||||
petit de mémoire partagée. Aussi il n'est pas étonnant qu'un grand nombre
|
||||
@@ -313,7 +299,7 @@ est soumis
|
||||
* si vous rencontrez des messages d'erreur en rapport avec "--no-reexec",
|
||||
désinstallez libtool-1.2b et installez libtool-1.3.
|
||||
libtool-1.3 peut être trouvé sur ftp.gnu.org.
|
||||
Consultez aussi la section PROBLEMES;
|
||||
Consultez aussi la section PROBLÈMES;
|
||||
|
||||
* si vous aviez auparavant installé le paquetage de Window Maker livré
|
||||
avec RedHat et que vous voulez installer maintenant manuellement une nouvelle
|
||||
@@ -359,7 +345,7 @@ INSTALLATION
|
||||
|
||||
Compiler Window Maker
|
||||
---------------------
|
||||
Pour aller vite, tapez ce qui suit sous un prompt shell :
|
||||
Pour aller vite, tapez ce qui suit dans un prompt shell :
|
||||
|
||||
./configure
|
||||
make
|
||||
@@ -369,7 +355,7 @@ puis, loguez-vous en tant que root and tapez :
|
||||
make install
|
||||
ldconfig
|
||||
|
||||
ou, si vous voulez ôter les infos de débogage des exécutables et les
|
||||
ou, si vous voulez ôter les infos de débogage des exécutables et ainsi les
|
||||
rendre plus petits, tapez plutôt :
|
||||
|
||||
make install-strip
|
||||
@@ -392,7 +378,7 @@ pouvez faire :
|
||||
|
||||
./configure --enable-kde
|
||||
|
||||
3. (optionnel) Editez src/wconfig.h avec votre editeur de texte favori et
|
||||
3. (optionnel) Éditez src/wconfig.h avec votre éditeur de texte favori et
|
||||
et modifiez sont contenu à votre guise.
|
||||
|
||||
4. Compilez. Il faut juste taper :
|
||||
@@ -443,7 +429,7 @@ Installation du paquetage additionnel
|
||||
|
||||
Décompressez WindowMaker-extra-<version-number>.tar.gz dans /usr/local/share
|
||||
|
||||
Vous trouverez le fichier sur ftp://ftp.windowmaker.org. Ce paquetage est optionnel,
|
||||
Vous trouverez le fichier sur ftp://ftp.windowmaker.info. Ce paquetage est optionnel,
|
||||
il contient des icônes et des thèmes supplémentaires. Vérifiez que vous avez
|
||||
bien la derniere version de ce paquetage.
|
||||
Il y a aussi un fichier WindowMaker-extra.readme qui indique comment procéder à
|
||||
@@ -461,7 +447,7 @@ l'option --prefix correctement renseign
|
||||
Il est aussi nécessaire d'utiliser l'option --with-appspath, afin de préciser
|
||||
le chemin d'accès à WPrefs.app. Par exemple :
|
||||
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Applications
|
||||
|
||||
|
||||
Puis, faites en sorte que /home/jshmoe/bin soit inclus dans votre PATH, ajoutez
|
||||
@@ -471,7 +457,7 @@ bin/wmaker.inst
|
||||
Bien sûr, /home/jshmoe est supposé être remplacé par votre répertoire personnel.
|
||||
|
||||
|
||||
MISE A JOUR
|
||||
MISE À JOUR
|
||||
===========
|
||||
|
||||
Si vous mettez à jour une version plus ancienne de Window Maker :
|
||||
@@ -482,7 +468,7 @@ Si vous mettez
|
||||
si nécessaire.
|
||||
|
||||
|
||||
PROBLEMES
|
||||
PROBLÈMES
|
||||
=========
|
||||
|
||||
Si vous rencontrez des problèmes pendant la phase de configuration, comme par
|
||||
@@ -492,7 +478,7 @@ du fichier config.log, vous y trouverez peut-
|
||||
ce problème.
|
||||
|
||||
|
||||
== erreur de chargement de polices, même si elles existent
|
||||
== erreur de chargement de polices, alors qu'elles existent
|
||||
|
||||
Essayez de recompiler sans le support pour le NLS.
|
||||
|
||||
|
||||
15
INSTALL.pt
15
INSTALL.pt
@@ -61,7 +61,7 @@ Para compilar o Window Maker voc
|
||||
programa X, incluindo o Window Maker.
|
||||
|
||||
- libPropList
|
||||
Você pode achar esta biblioteca em ftp://ftp.windowmaker.org/pub/libs ou
|
||||
Você pode achar esta biblioteca em ftp://ftp.windowmaker.info/pub/libs ou
|
||||
ftp://ftp.gnome.org/pub/libPropList. Você deve instalar corretamente
|
||||
esta biblioteca antes de instalar o Window Maker.
|
||||
|
||||
@@ -155,15 +155,6 @@ Para obter uma lista com outras opcoes, execute ./configure --help:
|
||||
--disable-motif
|
||||
Desativa compatibilidade com gerenciador de janelas mwm.
|
||||
|
||||
--enable-openlook
|
||||
Ativa compatibilidade com gerenciador de janelas OPEN LOOK(tm).
|
||||
|
||||
--enable-gnome
|
||||
Ativa compatibilidade com gerenciador de janelas GNOME.
|
||||
|
||||
--enable-kde
|
||||
Ativa compatibilidade com gerenciador de janelas kde/kwm.
|
||||
|
||||
--enable-lite
|
||||
Remove coisas que já são suportadas em ambientes desktops como o KDE
|
||||
e o GNOME. As opções desativadas são: lista de janelas (window list), menu de
|
||||
@@ -291,7 +282,7 @@ INSTALA
|
||||
|
||||
Desempacote o WindowMaker-extra-<numero-da-versao>.tar.gz no /usr/local/share.
|
||||
|
||||
Você pode pegar o arquivo no site ftp://ftp.windowmaker.org. Este arquivo
|
||||
Você pode pegar o arquivo no site ftp://ftp.windowmaker.info. Este arquivo
|
||||
é opcional e possui alguns ícones e temas. Procure pelo último <número-da-versão>
|
||||
disponível.
|
||||
Ainda há o WindowMaker-extra.readme para instruí-lo sobre onde o pacote deve ir.
|
||||
@@ -382,7 +373,7 @@ Compilando o Window Maker.
|
||||
Você ainda precisará fornecer a opção --with-appspath, para especificar o
|
||||
caminho do WPrefs.app. Exemplo:
|
||||
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Applications
|
||||
|
||||
Depois faça com que /home/jshome/bin seja incluído na variável PATH, adicione
|
||||
/home/jshome/lib na variável de ambiente LD_LIBRARY_PATH e rode bin/wmaker.inst
|
||||
|
||||
15
INSTALL.sk
15
INSTALL.sk
@@ -64,7 +64,7 @@ Nasledovn
|
||||
Window Maker.
|
||||
|
||||
- libPropList
|
||||
Túto kni¾nicu mo¾no nájs» na ftp://ftp.windowmaker.org/pub/libs alebo
|
||||
Túto kni¾nicu mo¾no nájs» na ftp://ftp.windowmaker.info/pub/libs alebo
|
||||
ftp://ftp.gnome.org/pub/libPropList. Nain¹talujte ju pred kompiláciou
|
||||
Window Makera.
|
||||
|
||||
@@ -161,15 +161,6 @@ Zoznam v
|
||||
--disable-motif
|
||||
zaká¾e podporu pre pokyny mana¾éra okien wmw
|
||||
|
||||
--enable-openlook
|
||||
povolí podporu pre pokyny mana¾éra okien OPEN LOOK(tm)
|
||||
|
||||
--enable-gnome
|
||||
povolí podporu pre pokyny mana¾éra okien GNOME
|
||||
|
||||
--enable-kde
|
||||
povolí podporu pre pokyny mana¾éra okien kde/kwm
|
||||
|
||||
--enable-lite
|
||||
odstráni veci, ktoré sa u¾ nachádzajú v desktopových prostrediach
|
||||
ako KDE a GNOME. Odstránené veci sú: zoznam okien, menu aplikácií,
|
||||
@@ -409,7 +400,7 @@ Installing the extras package
|
||||
|
||||
Unpack WindowMaker-extra-<version-number>.tar.gz in /usr/local/share
|
||||
|
||||
You can get the file at ftp://ftp.windowmaker.org. This file is optional
|
||||
You can get the file at ftp://ftp.windowmaker.info. This file is optional
|
||||
and only have a few icons, and themes. Look for the latest <version-number>
|
||||
available.
|
||||
Also there is a WindowMaker-extra.readme to instruct you where that package
|
||||
@@ -426,7 +417,7 @@ v druhom kroku kompil
|
||||
--with-appspath, pomocou ktorej ¹pecifikujete cestu pre WPrefs.app.
|
||||
Príklad:
|
||||
|
||||
./configure --prefix=/home/jshome --with-appspath=/home/jshome/GNUstep/Apps
|
||||
./configure --prefix=/home/jshome --with-appspath=/home/jshome/GNUstep/Applications
|
||||
|
||||
Poto pridajte adresár /home/jshome/bin do premennej PATH, /home/jshome/lib
|
||||
do premennej LD_LIBRARY_PATH a spustite bin/wmaker.inst
|
||||
|
||||
300
Install
300
Install
@@ -1,300 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# WindowMaker configuration and compilation script.
|
||||
#
|
||||
# Copyright (c) 1997, 1998, 1999 Alfredo K. Kojima
|
||||
#
|
||||
|
||||
export LINGUAS;LINGUAS=""
|
||||
if test "$NLSDIR" = ""; then
|
||||
export NLSDIR;NLSDIR="/usr/lib/locale"
|
||||
fi
|
||||
|
||||
|
||||
OPTIONS=""
|
||||
PREFIX="/usr/local"
|
||||
|
||||
perai() {
|
||||
echo "Type <Return> to continue"
|
||||
read nada
|
||||
}
|
||||
|
||||
|
||||
perform() {
|
||||
if ! $* ; then
|
||||
echo
|
||||
echo "Window Maker installation failed or aborted by user."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
help() {
|
||||
echo "Usage: $(basename $0) <switch>"
|
||||
echo "Where switches are:"
|
||||
echo " -s --quiet make silent build"
|
||||
echo " -h --help show this message"
|
||||
echo ""
|
||||
exit $1
|
||||
}
|
||||
|
||||
|
||||
OPTIONS=""
|
||||
MAKE_OPTIONS=""
|
||||
while [ -n "$1" ]
|
||||
do
|
||||
case "$1" in
|
||||
"-s"|"--quiet") OPTIONS="--quiet"
|
||||
MAKE_OPTIONS="-s";;
|
||||
"-h"|"--help") help 0;;
|
||||
*) echo "bad command-line parameter $1"
|
||||
help 1;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
trap "echo Window Maker installation aborted. ; exit 1" 2 3
|
||||
|
||||
echo
|
||||
echo "========================="
|
||||
echo "Window Maker Installation"
|
||||
echo "========================="
|
||||
echo
|
||||
echo "NOTE: If this script fails, read the INSTALL file and"
|
||||
echo "install by hand."
|
||||
echo
|
||||
echo "Please read the README, INSTALL and FAQ files before e-mailing "
|
||||
echo "questions. We will IGNORE any questions that are already"
|
||||
echo "answered in the documentation."
|
||||
echo
|
||||
perai
|
||||
echo "Did you read the INSTALL file?"
|
||||
echo -n "<y/n> "
|
||||
read rtfm
|
||||
if [ "$rtfm" != y ]; then
|
||||
echo "Please read the INSTALL file before installing"
|
||||
exit
|
||||
fi
|
||||
echo "Are you sure?"
|
||||
echo -n "<y/n> "
|
||||
read rtfm
|
||||
if [ "$rtfm" != y ]; then
|
||||
echo "Please read the INSTALL file before installing"
|
||||
exit
|
||||
fi
|
||||
echo "Are you lying?"
|
||||
echo -n "<y/n> "
|
||||
read rtfm
|
||||
if [ "$rtfm" != n ]; then
|
||||
echo "What a shame!"
|
||||
echo "Please read the INSTALL file before installing"
|
||||
exit
|
||||
fi
|
||||
echo "Do you *swear* that you really read the INSTALL file?"
|
||||
echo -n "<y/n> "
|
||||
read rtfm
|
||||
if [ "$rtfm" != y ]; then
|
||||
echo "Please read the INSTALL file before installing"
|
||||
exit
|
||||
fi
|
||||
echo "Last chance. You will not get help if you have some problem"
|
||||
echo "because you didn't read that file. Even if your computer explodes."
|
||||
echo "Do you *really* read it?"
|
||||
echo -n "<y/n> "
|
||||
read rtfm
|
||||
if [ "$rtfm" != y ]; then
|
||||
echo "Please read the INSTALL file before installing"
|
||||
exit
|
||||
fi
|
||||
echo
|
||||
echo "Ok, you have been warned."
|
||||
echo
|
||||
perai
|
||||
|
||||
|
||||
if test "$USER" != "root"; then
|
||||
echo
|
||||
echo "Warning: you must run this script as root to install"
|
||||
echo "Window Maker. Hit <Control>-<C> to quit this script."
|
||||
perai
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
echo
|
||||
echo "Option Selection"
|
||||
echo "================"
|
||||
|
||||
######################## KDE
|
||||
echo
|
||||
echo "Do you want KDE support?"
|
||||
echo -n "<y/n> [n] "
|
||||
read kde
|
||||
if [ "$kde" = y -o "$kde" = Y ]; then
|
||||
OPTIONS="$OPTIONS --enable-kde"
|
||||
fi
|
||||
|
||||
######################## GNOME
|
||||
echo
|
||||
echo "Do you want GNOME support?"
|
||||
echo -n "<y/n> [n] "
|
||||
read gnome
|
||||
if [ "$gnome" = y -o "$gnome" = Y ]; then
|
||||
OPTIONS="$OPTIONS --enable-gnome"
|
||||
fi
|
||||
|
||||
######################## OLWM
|
||||
echo
|
||||
echo "Do you want OPEN LOOK(tm)/olwm support?"
|
||||
echo -n "<y/n> [n] "
|
||||
read olwm
|
||||
if [ "$olwm" = y -o "$olwm" = Y ]; then
|
||||
OPTIONS="$OPTIONS --enable-openlook"
|
||||
fi
|
||||
|
||||
######################## NLS
|
||||
echo
|
||||
echo "Do you want National Language Support?"
|
||||
echo -n "<y/n> [n] "
|
||||
read NLS
|
||||
|
||||
if [ "$NLS" = "y" -o "$NLS" = "Y" ]; then
|
||||
NLS="Y"
|
||||
echo "The supported locales are:"
|
||||
ling=` (cd po; /bin/ls *.po) `
|
||||
ALL_LINGUAS=""
|
||||
for l in $ling; do
|
||||
lname=`(cd po; grep Language-Team $l|cut -f2- -d:|cut -f1 -d\\\\|cut -f1 -d\<)`
|
||||
lname=`echo $lname`
|
||||
lcode=`basename $l .po`
|
||||
ALL_LINGUAS="$ALL_LINGUAS $lcode"
|
||||
echo "$lcode $lname"
|
||||
done
|
||||
echo "Type in the locales you want (all will install everything) [none]"
|
||||
read foo
|
||||
if test "$foo" = "all"; then
|
||||
LINGUAS="$ALL_LINGUAS"
|
||||
else
|
||||
LINGUAS="$foo"
|
||||
fi
|
||||
echo "Selected locales are: $LINGUAS"
|
||||
|
||||
MB=""
|
||||
for i in $LINGUAS; do
|
||||
ok=0
|
||||
for b in $ALL_LINGUAS; do
|
||||
if test "$b" = "$i"; then
|
||||
ok=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test "$ok" = "0"; then
|
||||
echo
|
||||
echo "$i is not a supported locale"
|
||||
perai
|
||||
continue
|
||||
fi
|
||||
|
||||
done
|
||||
echo
|
||||
echo "Where do you want to put the message files? [$NLSDIR]"
|
||||
echo -n "? "
|
||||
read foo
|
||||
if test "x$foo" != "x"; then
|
||||
NLSDIR=$foo
|
||||
fi
|
||||
fi
|
||||
##################### Installation path
|
||||
|
||||
done=0
|
||||
while [ $done = 0 ]; do
|
||||
echo
|
||||
echo "Where do you want to install Window Maker? [$PREFIX]"
|
||||
echo "Don't change it if you don't know what you're doing."
|
||||
if test "$USER" != "root"; then
|
||||
echo "Make sure to specify a path where you have write permission."
|
||||
fi
|
||||
echo "(The default will put Window Maker in $PREFIX/bin, $PREFIX/lib etc.)"
|
||||
echo -n "? "
|
||||
read foo
|
||||
if test "x$foo" != "x"; then
|
||||
if [ "$foo" = "y" -o "$foo" = "n" ]; then
|
||||
echo
|
||||
echo "Hmm... I don't think you really want to install Window Maker into \"$foo\""
|
||||
echo
|
||||
else
|
||||
done=1
|
||||
PREFIX=$foo
|
||||
fi
|
||||
else
|
||||
done=1
|
||||
fi
|
||||
echo
|
||||
echo " $PREFIX/bin must be in the PATH environment variable"
|
||||
echo "of all users who will use Window Maker"
|
||||
perai
|
||||
done
|
||||
|
||||
OPTIONS="$OPTIONS --prefix=$PREFIX"
|
||||
|
||||
|
||||
##################### Install stripped binaries?
|
||||
|
||||
INSTALL="install"
|
||||
echo "Do you want stripped binaries to be installed?"
|
||||
echo "Installed binaries will be smaller (with debug info removed)."
|
||||
echo -n "<y/n> [n] "
|
||||
read foo
|
||||
if [ "$foo" = y -o "$foo" = Y ]; then
|
||||
INSTALL="install-strip"
|
||||
fi
|
||||
|
||||
|
||||
##################### Configure
|
||||
echo "--------------------------"
|
||||
echo "Configuring Window Maker..."
|
||||
echo "--------------------------"
|
||||
if [ `uname -s` = "SCO_SV" ]; then
|
||||
echo "CFLAGS=\"$CFLAGS -belf -DANSICPP\" ./configure $OPTIONS"
|
||||
|
||||
CFLAGS="$CFLAGS -belf -DANSICPP"
|
||||
|
||||
perform ./configure $OPTIONS
|
||||
else
|
||||
echo "CFLAGS=\"$CFLAGS $GCCFLAGS\" ./configure $OPTIONS"
|
||||
|
||||
CFLAGS="$CFLAGS $GCCFLAGS"
|
||||
|
||||
perform ./configure $OPTIONS
|
||||
fi
|
||||
|
||||
|
||||
#################### Compile
|
||||
echo "-------------------------"
|
||||
echo "Compiling Window Maker..."
|
||||
echo "-------------------------"
|
||||
(cd src; perform make $MAKE_OPTIONS clean)
|
||||
perform make $MAKE_OPTIONS
|
||||
|
||||
echo "--------------------------"
|
||||
echo "Installing Window Maker..."
|
||||
echo "--------------------------"
|
||||
|
||||
perform make $MAKE_OPTIONS $INSTALL
|
||||
|
||||
if [ `uname -s` = "Linux" ]; then
|
||||
echo
|
||||
echo " Make sure $PREFIX/lib is in the /etc/ld.so.conf file"
|
||||
/sbin/ldconfig
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Installation Finished!"
|
||||
echo
|
||||
echo "Now, each user that wishes to use WindowMaker must run the wmaker.inst"
|
||||
echo "script that was just installed."
|
||||
|
||||
|
||||
if test "$NLS" = "Y"; then
|
||||
echo "Don't forget to set the LANG environment variable to your locale"
|
||||
fi
|
||||
|
||||
4
MIRRORS
4
MIRRORS
@@ -4,7 +4,7 @@ Window Maker FTP Mirror Sites
|
||||
|
||||
Official Site (USA):
|
||||
--------------------
|
||||
ftp://ftp.windowmaker.org/
|
||||
http://windowmaker.org/pub/source/release/
|
||||
|
||||
|
||||
Australia:
|
||||
@@ -61,7 +61,7 @@ For Intel:
|
||||
|
||||
Contact: Jim Knoble <jmknoble@pobox.com>
|
||||
Sites:
|
||||
ftp://ftp.windowmaker.org/pub/beta/compiled/linux/rpms/
|
||||
ftp://ftp.windowmaker.info/pub/beta/compiled/linux/rpms/
|
||||
ftp://ftp.redhat.com/pub/contrib/SRPMS/
|
||||
ftp://ftp.redhat.com/pub/contrib/i386/
|
||||
|
||||
|
||||
17
Makefile.am
17
Makefile.am
@@ -1,20 +1,9 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc\
|
||||
contrib
|
||||
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib WPrefs.app doc
|
||||
|
||||
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N FAQ.I18N.cs FAQ.I18N.sk \
|
||||
Install INSTALL.cs INSTALL.fr INSTALL.es INSTALL.pt INSTALL.sk \
|
||||
README.antialiasing README.definable-cursor README.pt \
|
||||
README.KDE README.GNOME Sample.XftConfig \
|
||||
MIRRORS COPYING.WTFPL mkpatch WindowMaker.lsm.in
|
||||
INSTALL.cs INSTALL.fr INSTALL.es INSTALL.pt INSTALL.sk \
|
||||
README.definable-cursor README.pt MIRRORS COPYING.WTFPL mkpatch
|
||||
# libwmfun-0.0.3.tar.gz
|
||||
|
||||
WindowMaker.lsm: WindowMaker.lsm.in
|
||||
size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\
|
||||
size=`echo scale=2\;$$size/1048576|bc`;\
|
||||
sed -e "s/VERSION/"$(VERSION)"/" \
|
||||
-e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\
|
||||
-e "s/SIZE/$$size M/"\
|
||||
WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm
|
||||
|
||||
|
||||
167
NEWS
167
NEWS
@@ -2,34 +2,115 @@
|
||||
NEWS for veteran Window Maker users
|
||||
-----------------------------------
|
||||
|
||||
--- 0.81.0
|
||||
--- 0.92.0
|
||||
|
||||
GNUstep Installation Directory
|
||||
------------------------------
|
||||
|
||||
WPrefs is now installed in /usr/local/bin and /usr/local/share by default.
|
||||
If you use GNUstep and want it to install in /usr/GNUstep/Applications,
|
||||
you may specify --with-gnustepdir=/usr/GNUstep
|
||||
If the GNUSTEP_LOCAL_ROOT environment variable is defined when configure is
|
||||
executed, it will be used (and you don't need to use --with-gnustepdir)
|
||||
|
||||
Cached Pixmaps Directory
|
||||
------------------------
|
||||
|
||||
The directory where Window Maker stores the cached application pixmaps for
|
||||
its later use has changed from ~/GNUstep/.AppInfo/WindowMaker to
|
||||
~/GNUstep/Library/WindowMaker/CachedPixmaps for better compatibility with
|
||||
the GNUstep path structure.
|
||||
Also WPrefs now stores internal data in ~/GNUstep/Library/WindowMaker/WPrefs
|
||||
(it was ~/GNUstep/.AppInfo/WPrefs before)
|
||||
|
||||
X Input Methods support in WINGs
|
||||
--------------------------------
|
||||
|
||||
Preliminary support for X Input Methods was added to textfield and text
|
||||
widgets in WINGs. Input for text in other languages than English should
|
||||
work now (except for kanji which will most likely not work, even though
|
||||
it wasn't tested).
|
||||
|
||||
|
||||
Disabling the switch panel
|
||||
--------------------------
|
||||
|
||||
To disable the panel shown during Alt-tabbing, you may put the following in
|
||||
~/GNUstep/Defaults/WindowMaker
|
||||
|
||||
SwitchPanelImages= None;
|
||||
|
||||
|
||||
|
||||
--- 0.91.0
|
||||
|
||||
Alt-Tab Window Switching
|
||||
------------------------
|
||||
|
||||
You can change the appearance of the panel shown during Alt-Tab window switching
|
||||
with the SwitchPanelImages option:
|
||||
|
||||
(selected_icon_tile_image, background_image, width, height)
|
||||
|
||||
selected_icon_tile_image is the image used to highlight the currently selected
|
||||
window icon. It must be 64x64 pixels.
|
||||
|
||||
background_image is the image used in the background of the panel. It must
|
||||
be at least 64x80.
|
||||
|
||||
width and height are the width and size of the central part of the image.
|
||||
When drawing the panel, the image will be split as:
|
||||
|W |
|
||||
+--+--+--+
|
||||
| | | |
|
||||
+--+--+--+ -
|
||||
| | | | H
|
||||
+--+--+--+ -
|
||||
| | | |
|
||||
+--+--+--+
|
||||
|
||||
The 4 corner images will be copied in their original sizes and the rest will
|
||||
be scaled to the final panel size.
|
||||
|
||||
background_image, width and height are optional. If you leave them out,
|
||||
a gray panel will be used. If your machine is not very fast, you may want
|
||||
to use it.
|
||||
|
||||
|
||||
--- 0.90.0
|
||||
|
||||
|
||||
NetWM / EWMH Support
|
||||
--------------------
|
||||
|
||||
Support for the EWMH standard has been added. Applications from GNOME 2.x and
|
||||
KDE 3.x should now interoperate better with Window Maker.
|
||||
|
||||
Support for the obsolete/legacy GNOME 1.x, KDE 1.x and OpenLook(!) hints was
|
||||
wiped out for the sake of sanity.
|
||||
|
||||
|
||||
Antialiased font support
|
||||
------------------------
|
||||
|
||||
With the addition of support for antialiased fonts in the WINGs library, now
|
||||
Window Maker can also support antialiased fonts. However enabling them may
|
||||
prove not to be a trivial task to do. This is because enabling antialiased
|
||||
fonts doesn't depend solely on Window Maker and its configuration files. It
|
||||
also depends on the X server, the X server extension modules and their
|
||||
specific configuration files.
|
||||
With the addition of Xft2 support in the WINGs library, now
|
||||
Window Maker can display antialiased text with TrueType or any scalable fonts.
|
||||
|
||||
For a description of all the steps required to get antialiased fonts on
|
||||
screen please check the README.antialiasing file which describes all the
|
||||
things you need to do on a step by step basis. In addition it has extra
|
||||
useful hints and idea to make your antialiased fonts look nice in different
|
||||
contexts.
|
||||
You can pick fonts for Window Maker in the Font configuration section of
|
||||
WPrefs.
|
||||
|
||||
After you have done all the steps described there, you can enable antialiased
|
||||
fonts either by adding AntialiasedText = Yes; in ~/GNUstep/Defaults/WindowMaker
|
||||
or by launching WPrefs and checking the "Smooth font edges" in the Expert User
|
||||
Preferences panel.
|
||||
Antialiased text is enabled by default, but can be disabled by adding
|
||||
|
||||
As a general note you should always use a True Type font for your fonts if
|
||||
antialiasing is enabled, or alias a normal font to a True Type in the Xft
|
||||
configuration (read the details in README.antialiasing). Else you may get
|
||||
unepleasant results in the look of your screen :P
|
||||
AntialiasedText = NO; in ~/GNUstep/Defaults/WMGLOBAL
|
||||
|
||||
This will disable antialiased text for any WINGs based application. If you
|
||||
only want to disable them for a specific application only, like WindowMaker
|
||||
for example, then add the same option in the applications configuration file,
|
||||
in this case ~/GNUstep/Defaults/WindowMaker
|
||||
For WindowMaker, this can also be achieved from the Expert panel in WPrefs.
|
||||
|
||||
Note that bitmapped fonts look much better than TrueType when antialiasing is
|
||||
disabled.
|
||||
|
||||
Global Submenus
|
||||
---------------
|
||||
@@ -54,6 +135,31 @@ or, in case you want a submenu:
|
||||
("Blabla", EXEC, blabla)))
|
||||
|
||||
|
||||
UTF-8 Support
|
||||
-------------
|
||||
|
||||
Window Maker now uses UTF-8 internally (and thus can display UTF-8 text
|
||||
in window titles and other places). Menus and po files must now be
|
||||
encoded in UTF-8. If your menus contain non ASCII characters, you can convert
|
||||
them to UTF-8 with the following command:
|
||||
|
||||
iconv -f <current-file-encoding> -t utf-8 <filename> > <filename>.utf8
|
||||
|
||||
For example:
|
||||
|
||||
iconv -f iso-8859-1 -t utf-8 menu > menu.utf
|
||||
mv menu.utf menu
|
||||
|
||||
|
||||
Icon Panel for Alt-Tabbing
|
||||
--------------------------
|
||||
|
||||
A panel with icons for the windows that you can switch to will appear
|
||||
when you press Alt-Tab. You can navigate through the windows with Alt-Tab
|
||||
(Alt-Shift-Tab) or with the left/right keys once the panel is shown.
|
||||
|
||||
|
||||
|
||||
--- 0.80.0
|
||||
|
||||
Shading/Unshading windows using mouse wheel on their titlebar
|
||||
@@ -245,9 +351,10 @@ behavior regarding workspaces you can now (use WPrefs.app to do this).
|
||||
Client supplied icons
|
||||
---------------------
|
||||
|
||||
Window Maker saves the client supplied icons in ~/GNUstep/.AppInfo/WindowMaker
|
||||
in XPM format for later use when the app is no longer running (to have the
|
||||
image to display for docked icons for example).
|
||||
Window Maker saves the client supplied icons in
|
||||
~/GNUstep/Library/WindowMaker/CachedPixmaps in XPM format for later use
|
||||
when the app is no longer running (to have the image to display for docked
|
||||
icons for example).
|
||||
|
||||
Until recently the XPM images saved by Window Maker were incorrect, but a
|
||||
recent fix in the code to save XPM's fixed them. But with this fix, all
|
||||
@@ -255,12 +362,12 @@ previously saved XPM's in that directory are no longer readable (they give
|
||||
wrong images on screen or fail to load).
|
||||
|
||||
To avoid the need for the user to fix this by hand editing WMWindowAttributes
|
||||
and removing all references to icons in ~/GNUstep/.AppInfo/WindowMaker which
|
||||
can be annoying, new code was added to Window Maker to permit the regeneration
|
||||
of images in ~/GNUstep/.AppInfo/WindowMaker if they are missing.
|
||||
and removing all references to icons in ~/GNUstep/Library/WindowMaker/CachedPixmaps
|
||||
which can be annoying, new code was added to Window Maker to permit the
|
||||
regeneration of images in ~/GNUstep/Library/WindowMaker/CachedPixmaps if they are missing.
|
||||
|
||||
With this addition, all you need to do to fix your old broken images, is to
|
||||
delete all *.xpm files from ~/GNUstep/.AppInfo/WindowMaker. Next time the
|
||||
delete all *.xpm files from ~/GNUstep/Library/WindowMaker/CachedPixmaps. Next time the
|
||||
application that is supplying an icon image will start the icon will be
|
||||
recreated if missing, but this time it will be saved with the new XPM save
|
||||
code which produces good XPM images.
|
||||
@@ -670,7 +777,7 @@ Themes
|
||||
|
||||
Removed all themes from the source tree, and moved them in a separate package.
|
||||
You can download the new package from the same place as this package:
|
||||
ftp://ftp.windowmaker.org/pub/beta/srcs/
|
||||
ftp://ftp.windowmaker.info/pub/beta/srcs/
|
||||
Look after WindowMaker-extra-<version-number>.tar.gz
|
||||
Also WindowMaker-extra pack include the old WindowMaker-data.tar.gz which only
|
||||
contained icons.
|
||||
@@ -765,7 +872,7 @@ libPropList
|
||||
|
||||
WARNING!!! libPropList was removed from the Window Maker distribution
|
||||
and is being distributed separately. If you dont have it installed yet,
|
||||
get it from ftp.windowmaker.org/pub/libs and install before building
|
||||
get it from ftp.windowmaker.info/pub/libs and install before building
|
||||
Window Maker.
|
||||
|
||||
|
||||
@@ -1126,7 +1233,7 @@ Persistent Program Suplied Icons
|
||||
|
||||
Application supplied icons are now stored, so that the dock will keep
|
||||
showing them after the app is exited. The icons are stored at
|
||||
~/GNUstep/.AppInfo/WindowMaker/
|
||||
~/GNUstep/Library/WindowMaker/CachedPixmaps
|
||||
|
||||
|
||||
Sound support
|
||||
|
||||
220
README
220
README
@@ -5,7 +5,6 @@
|
||||
X11 Window Manager
|
||||
|
||||
<http://windowmaker.org>
|
||||
<ftp://ftp.windowmaker.org>
|
||||
|
||||
by
|
||||
|
||||
@@ -41,25 +40,25 @@
|
||||
Description
|
||||
===========
|
||||
|
||||
Window Maker is the GNU window manager for the X Window System. It was
|
||||
designed to emulate the look and feel of part of the NEXTSTEP(tm) GUI. It's
|
||||
supposed to be relatively fast and small, feature rich, easy to configure and
|
||||
easy to use, with a simple and elegant appearance borrowed from NEXTSTEP(tm).
|
||||
Window Maker is the GNU window manager for the X Window System. It was designed
|
||||
to emulate the look and feel of part of the NEXTSTEP(tm) GUI. It's supposed to
|
||||
be relatively fast and small, feature rich, easy to configure and easy to use,
|
||||
with a simple and elegant appearance borrowed from NEXTSTEP(tm).
|
||||
|
||||
Window Maker was designed keeping integration with GNUstep in mind and is the
|
||||
"official" window manager for it. It is also part of the GNU project
|
||||
(www.gnu.org) Read more about GNUstep further on this file.
|
||||
|
||||
Hints (information given by applications to integrate well with the window
|
||||
manager) for Motif(tm), OPEN LOOK(tm), KDE and GNOME are also supported.
|
||||
So you can replace any of the window managers for these environments
|
||||
with Window Maker while keeping most, if not all, of the native window manager
|
||||
functionality.
|
||||
manager) for Motif(tm) and NETWM are also supported (NETWM is used by KDE and
|
||||
GNOME, so they are automatically supported as a result). So you can replace any
|
||||
of the window managers for these environments with Window Maker while keeping
|
||||
most, if not all, of the native window manager functionality.
|
||||
|
||||
Window Maker was previously called WindowMaker.
|
||||
|
||||
Window Maker has no connection with Windowmaker, the software for
|
||||
making windows and doors.
|
||||
Window Maker has no connection with Windowmaker, the software for making windows
|
||||
and doors.
|
||||
|
||||
|
||||
Documentation
|
||||
@@ -71,8 +70,8 @@ Read before asking.
|
||||
in the directories.
|
||||
|
||||
* INSTALL has installation instructions and some troubleshooting tips.
|
||||
You're meant to read it before installing. it was not written just to
|
||||
fill up space in the package...
|
||||
You're meant to read it before installing. it was not written just to fill up
|
||||
space in the package.
|
||||
|
||||
* FAQ: Frequently Asked Questions. READ IT!!! FAQ.I18N is for
|
||||
internationalization related questions.
|
||||
@@ -87,7 +86,6 @@ including platform specific packages of Window Maker.
|
||||
|
||||
* ChangeLog: what changed from the previous version?
|
||||
|
||||
|
||||
* BUGS: list of known bugs
|
||||
|
||||
*** Tutorial
|
||||
@@ -101,8 +99,6 @@ http://www.linuxfocus.org/~georges.t/
|
||||
|
||||
The Window Maker User's Guide can be downloaded from the official ftp
|
||||
or web sites.
|
||||
It can also be viewed in HTML format in:
|
||||
http://people.delphi.com/crc3419/WMUserGuide/index.htm
|
||||
|
||||
The User Guide explains how to use Window Maker, the configuration files
|
||||
and options.
|
||||
@@ -125,8 +121,8 @@ way (not that the normal way is difficult, but...).
|
||||
* TODO: plans for the future
|
||||
|
||||
* contrib/ has some contributed patches that are not supported by Window Maker
|
||||
because they conflict with design filosophies of the developers or some
|
||||
other reason.
|
||||
because they conflict with design philosophies of the developers or some other
|
||||
reason.
|
||||
|
||||
* util/ has various utility programs.
|
||||
|
||||
@@ -149,137 +145,107 @@ HELP ME!!!
|
||||
==========
|
||||
|
||||
There is a mailing list for discussing Window Maker at
|
||||
wm-user@windowmaker.org To subscribe to it, send a message containing:
|
||||
subscribe
|
||||
in the subject of the message to wm-user-request@windowmaker.org
|
||||
wmaker-user@ilists.windowmaker.org To subscribe to it, send a message to
|
||||
wmaker-user-subscribe@lists.windowmaker.info
|
||||
|
||||
If you got a problem, ask there (after reading the docs, of course). The
|
||||
people there is more likely to be able to answer your questions than we are.
|
||||
For bug reports use the BUGFORM.
|
||||
If you got a problem, ask there (after reading the docs, of course). The people
|
||||
there is more likely to be able to answer your questions than we are. For bug
|
||||
reports use the BUGFORM.
|
||||
|
||||
If you have a problem with a precompiled version of Window Maker
|
||||
(rpm, deb etc), first ask the person who made the package.
|
||||
If you have a problem with a precompiled version of Window Maker (rpm, deb etc),
|
||||
first ask the person who made the package.
|
||||
|
||||
IMPORTANT NOTE: when asking for help (in the mailing list or to the
|
||||
developerts, directly) *always* send information about the system you are
|
||||
using. You can use the system information section at the end of BUGFORM as a
|
||||
guideline. Another thing: please don't send HTML mail.
|
||||
IMPORTANT NOTE: when asking for help (in the mailing list or to the developerts,
|
||||
directly) *always* send information about the system you are using. You can use
|
||||
the system information section at the end of BUGFORM as a guideline. Another
|
||||
thing: please don't send HTML mail.
|
||||
|
||||
|
||||
There is also a #windowmaker IRC channel at openprojects. To join there,
|
||||
connect your irc client to irc.openprojects.net, irc.linux.com or some other
|
||||
server of that network.
|
||||
There is also a #windowmaker IRC channel at freenode. To join there, connect
|
||||
your irc client to irc.freenode.net. irc.windowmaker.org will direct you to the
|
||||
correct IRC network.
|
||||
|
||||
|
||||
GNUstep
|
||||
=======
|
||||
|
||||
GNUstep is a complete object-oriented development system, based on the
|
||||
OpenStep specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It
|
||||
will provide everything one needs to produce cross-platform, object-oriented,
|
||||
graphical (and non-graphical) applications; providing among other things,
|
||||
base system libraries, a high-level GUI application framework that uses a
|
||||
Display PostScript(tm)-like imaging model (DGS), objects for accessing
|
||||
relational databases, distributed objects and a graphical development
|
||||
environment, with tools like interface modeller, a project management system
|
||||
(project center) and other tools.
|
||||
GNUstep is a complete object-oriented development system, based on the OpenStep
|
||||
specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It will provide
|
||||
everything one needs to produce cross-platform, object-oriented, graphical (and
|
||||
non-graphical) applications; providing among other things, base system
|
||||
libraries, a high-level GUI application framework that uses a Display
|
||||
PostScript(tm)-like imaging model (DGS), objects for accessing relational
|
||||
databases, distributed objects and a graphical development environment, with
|
||||
tools like interface modeller, a project management system (project center) and
|
||||
other tools.
|
||||
|
||||
The GNUstep development system will be used to create a user environment,
|
||||
with everything needed for a complete graphical user interface, such as a
|
||||
file viewer, text editors and other applications. Note that the user
|
||||
environment (or "desktop environment") is only a small part of the whole
|
||||
GNUstep project and therefore it does not "compete" with other projects like
|
||||
KDE or GNOME, simply because they are completely different things.
|
||||
The GNUstep development system will be used to create a user environment, with
|
||||
everything needed for a complete graphical user interface, such as a file
|
||||
viewer, text editors and other applications. Note that the user environment (or
|
||||
"desktop environment") is only a small part of the whole GNUstep project and
|
||||
therefore it does not "compete" with other projects like KDE or GNOME, simply
|
||||
because they are completely different things.
|
||||
|
||||
For more information on the GNUstep project, visit: http://www.gnustep.org
|
||||
and http://gnustep.current.nu
|
||||
|
||||
|
||||
Running multiple instances of Window Maker
|
||||
==========================================
|
||||
|
||||
It is not a good idea to run more than one instance of Window Maker
|
||||
from the same user (so that wmaker will use the same configuration
|
||||
files) at the same time. You might get unexpected behaviour when Window Maker
|
||||
updates it's configuration files.
|
||||
from the same user (so that wmaker will use the same configuration files) at the
|
||||
same time. You might get unexpected behaviour when Window Maker updates it's
|
||||
configuration files.
|
||||
|
||||
If you really desire to do this, try running Window Maker with the
|
||||
command line option --static so that it will not update or change
|
||||
any of the configuration files.
|
||||
If you really desire to do this, try running Window Maker with the command line
|
||||
option --static so that it will not update or change any of the configuration
|
||||
files.
|
||||
|
||||
Sound support
|
||||
=============
|
||||
|
||||
Sound is supported for Linux and FreeBSD systems with the use of a
|
||||
separately distributed module called WSoundServer. There is also a graphical
|
||||
configuration tool for setting up your sounds called WSoundPrefs.
|
||||
You can download these at:
|
||||
Sound is supported for Linux and FreeBSD systems with the use of a separately
|
||||
distributed module called WSoundServer. There is also a graphical configuration
|
||||
tool for setting up your sounds called WSoundPrefs. You can download these at:
|
||||
http://shadowmere.student.utwente.nl/
|
||||
|
||||
Note that you must compile Window Maker with the --enable-sound configure
|
||||
flag and set the DisableSound option to NO.
|
||||
|
||||
|
||||
OpenL**k support
|
||||
================
|
||||
|
||||
I guess many users, mainly from the academic world, have to use
|
||||
applications written using the OpenL**k toolkits, so having support
|
||||
for these apps must be of some use.
|
||||
|
||||
To enable, use --enable-openlook when doing the configure. Note that
|
||||
not everything is implemented.
|
||||
|
||||
Implemented stuff include decoration hints and the push-pin. Not implemented
|
||||
stuff include _SUN_WINDOW_STATE (the compose led state stuff), drag and drop
|
||||
interest stuff, header (not sure what's it) and footer strings.
|
||||
|
||||
Please give me feedback if something doesn't work. If the feature is
|
||||
already implemented, but is not working because of a bug, I'll try to
|
||||
have that fixed. If it's a non-implemented feature and you mention that
|
||||
it's important (ie: not just cosmetical), I'll consider implementing it.
|
||||
|
||||
The "out" state of the pushpin is emulated as a pushed-in close button.
|
||||
Just click on the button to make it pushed-out, which corresponds
|
||||
to the pinned-in state of the pushpin. If you push again in the pushed-out
|
||||
close button, it will act as a normal close button: it will close the window.
|
||||
|
||||
|
||||
Performance Tuning
|
||||
==================
|
||||
|
||||
If you want to diminish Window Maker's memory usage and improve performance,
|
||||
while keeping a nice appearance and good functionality, follow the items
|
||||
bellow:
|
||||
while keeping a nice appearance and good functionality, follow the items bellow:
|
||||
|
||||
- use solid textures for everything, mainly titlebars and menus. If you
|
||||
want a nice looking desktop, use the Traditional style.
|
||||
- use solid textures for everything, mainly titlebars and menus. If you want a
|
||||
nice looking desktop, use the Traditional style.
|
||||
- turn NewStyle and Superfluous off
|
||||
- do not bind many shortcuts in the menu and keep only the essential items
|
||||
in the menu
|
||||
- do not bind many shortcuts in the menu and keep only the essential items in
|
||||
the menu
|
||||
- turn on DisableClip
|
||||
- edit wconfig.h and disable the NUMLOCK_HACK and the features you
|
||||
don't use anyway (keep in mind that some of the #defines might not
|
||||
work, as they are not fully supported). Make sure to always keep
|
||||
NumLock and ScrollLock turned off.
|
||||
- edit wconfig.h and disable the NUMLOCK_HACK and the features you don't use
|
||||
anyway (keep in mind that some of the #defines might not work, as they are not
|
||||
fully supported). Make sure to always keep NumLock and ScrollLock turned off.
|
||||
- turn on DisableAnimations. You can also #undefine ANIMATIONS in wconfig.h
|
||||
- strip down the default IconPath and PixmapPath entries to contain only
|
||||
the paths that you really have in your system.
|
||||
- do not use large images in the root background
|
||||
- remove support for image formats you don't use
|
||||
- to reduce memory usage, disable the icon cache, by setting the RIMAGE_CACHE
|
||||
environment variable to 0. If you want to increase performance at the cost
|
||||
of memory usage, set it's value to a value like the number of different
|
||||
icons you use. Also, disable anti-aliased text support in ~/GNUstep/Defaults/WMGLOBAL.
|
||||
environment variable to 0. If you want to increase performance at the cost of
|
||||
memory usage, set it's value to a value like the number of different icons you
|
||||
use. Also, disable anti-aliased text support in ~/GNUstep/Defaults/WMGLOBAL.
|
||||
|
||||
|
||||
Keyboard Mouse Control
|
||||
======================
|
||||
|
||||
Many people ask about adding keyboard control of mouse, like in fvwm,
|
||||
but Window Maker will not have such feature. The XKB extension supports
|
||||
mouse simulation from the keyboard, in a much more powerfull fashion than
|
||||
any simulation done by a window manager.
|
||||
Many people ask about adding keyboard control of mouse, like in fvwm, but Window
|
||||
Maker will not have such feature. The XKB extension supports mouse simulation
|
||||
from the keyboard, in a much more powerfull fashion than any simulation done by
|
||||
a window manager.
|
||||
|
||||
To enable it, hit the Control+Shift+NumLock or Shift+NumLock key combination.
|
||||
You should hear the speaker beeping. To disable it, do the same thing.
|
||||
@@ -307,28 +273,27 @@ milleage may vary.
|
||||
How to make a gdb backtrace
|
||||
===========================
|
||||
|
||||
Backtraces can help us fix bugs that make Window Maker crash. If you
|
||||
find a bug that crashes Window Maker, please send a backtrace with your
|
||||
bug report.
|
||||
Backtraces can help us fix bugs that make Window Maker crash. If you find a bug
|
||||
that crashes Window Maker, please send a backtrace with your bug report.
|
||||
|
||||
To make a usefull backtrace, you need a core file with debugging
|
||||
information produced by Window Maker when it crashes. It should
|
||||
have been installed without stripping too.
|
||||
To make a usefull backtrace, you need a core file with debugging information
|
||||
produced by Window Maker when it crashes. It should have been installed without
|
||||
stripping too.
|
||||
|
||||
To compile wmaker with debugging information:
|
||||
|
||||
./configure
|
||||
make CFLAGS=-g
|
||||
|
||||
If you get the dialog window telling you that wmaker crashed and
|
||||
asks you what to do, tell it to "Abort and leave a core file".
|
||||
If you get the dialog window telling you that wmaker crashed and asks you what
|
||||
to do, tell it to "Abort and leave a core file".
|
||||
|
||||
script
|
||||
cd src
|
||||
gdb .libs/wmaker path_to_the_core_file
|
||||
|
||||
Then, in the gdb prompt type "bt". Quit from gdb by typing "quit"
|
||||
and then, in the shell prompt, type "exit".
|
||||
Then, in the gdb prompt type "bt". Quit from gdb by typing "quit" and then, in
|
||||
the shell prompt, type "exit".
|
||||
|
||||
The file named typescript will contain the backtrace.
|
||||
|
||||
@@ -337,20 +302,19 @@ The file named typescript will contain the backtrace.
|
||||
Copyrights & Disclaimers
|
||||
========================
|
||||
|
||||
Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the
|
||||
GNU General Public License. Read the COPYING file for the complete license.
|
||||
Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the GNU
|
||||
General Public License. Read the COPYING file for the complete license.
|
||||
|
||||
The icons that are distributed with this program and were made by Marco van
|
||||
Hylckama Vlieg, are licensed through the GNU General Public License. Read the
|
||||
COPYING file for the complete license.
|
||||
|
||||
The icons listed in COPYING.WTFPL and are distributed in this
|
||||
program and were made by Banlu Kemiyatorn (]d), are licensed through the
|
||||
"do What The Fuck you want to Public License". Read the COPYING.WTFPL
|
||||
file for the complete license.
|
||||
The icons listed in COPYING.WTFPL and are distributed in this program and were
|
||||
made by Banlu Kemiyatorn (]d), are licensed through the "do What The Fuck you
|
||||
want to Public License". Read the COPYING.WTFPL file for the complete license.
|
||||
|
||||
NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc.
|
||||
All other trademarks are property of their respective owners.
|
||||
NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc. All other
|
||||
trademarks are property of their respective owners.
|
||||
|
||||
The authors reserve the right to make changes in the software without prior
|
||||
notice.
|
||||
@@ -359,19 +323,19 @@ notice.
|
||||
Authors
|
||||
=======
|
||||
|
||||
Alfredo K. Kojima <kojima@windowmaker.org>
|
||||
Dan Pascu <dan@windowmaker.org>
|
||||
]d <id@windowmaker.org>
|
||||
Alfredo K. Kojima <kojima@windowmaker.info>
|
||||
Dan Pascu <dan@windowmaker.info>
|
||||
]d <id@windowmaker.info>
|
||||
|
||||
Please don't ask us questions before reading the documentation (esp. the
|
||||
FAQ, this file and INSTALL files) and about "cool" things you see in
|
||||
people's desktop screenshots.
|
||||
Please don't ask us questions before reading the documentation (esp. the FAQ,
|
||||
this file and INSTALL files) and about "cool" things you see in people's desktop
|
||||
screenshots.
|
||||
|
||||
|
||||
The AUTHORS file contains a list of the people who have contributed to the
|
||||
project. The name of people who have helped with localization (translation)
|
||||
can be found in po/README and Window Maker/README
|
||||
project. The name of people who have helped with localization (translation) can
|
||||
be found in po/README and Window Maker/README
|
||||
|
||||
If you have any comments, fixes and bug reports (filled BUGFORMs) send them
|
||||
to developers@windowmaker.org
|
||||
to wmaker-dev@lists.windowmaker.org
|
||||
|
||||
|
||||
53
README.GNOME
53
README.GNOME
@@ -1,53 +0,0 @@
|
||||
|
||||
Information on Using Window Maker with GNOME
|
||||
--------------------------------------------
|
||||
|
||||
|
||||
Status of GNOME support
|
||||
-----------------------
|
||||
|
||||
|
||||
GNOME window manager protocols seem to be a work in progress.
|
||||
Things still change fairly frequently, so, the stuff implemented
|
||||
may not reflect the latest protocol. If something doesn't work,
|
||||
that's probably because the protocols have changed again and I still
|
||||
didn't have time to reimplement everything or noticed that it
|
||||
changed. If that happens, please tell me exactly what doesn't work.
|
||||
|
||||
Other than that, the so called "GNOME Window Manager Compliance - How to
|
||||
write a GNOME compliant Window Manager" document, says this:
|
||||
|
||||
"There are currently a set of other hints available that are, at the
|
||||
current time, not essential and therefore not documented here. It is,
|
||||
however envisaged that they will be finalized and added to this
|
||||
document, but for now are not needed."
|
||||
|
||||
Since they are non-essential and undocumented they are not yet implemented.
|
||||
|
||||
|
||||
Implemented stuff:
|
||||
|
||||
- GNOME window manager hints
|
||||
- Motif window manager hints
|
||||
|
||||
On the works:
|
||||
|
||||
- R6 style session management
|
||||
|
||||
|
||||
Compilation/Installation
|
||||
------------------------
|
||||
|
||||
To compile Window Maker with GNOME support, just configure it as:
|
||||
./configure --enable-gnome
|
||||
|
||||
before compiling.
|
||||
|
||||
Also, do not disable mwm hints support (they are enabled by default).
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
In WPrefs, go to the last section and toggle the "Disable miniwindows" option.
|
||||
|
||||
125
README.KDE
125
README.KDE
@@ -1,125 +0,0 @@
|
||||
|
||||
|
||||
Information on Using Window Maker with KDE
|
||||
------------------------------------------
|
||||
|
||||
|
||||
Window Maker supports almost all KDE/KWM specific client
|
||||
communication protocols, so you can simply replace kwm with
|
||||
Window Maker, if you think these advantages are worthy:
|
||||
|
||||
Window Maker KWM
|
||||
=============================================================================
|
||||
Looks NEXTSTEP(tm)/NEXTSTEP(tm) Original, but reminds
|
||||
enhanced Windows(tm)
|
||||
|
||||
Decoration solid, gradient, multi-color solid, vertical and
|
||||
Textures gradient, pixmaps, textured horizontal gradient,
|
||||
gradient - all gradients are pixmap
|
||||
supported in horizontal,
|
||||
vertical and diagonal
|
||||
directions
|
||||
|
||||
Configurable No Yes, but not totally
|
||||
Titlebar Buttons
|
||||
|
||||
Mini CLI Yes, but limited Yes
|
||||
|
||||
Window Specific Yes In KDE 1.1, yes.
|
||||
Configuration In KDE 1.0, no.
|
||||
|
||||
Quick Keyboard Yes In KDE 1.1, yes
|
||||
Navigation In KDE 1.0, no.
|
||||
|
||||
Pager KDE pagers will work as Yes
|
||||
well as GNOME pagers
|
||||
|
||||
Session Not yet supported, but Yes, old (pre-X11R6) style
|
||||
Management X11R6 style SM is being worked.
|
||||
|
||||
Dock kpanel, GNOME panel and Dock kpanel
|
||||
|
||||
Built-in Yes No
|
||||
krootbgwm
|
||||
|
||||
GNOME support Yes No
|
||||
|
||||
Memory Usage(1) 1.85Mb In KDE 1.0, 3.13Mb
|
||||
In KDE 1.1, probably more
|
||||
|
||||
|
||||
(1) Memory usage was tested by running wmaker and kwm at the same machine
|
||||
with the same windows, on the same screen and similar window texture
|
||||
configurations (at different times, of course). I looked in the output of
|
||||
ps -m, in the SIZE field, right after starting the window managers.
|
||||
|
||||
|
||||
|
||||
Enabling KDE Support
|
||||
--------------------
|
||||
|
||||
To enable KDE support in Window Maker, you must compile it after
|
||||
configuring it as follows:
|
||||
./configure --enable-kde
|
||||
|
||||
Then, just replace kwm with wmaker in your startkde script.
|
||||
If you are going to use Window Makers sound server, comment out
|
||||
kwmsound in startkde. Also if wmaker sets your root window
|
||||
background, comment out kbgndwm, kde's wallpaper setter.
|
||||
|
||||
Make sure to disable workspace background setting in KDE. If you
|
||||
wont be using Window Maker themes anyway, you can set
|
||||
WorkspaceBack = (none);
|
||||
|
||||
in ~/GNUstep/Defaults/WindowMaker
|
||||
|
||||
|
||||
Enhancing Integration
|
||||
---------------------
|
||||
|
||||
Window Maker adds some extensions to KDE's messaging stuff, so you can run
|
||||
Window Maker specific commands from places like kpanel, krootwm or even
|
||||
kwmcom. Recently KDE developers have kindly added support for these extensions
|
||||
in the more recent KDE versions from CVS. The added stuff are the following
|
||||
kwm like commands:
|
||||
|
||||
wm:wmaker - select Window Maker support mode
|
||||
wmaker:info - show info panel
|
||||
wmaker:legal - show legal panel
|
||||
wmaker:arrangeIcons - arrange icons
|
||||
wmaker:showAll - show all windows
|
||||
wmaker:hideOthers - hide others
|
||||
wmaker:restart - restart wmaker
|
||||
wmaker:exit - exit wmaker
|
||||
|
||||
You can test them with kwmcom, like:
|
||||
kwmcom wmaker:info
|
||||
|
||||
|
||||
Problems
|
||||
--------
|
||||
|
||||
* kpanel will not be kept always on top. That's because kpanel is an
|
||||
OverrideRedirect window, so Window Maker can't do anything about that.
|
||||
|
||||
Before requesting for a hack to work around that in Window Maker, please
|
||||
request the kpanel author to fix it.
|
||||
|
||||
* because the KDE protocol for letting the window manager know the usable
|
||||
window region is broken, you might find some problems with the window
|
||||
positioning/maximization code and kpanel's position.
|
||||
|
||||
* It seems kpanel (and maybe KDE in general) doesn't like dynamically
|
||||
changing the number of workspaces. So, don't create or destroy workspaces
|
||||
while running on KDE, unless you really need.
|
||||
|
||||
* If kpanel, kwmpager or kpager becomes confused about the number of
|
||||
windows present, restart them.
|
||||
|
||||
* Wmaker opens windows by default under/over the panel, when the panel is
|
||||
at top or left of screen. Use the GUI configuration tool WPrefs to change
|
||||
this.
|
||||
|
||||
* Some commands, such as cascade windows and rearrange windows are not
|
||||
yet implemented.
|
||||
|
||||
@@ -1,154 +0,0 @@
|
||||
|
||||
Here is a step by step mini-HOWTO of the things needed to be done to get
|
||||
antialiased fonts in Window Maker quickly:
|
||||
|
||||
1. Make sure you have a recent XFree server (4.x or newer, but 4.2.x or newer
|
||||
is preferable). Also make sure it supports the RENDER extension (you can
|
||||
see this in the output of xdpyinfo) and it has the freetype extension
|
||||
module (you should have a /usr/X11R6/lib/modules/fonts/libfreetype.a file).
|
||||
2. Make sure you have the following lines in your XF86Config file in the
|
||||
"Module" section:
|
||||
Load "type1"
|
||||
Load "freetype"
|
||||
Load "extmod"
|
||||
(Not sure if extmod is really required for antialiased fonts, but it won't
|
||||
hurt).
|
||||
3. Install some True Type fonts say in /usr/X11R6/lib/X11/fonts/TrueType
|
||||
4. To generate the fonts.scale and fonts.dir files in the directory where the
|
||||
True Type fonts were installed you need an utility named ttmkfdir. There is
|
||||
also an utility named mkttfdir but that only supports ISO8859-1 and JIS
|
||||
encodings. From my experience ttmkfdir will recognize more fonts and works
|
||||
better so I recommend using this one. You should issue these commands to
|
||||
generate the fonts.scale and fonts.dir files:
|
||||
cd /usr/X11R6/lib/X11/fonts/TrueType
|
||||
ttmkfdir -o fonts.scale
|
||||
mkfontdir
|
||||
5. Now add /usr/X11R6/lib/X11/fonts/TrueType to your font path in the
|
||||
XF86Config file. It goes in the "Files" section as:
|
||||
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
|
||||
I recommend to put this at the top of your font path list.
|
||||
6. You can restart the X server at this point, to make all these changes take
|
||||
effect.
|
||||
7. Edit your /etc/X11/XftConfig file (or ~/.xftconfig if you don't have
|
||||
access to edit the global file). Make sure that the True Type font path is
|
||||
_before_ the Type1 font path. You should have something like this:
|
||||
dir "/usr/X11R6/lib/X11/fonts/TrueType"
|
||||
dir "/usr/X11R6/lib/X11/fonts/Type1"
|
||||
If you add extra True type paths, add them before the Type1 path
|
||||
If the Type1 path is first, and the Xft library fails to find/load the font
|
||||
you asked for, it will load some very ugly defaults.
|
||||
A sample XftConfig file is included with the Window Maker source at
|
||||
toplevel as Sample.XftConfig. You can use that as reference and for ideas.
|
||||
8. Compile and install Window Maker. No special switches are needed. However
|
||||
watch the ./configure output and check if it says that Antialiased text
|
||||
support is enabled in WINGs. If not, probably it failed to find libXft.
|
||||
Check that you have the development files for your X server installed.
|
||||
9. Edit ~/GNUstep/Defaults/WMGLOBAL and add entries for the following:
|
||||
AntialiasedSystemFont = "-*-trebuchet ms-medium-r-normal-*-%d-*-*-*-*-*-*-*";
|
||||
AntialiasedBoldSystemFont = "-*-trebuchet ms-bold-r-normal-*-%d-*-*-*-*-*-*-*";
|
||||
AntialiasedText = Yes;
|
||||
Use a font that you have installed on your system (arial and "trebuchet ms"
|
||||
are good choices).
|
||||
If AntialiasedText is enabled in WMGLOBAL, all WINGs based application will
|
||||
use antialiased fonts by default (this includes Window Maker).
|
||||
You can then disable the antialiased fonts on the per application basis by
|
||||
adding an AntialiasedText = No; entry in their specific configuration files
|
||||
The entry in the application's configuration file will always overwrite the
|
||||
global setting from WMGLOBAL.
|
||||
However if you want most of your WINGs applications to use normal fonts,
|
||||
but just a few to use antialiased fonts, then put AntialiasedText = No; in
|
||||
WMGLOBAL, and enable antialiased fonts only in the applications you want,
|
||||
by adding the AntialiasedText = Yes; in their own configuration files
|
||||
|
||||
At this point all WINGs based application should be able to use antialiased
|
||||
fonts. You can check this by enabling antialiasing and starting WPrefs. It
|
||||
should show nice antialiased text everywhere.
|
||||
|
||||
Now to enable antialiased fonts in Window Maker, there are 2 possibilities:
|
||||
|
||||
10a. Add entries for all font options in ~/GNUstep/Defaults/WindowMaker
|
||||
containing True Type fonts ("trebuchet ms", arial or verdana should work
|
||||
fine). Don't use non True Type fonts like Helvetica, because Xft won't
|
||||
load them, instead will load some defaults. Depending on the TrueTupe vs
|
||||
Type1 path order in your XftConfig file and the options declared there,
|
||||
it can range from "Extremely ugly" (if path to Type1 is before the path
|
||||
to True Type fonts), to "Acceptable" (if the True Type path comes first).
|
||||
Also modify all your themes to hold True Type fonts for all the font
|
||||
options
|
||||
|
||||
10b. Leave the fonts as they are (for example leave the default Helvetica) in
|
||||
~/GNUstep/Defaults/WindowMaker, and add an alias (or more) in the
|
||||
XftConfig file. This alias should look something like:
|
||||
match any family == "Helvetica" edit family += "Trebuchet MS";
|
||||
match any family == "Courier" edit family += "Courier New";
|
||||
...
|
||||
Which means that every time the Xft library (which is used the WINGs) gets
|
||||
a request to load a Helvetica font, it will load the "trebuchet ms" font
|
||||
instead, keeping all the other font parameters unchanged.
|
||||
|
||||
Each of these 2 methods have advantages and disadvantages.
|
||||
|
||||
Case 10a:
|
||||
---------
|
||||
With the first method, you do more work and you will not be able to use
|
||||
existing themes by just enabling antialiasing, because it will load default
|
||||
fonts which may not look as you want. You will need to change the fonts in
|
||||
every theme you want to use by replacing them with True Type fonts.
|
||||
|
||||
If you plan to switch antialiasing on/off, this method has a big disadvantage:
|
||||
you need to edit your configuration/themes with every switch (at least if you
|
||||
want Helvetica or other Type1 font for the non-antialiased case). This is
|
||||
because if you have a font set to (say) Arial and want to switch antialiasing
|
||||
off, you will get the normal version of Arial and you need to edit your font
|
||||
options again to see Helvetica.
|
||||
If you are happy with how the non-antialiased version of your True Type fonts
|
||||
looks this disadvantage goes away. In this case you will use the same font
|
||||
(say arial) with both antialiased/normal fonts.
|
||||
|
||||
OTOH this method gives you fine tune over the fonts used in Window Maker and
|
||||
you will be able to set each individual font as you like.
|
||||
|
||||
Case 10b:
|
||||
---------
|
||||
With the second method, you have almost nothing to do. Just define the proper
|
||||
aliases in the XftConfig file, and whenever some of the fonts you aliased is
|
||||
requested it's True Type alias will be loaded.
|
||||
This way you can use all your old themes and all you have to do except adding
|
||||
the aliases to the XftConfig file, is to enable or disable antialiasing the
|
||||
the configuration file.
|
||||
|
||||
For example if Helvetica is aliased to Arial, if you have antialiasing
|
||||
disabled, Helvetica will be used, but if you enable antialiasing Arial will
|
||||
be used instead. This method is very handy if you want to use existing themes
|
||||
you don't want to modify, or if you want to switch antialiasing on/off and
|
||||
don't want to edit your font options with every such switch.
|
||||
|
||||
The downside of this method is that if you don't have some font aliased in
|
||||
the XftConfig file, it will load some default instead.
|
||||
Also another downside is that you cannot fine tune your fonts. They will be
|
||||
translated by the alias rules in XftConfig from whatever they are defined in
|
||||
the theme. Sometimes this is not optimal.
|
||||
|
||||
For example if you aliased Helvetica to "Trebuchet MS" and all your screen
|
||||
fonts are Helvetica (at different sizes). With antialiasing disabled the
|
||||
Helvetica fonts everywhere looks good. However with antialiasing enabled the
|
||||
10pt font used by the miniwindow titles looks better if Arial is used. Also
|
||||
the 10pt font used by the clip looks better with Verdana. Same for the 12pt
|
||||
font used by balloons which is also better if Arial is used. But with this
|
||||
method you cannot do such fine tuning, unless you edit your font options in
|
||||
the Window Maker configuration file, in which case there will be a mix of the
|
||||
2 methods.
|
||||
|
||||
11. At this point if all was properly done, all you have to do is either add
|
||||
an AntialiasedText = Yes; entry to ~/GNUstep/Defaults/WindowMaker, or
|
||||
start WPrefs, goto the Expert Settings panel, and check the
|
||||
"Smooth font edges" option. Currently you need to restart if you switch
|
||||
antialiasing on/off (this may change in the future)
|
||||
|
||||
|
||||
Final note: antialiased text only looks good if a True Type font is
|
||||
used for it. Either by directly specifying it, or providing an alias in
|
||||
the XftConfig file. The idea is that the font Xft loads (after all the
|
||||
aliases have beed resolved) should point to a True Type font. Else
|
||||
unpleasant results may show on your screen :P
|
||||
|
||||
41
README.es
41
README.es
@@ -4,8 +4,8 @@
|
||||
GNU Window Maker
|
||||
X11 Window Manager
|
||||
|
||||
<http://windowmaker.org>
|
||||
<ftp://ftp.windowmaker.org>
|
||||
<http://windowmaker.info>
|
||||
<ftp://ftp.windowmaker.info>
|
||||
|
||||
por
|
||||
|
||||
@@ -147,10 +147,10 @@ SOCORRO!!!
|
||||
==========
|
||||
|
||||
Hay una lista de correo para discutir sobre Window Maker en
|
||||
wm-user@windowmaker.org. Para suscribirse, envie un mensaje que contenga:
|
||||
wm-user@windowmaker.info. Para suscribirse, envie un mensaje que contenga:
|
||||
|
||||
subscribe
|
||||
en el tema del mensaje a wm-user-request@windowmaker.org
|
||||
en el tema del mensaje a wm-user-request@windowmaker.info
|
||||
|
||||
Si tiene algun problema, pregunte aquí (después de leer los docs, por supuesto). Es
|
||||
más probable que las personas de la lista sepan contestar sus preguntas
|
||||
@@ -217,31 +217,6 @@ http://shadowmere.student.utwente.nl/
|
||||
Note que debe compilar Window Maker con el parámetro --enable-sound
|
||||
y definir la opción DisableSound a NO.
|
||||
|
||||
Soporte para OpenL**k
|
||||
=====================
|
||||
|
||||
Calculo que muchos usuarios, principalmente del mundo académico,
|
||||
tienen que usar aplicaciones escritas usando los toolkits OpenL**k,
|
||||
así que tener soporte para estas aplicaciones debe ser de algún uso.
|
||||
|
||||
Para activarlo, use --enable-openlook al hacer el configure. Note que
|
||||
no todo está implementado.
|
||||
|
||||
Las cosas implementadas incluyen consejos de adorno y el push-pin. Las cosas
|
||||
no implementadas incluyen _SUN_WINDOW_STATE (la cosa compuesta que lleva el estado),
|
||||
cosas que interesan sobre arrastrar y soltar, cabecera (no estoy seguro de que sea así)
|
||||
y cadenas footer.
|
||||
|
||||
Por favor hágame saber si algo no funciona. Si la característica ya está implimentada,
|
||||
pero no funciona por un error, intentaré arreglarlo. Si esta es una característica no
|
||||
implementada y menciona que es importante (obs: no solo superficial), consideraré
|
||||
implementarlo.
|
||||
|
||||
El estado "out" del pushpin es emular un botón presionado. Solo cliquee
|
||||
en el botón para hacer que se libere, lo cuál corresponde al estado
|
||||
pinned-in del pushpin. Si pulsa otra vez en el boton liberado, servirá de
|
||||
botón normal de cerrado: cerrará la ventana.
|
||||
|
||||
|
||||
Ajuste de Rendimiento.
|
||||
=====================
|
||||
@@ -350,9 +325,9 @@ aviso.
|
||||
Autores
|
||||
=======
|
||||
|
||||
Alfredo K. Kojima <kojima@windowmaker.org>
|
||||
Dan Pascu <dan@windowmaker.org>
|
||||
]d <id@windowmaker.org>
|
||||
Alfredo K. Kojima <kojima@windowmaker.info>
|
||||
Dan Pascu <dan@windowmaker.info>
|
||||
]d <id@windowmaker.info>
|
||||
|
||||
Por favor no nos haga preguntas antes de leer la documentación (especialmente
|
||||
la FAQ, este archivo y los archivos INSTALL) y sobre cosas "cool" que ve en
|
||||
@@ -363,7 +338,7 @@ con el proyecto. El nombre de las personas que han ayudado con localization
|
||||
(traducción) se puede encontrar en po/README y Window Maker/README
|
||||
|
||||
Si tiene algún comentario, arreglos y reportes de errores (complete BUGFORMs)
|
||||
y enviémelos a developers@windowmaker.org
|
||||
y enviémelos a developers@windowmaker.info
|
||||
|
||||
|
||||
|
||||
|
||||
44
README.pt
44
README.pt
@@ -3,8 +3,8 @@
|
||||
GNU Window Maker
|
||||
Gerenciador de Janelas X11
|
||||
|
||||
<http://windowmaker.org>
|
||||
<ftp://ftp.windowmaker.org>
|
||||
<http://windowmaker.info>
|
||||
<ftp://ftp.windowmaker.info>
|
||||
|
||||
por
|
||||
|
||||
@@ -143,10 +143,10 @@ SOCORRO!!!
|
||||
==========
|
||||
|
||||
Há uma lista de discussão para debate de questões sobre o Window Maker
|
||||
no wm-user@windowmaker.org. Para inscrever-se, mande uma mensagem
|
||||
no wm-user@windowmaker.info. Para inscrever-se, mande uma mensagem
|
||||
contendo:
|
||||
subscribe
|
||||
no campo de assunto da mensagem para wm-user-request@windowmaker.org
|
||||
no campo de assunto da mensagem para wm-user-request@windowmaker.info
|
||||
|
||||
Se você tiver algum problema, pergunte lá (somente depois de ter lido os
|
||||
documentos, é claro). As pessoas da lista estão mais preparadas para
|
||||
@@ -210,34 +210,6 @@ Observe que voc
|
||||
flag --enable-sound e definindo a opção DisableSound para NO.
|
||||
|
||||
|
||||
Suporte ao OpenL**k
|
||||
===================
|
||||
|
||||
Acredito que muitos usuários, principalmente os do mundo acadêmico,
|
||||
tenham que usar aplicações escritas em toolkits OpenL**k, então o suporte
|
||||
para estes aplicativos deve ser de algum uso.
|
||||
|
||||
Para ativar, use o --enable-openlook quando rodar o configure. Note
|
||||
que nem tudo está implementado.
|
||||
|
||||
As opções implementadas incluem hints de decoração e o push-pin.
|
||||
Coisas não implementadas incluem _SUN_WINDOW_STATE (the compose led
|
||||
state stuff), coisas relacionadas ao "drag and drop", cabeçalho (não
|
||||
tenho certeza do que é) e o string footer.
|
||||
|
||||
Por favor me dêem retorno se algo não funcionar. Se a opção já está
|
||||
implementada, mas não está funcionando por causa de um bug, eu tentarei
|
||||
corrigí-la. Se é uma característica ainda não implementada e você mencionar
|
||||
que é importante (ie: não somente cosmética), eu considerarei a sua
|
||||
implementação.
|
||||
|
||||
O estado "out" do pushpin é emulado como um botão de fechar pressionado.
|
||||
Clique no botão para fazer com que ele fique despressionado, o que
|
||||
corresponde ao estado "pinned-in" do pushpin. Se você pressionar de novo
|
||||
o botão de fechar despressionado, ele vai agir como um botão de fechar
|
||||
normal: vai fechar a janela.
|
||||
|
||||
|
||||
Ajuste da Performance
|
||||
====================
|
||||
|
||||
@@ -360,9 +332,9 @@ qualquer aviso pr
|
||||
Autores
|
||||
=======
|
||||
|
||||
Alfredo K. Kojima <kojima@windowmaker.org>
|
||||
Dan Pascu <dan@windowmaker.org>
|
||||
]d <id@windowmaker.org>
|
||||
Alfredo K. Kojima <kojima@windowmaker.info>
|
||||
Dan Pascu <dan@windowmaker.info>
|
||||
]d <id@windowmaker.info>
|
||||
|
||||
Por favor não nos perguntem coisas antes de ler a documentação (o FAQ,
|
||||
este arquivo e os arquivos INSTALL), ou sobre coisas "legais" que você
|
||||
@@ -373,7 +345,7 @@ O nome das pessoas que ajudaram com a tradu
|
||||
Window Maker/README
|
||||
|
||||
Se você tem algum comentário, correção ou deseja relatar bugs (junto com
|
||||
o BUGFORM) mande-os para developers@windowmaker.org
|
||||
o BUGFORM) mande-os para developers@windowmaker.info
|
||||
|
||||
|
||||
Traduzido por: Ricardo Sartori <sartori@inf.ufsc.br>
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
# $XFree86: xc/lib/Xft/XftConfig.cpp,v 1.8 2001/11/21 23:41:12 keithp Exp $
|
||||
|
||||
dir "/usr/share/fonts/truetype"
|
||||
dir "/usr/X11R6/lib/X11/fonts/TrueType"
|
||||
dir "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
|
||||
dir "/usr/X11R6/lib/X11/fonts/Type1"
|
||||
|
||||
#
|
||||
# alias 'fixed' for 'mono'
|
||||
#
|
||||
match any family == "fixed" edit family =+ "mono";
|
||||
|
||||
#
|
||||
# Check users config file
|
||||
#
|
||||
includeif "~/.xftconfig"
|
||||
|
||||
#
|
||||
# Substitute TrueType fonts for Type1 versions
|
||||
#
|
||||
match any family == "Times" edit family += "Times New Roman";
|
||||
#match any family == "Helvetica" edit family += "Verdana";
|
||||
#match any family == "Helvetica" edit family += "Arial";
|
||||
match any family == "Helvetica" edit family += "Trebuchet MS";
|
||||
match any family == "Courier" edit family += "Courier New";
|
||||
|
||||
#
|
||||
# Use TrueType fonts for defaults
|
||||
#
|
||||
match any family == "serif" edit family += "Times New Roman";
|
||||
match any family == "sans" edit family += "Verdana";
|
||||
|
||||
#
|
||||
# Use monotype.com (andale) face where possible
|
||||
#
|
||||
match
|
||||
any family == "mono"
|
||||
all slant == roman
|
||||
all weight < bold
|
||||
edit
|
||||
family += "monotype.com";
|
||||
#
|
||||
# otherwise, use courier
|
||||
#
|
||||
match any family == "mono" edit family += "Courier New";
|
||||
|
||||
#
|
||||
# Alias between XLFD families and font file family name, prefer local fonts
|
||||
#
|
||||
match any family == "charter" edit family += "bitstream charter";
|
||||
match any family == "bitstream charter" edit family =+ "charter";
|
||||
|
||||
match any family == "Charter" edit family += "Bitstream Charter";
|
||||
match any family == "Bitstream Charter" edit family =+ "Charter";
|
||||
|
||||
match any family == "Lucidux Serif" edit family += "LuciduxSerif";
|
||||
match any family == "LuciduxSerif" edit family =+ "Lucidux Serif";
|
||||
|
||||
match any family == "Lucidux Sans" edit family += "LuciduxSans";
|
||||
match any family == "LuciduxSans" edit family =+ "Lucidux Sans";
|
||||
|
||||
match any family == "Lucidux Mono" edit family += "LuciduxMono";
|
||||
match any family == "LuciduxMono" edit family =+ "Lucidux Mono";
|
||||
|
||||
#
|
||||
# TrueType font aliases
|
||||
#
|
||||
match any family == "Comic Sans" edit family += "Comic Sans MS";
|
||||
match any family == "Comic Sans MS" edit family =+ "Comic Sans";
|
||||
match any family == "Trebuchet" edit family += "Trebuchet MS";
|
||||
match any family == "Trebuchet MS" edit family =+ "Trebuchet";
|
||||
match any family == "Monotype" edit family =+ "Monotype.com";
|
||||
match any family == "Andale Mono" edit family += "Monotype.com";
|
||||
match any family == "Monotype.com" edit family =+ "Andale Mono";
|
||||
|
||||
#
|
||||
#
|
||||
match any family == "webdings" edit encoding += "glyphs-fontspecific";
|
||||
match any family == "symbol" edit encoding += "glyphs-fontspecific";
|
||||
12
TODO
12
TODO
@@ -7,13 +7,14 @@ Do ASAP:
|
||||
- fix RemakeStackList() to account for transient windows
|
||||
- blink border of clients with UrgencyHint set between red and black
|
||||
- finish session stuff
|
||||
- add multiline support for balloons
|
||||
- remove colors_per_channel stuff from wmaker after?
|
||||
+ finish the ability to browse for files/dirs in the WPrefs menu editor
|
||||
+ finish selections and DND stuff in WINGs
|
||||
- check whether window states are being saved/restored properly via netwm
|
||||
on restart/crash-restart (grep for XXX/TODO)
|
||||
|
||||
Need to do:
|
||||
===========
|
||||
- figure out a better gnustep path for wprefs.app installation
|
||||
- impelment a generic pixmap type, which receives attributes
|
||||
(scaled/maxscaled/centered/tiled, smoothed, size/position, ...)
|
||||
- allow user to select/restore default root menu from wprefs
|
||||
@@ -61,3 +62,10 @@ sample implementation (twm?) it might be supported. Maybe dtwm supports
|
||||
it? I dont know...
|
||||
|
||||
|
||||
After 1.0.0 is released
|
||||
=======================
|
||||
- rework/redesign the appicon/dock/clip concept
|
||||
- maybe rewrite the main code in obj-c or c++
|
||||
- major clean up in theming/texturing stuff
|
||||
- dynamically loadable everything
|
||||
|
||||
|
||||
86
The-perfect-Window-Maker-patch.txt
Normal file
86
The-perfect-Window-Maker-patch.txt
Normal file
@@ -0,0 +1,86 @@
|
||||
____________
|
||||
Introduction
|
||||
------------
|
||||
|
||||
This short tutorial is meant to help you help me in the task
|
||||
of having a maintainable and bug-free Window Maker.
|
||||
|
||||
It assumes you have 'git' correctly installed and you have set
|
||||
the most basic configuration options via 'git config' (or by
|
||||
editing the $HOME/.gitconfig file yourself). See the end
|
||||
of this file for an example .gitconfig (which is the one
|
||||
I use).
|
||||
|
||||
You should probably by now have already cloned my repository,
|
||||
but here is how you can do it just in case:
|
||||
|
||||
# this is the preferred method (ie faster, native implementation)
|
||||
git clone git://repo.or.cz/wmaker-crm.git
|
||||
|
||||
# use the http method only if are behind a firewall which blocks git://
|
||||
git clone http://repo.or.cz/r/wmaker-crm.git
|
||||
|
||||
__________________________________
|
||||
How to submit patches the git way
|
||||
----------------------------------
|
||||
|
||||
Suppose you have a working copy of the git repo and you found
|
||||
a bug in Window Maker and you know how to fix it. This is
|
||||
what you can do to submit your patch in a way which will allow
|
||||
me to apply it quickly.
|
||||
|
||||
# Optional: Create a new branch (just to be safe in case you screw up)
|
||||
git checkout -b my-new-branch
|
||||
|
||||
Now you edit and save the files to fix the bug...
|
||||
|
||||
# Optional: Check what you did, review etc
|
||||
git diff
|
||||
|
||||
# if it looks good, commit your changes
|
||||
git commit -a
|
||||
|
||||
# git will pop up the editor which you configured in .gitconfig so
|
||||
# that you will be able to write a commit log. It will use the 'vi'
|
||||
# editor otherwise.
|
||||
|
||||
(write a _good_ and succinct commit log, explaining what you fixed etc)
|
||||
|
||||
# Prepare the patch to submit to the mailing-list. This step will create
|
||||
# a file named 0001-subject-of-your-patch.patch from the last commit
|
||||
# (use HEAD~2 if you want patches for the last 2 commits etc)
|
||||
git format-patch HEAD~1
|
||||
|
||||
After the above steps, you are ready to send the created .patch file
|
||||
to the mailing-list! Just send it as-is, and I will be able to apply
|
||||
it with
|
||||
|
||||
# this is how I am going to apply your patch
|
||||
git am 0001-subject-of-your-patch.patch
|
||||
|
||||
and it will automatically append your commit to the repo, with the
|
||||
proper authorship, date, subject, commit log etc.
|
||||
|
||||
___________________
|
||||
Example .gitconfig
|
||||
-------------------
|
||||
|
||||
[user]
|
||||
name = Erwin Schrodinger
|
||||
email = schrodinger@gmail.com
|
||||
[core]
|
||||
editor = xjed
|
||||
[status]
|
||||
showUntrackedFiles = no
|
||||
[color]
|
||||
branch = auto
|
||||
status = auto
|
||||
diff = auto
|
||||
ui = auto
|
||||
[apply]
|
||||
whitespace = fix
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
get-wings-flags get-wutil-flags
|
||||
.libs *.pc
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
@@ -1,8 +1,26 @@
|
||||
Changes since wmaker 0.92.0:
|
||||
............................
|
||||
|
||||
- updated the XDND code in to work with GDK based applications.
|
||||
WINGs based applications should now work with both KDE and GNOME
|
||||
applications (Sylvain Reynal <sreynal@nerim.net>)
|
||||
- better check for the XDND protocol version when interoperating with other
|
||||
applications. As it seems xdnd version 3 (which WINGs supports) and newer
|
||||
are not backward compatible with xdnd version 1 and 2. This is why WINGs
|
||||
applications cannot interoperate with GNUstep applications (which uses
|
||||
xdnd version 2). Xdnd version 4 and 5 are backwards compatible with
|
||||
version 3 though. (Sylvain Reynal <sreynal@nerim.net>)
|
||||
- removed dependency on rgb.txt from X11 and issues with locating it on the
|
||||
filesystem for different systems/distributions.
|
||||
- Removed dependency on rgb.txt (from X11) and issues with locating it on the
|
||||
filesystem for different systems/distributions.
|
||||
|
||||
|
||||
Changes since wmaker 0.80.1:
|
||||
............................
|
||||
|
||||
- added WMSetConnectionShutdownOnClose()
|
||||
- added an extra member to the ConnectionDelegate: canResumeSending
|
||||
- Added WMSetConnectionShutdownOnClose()
|
||||
- Added an extra member to the ConnectionDelegate: canResumeSending
|
||||
see NEWS for details.
|
||||
- WMDrawString() and WMDrawImageString() now take WMColor instead of GC as
|
||||
arguments. WMDrawImageString() receives 2 colors (text & background).
|
||||
@@ -11,31 +29,20 @@ Changes since wmaker 0.80.1:
|
||||
- Added alpha channel to WMColor. 2 new functions also:
|
||||
WMCreateRGBAColor() and WMSetColorAlpha()
|
||||
- Miscelaneous code cleanups in wtext.c
|
||||
- Added Xft support in WINGs (for drawing antialiased fonts with transparency).
|
||||
- Added a new function: WMCreateAntialiasedFont() to create a font which will
|
||||
be drawn antialiased using Xft (if available, else function returns NULL)
|
||||
- New options in WMGLOBAL: AntialiasedText, AntialiasedSystemFont and
|
||||
AntialiasedBoldSystemFont. Check NEWS for details.
|
||||
- Added Xft2 support in WINGs (for drawing antialiased fonts with transparency).
|
||||
- New options in WMGLOBAL: AntialiasedText. Check NEWS for details.
|
||||
- Fixed some improper calls to snprintf in wfont.c
|
||||
- Added double buffering when drawing a WMFrame title with an antialiased font
|
||||
to avoid flickering.
|
||||
- Added double buffering when drawing WMList items to avoid flickering.
|
||||
Double buffering for list also works for user drawn lists. Read NEWS for
|
||||
details and incompatibilities introduced by this change.
|
||||
- Added WMIsAntialiasedFont(WMFont *font) to check if a font is antialiased.
|
||||
- Added WMGetColorAlpha(WMColor *color)
|
||||
- Better outline when drawing balloons.
|
||||
- Added WMCreateFontWithFlags()
|
||||
- Added WMCreateFontWithAttributes()
|
||||
- You can now pass "SystemFont", "BoldSystemFont", "SystemFont-##" or
|
||||
"BoldSystemFont-##", with ## being the font size to any font creating
|
||||
function to create a font with the (bold) system font font specification.
|
||||
- Added WMCreateAntialiasedFontSet() (like WMCreateAntialiasedFont() but for
|
||||
languages with multibyte text). Note however that these specific font
|
||||
creating functions (as well as WMCreateNormalFont() and WMCreateFontSet())
|
||||
are not meant to be called directly except in very special cases.
|
||||
The more generic WMCreateFont() or WMCreateFontWithFlags() should be used.
|
||||
- Multibyte languages can now render antialiased text too (only tested on
|
||||
russian since this is the only multibyte language I can test).
|
||||
- Added WMCopyFontWithChanges(). This is a more generic and powerful function
|
||||
meant to replaces the obsoleted WMEmphasizeFont(), WMNormalizeFont(),
|
||||
WMStrenghtenFont() and the other similar functions. To get the same effect
|
||||
@@ -45,8 +52,6 @@ Changes since wmaker 0.80.1:
|
||||
- Added WMGetWidgetBackgroundColor()
|
||||
- Code cleanup in wtext.c
|
||||
- Fixed a memory leak in wfontpanel.c
|
||||
- Added a check that only %d is used in a font specification in WMGLOBAL and at
|
||||
most once for each font in a fontset (eliminates a possible security exploit)
|
||||
- Fixed WMGetTextDefaultColor() not to retain the returned color. It returns
|
||||
only a reference to the internal color, which you shouldn't release
|
||||
- Added wstrndup()
|
||||
@@ -58,13 +63,15 @@ Changes since wmaker 0.80.1:
|
||||
- Fixed small memory leak in the font panel code.
|
||||
- Fixed call to qsort in WMSortArray.
|
||||
- Fixed a memleak in the file panel.
|
||||
- Double/triple-click selection in text widgets (Vitaly Ovtchinnikov
|
||||
<ov@rbcmail.ru>)
|
||||
- fixed bug in tableview (clicked row callback got incorrect row) (Carlos Torres
|
||||
<vlaadbrain@operamail.com>)
|
||||
- Double/triple-click selection in text widgets
|
||||
(Vitaly Ovtchinnikov <ov@rbcmail.ru>)
|
||||
- Fixed bug in tableview (clicked row callback got incorrect row)
|
||||
(Carlos Torres <vlaadbrain@operamail.com>)
|
||||
- Fixed bug in resizing a scrollview
|
||||
- Fixed bug with wrong text wrapping (Alexey Voinov <voins@voins.program.ru>)
|
||||
- Added wmkrect()
|
||||
- Added xdnd v3 support (Sylvain Reynal <sreynal@nerim.net>)
|
||||
- Fixed and enhanced text wrapping.
|
||||
|
||||
|
||||
Changes since wmaker 0.80.0:
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
@@ -1,4 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
connect server fontl puzzle UserTime.plist
|
||||
.libs
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
@@ -3,29 +3,40 @@
|
||||
AUTOMAKE_OPTIONS = no-dependencies
|
||||
|
||||
|
||||
noinst_PROGRAMS = connect server fontl puzzle
|
||||
noinst_PROGRAMS = connect server fontl puzzle colorpick
|
||||
|
||||
|
||||
LDADD= $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la \
|
||||
LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \
|
||||
$(top_builddir)/WINGs/libWUtil.la \
|
||||
@XFTLIBS@ @INTLIBS@
|
||||
|
||||
colorpick_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
|
||||
|
||||
fontl_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
||||
fontl_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
|
||||
|
||||
puzzle_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
||||
puzzle_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
|
||||
|
||||
connect_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.a
|
||||
connect_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la
|
||||
|
||||
connect_LDADD = $(top_builddir)/WINGs/libWUtil.a @LIBRARY_SEARCH_PATH@ \
|
||||
connect_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ \
|
||||
@NETLIBS@ @INTLIBS@
|
||||
|
||||
server_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.a
|
||||
server_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la
|
||||
|
||||
server_LDADD = $(top_builddir)/WINGs/libWUtil.a @LIBRARY_SEARCH_PATH@ \
|
||||
server_LDADD = $(top_builddir)/WINGs/libWUtil.la @LIBRARY_SEARCH_PATH@ \
|
||||
@NETLIBS@ @INTLIBS@
|
||||
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \
|
||||
-DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG
|
||||
|
||||
LIBTOOL = $(QUIET) $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
|
||||
|
||||
.c.o:
|
||||
$(QUIET)$(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(QUIET)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(QUIET)$(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
39
WINGs/Examples/colorpick.c
Normal file
39
WINGs/Examples/colorpick.c
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <WINGs/WINGs.h>
|
||||
|
||||
void showSelectedColor(void *self, void *cdata)
|
||||
{
|
||||
WMColorPanel *panel = (WMColorPanel *) self;
|
||||
|
||||
printf("Selected Color: %s\n", WMGetColorRGBDescription(WMGetColorPanelColor(panel)));
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
Display *dpy;
|
||||
WMScreen *scr;
|
||||
|
||||
WMInitializeApplication("wmcolorpick", &argc, argv);
|
||||
|
||||
dpy = XOpenDisplay("");
|
||||
if (!dpy) {
|
||||
printf("could not open display\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
scr = WMCreateScreen(dpy, DefaultScreen(dpy));
|
||||
|
||||
{
|
||||
WMColorPanel *panel = WMGetColorPanel(scr);
|
||||
|
||||
WMSetColorPanelAction(panel, showSelectedColor, NULL);
|
||||
|
||||
WMShowColorPanel(panel);
|
||||
}
|
||||
|
||||
WMScreenMainLoop(scr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -5,7 +5,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
@@ -13,20 +12,14 @@
|
||||
|
||||
#include <WINGs/WINGs.h>
|
||||
|
||||
|
||||
|
||||
static int initialized = 0;
|
||||
|
||||
|
||||
|
||||
static void didReceiveInput(ConnectionDelegate * self, WMConnection * cPtr);
|
||||
|
||||
static void connectionDidDie(ConnectionDelegate * self, WMConnection * cPtr);
|
||||
|
||||
static void didInitialize(ConnectionDelegate * self, WMConnection * cPtr);
|
||||
|
||||
|
||||
|
||||
static ConnectionDelegate socketDelegate = {
|
||||
NULL, /* data */
|
||||
NULL, /* canResumeSending */
|
||||
@@ -37,17 +30,12 @@ static ConnectionDelegate socketDelegate = {
|
||||
NULL /* didTimeout */
|
||||
};
|
||||
|
||||
|
||||
|
||||
void
|
||||
wAbort(Bool foo)
|
||||
void wAbort(Bool foo)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
getMessage(WMConnection *cPtr)
|
||||
static char *getMessage(WMConnection * cPtr)
|
||||
{
|
||||
char *buffer;
|
||||
WMData *aData;
|
||||
@@ -69,9 +57,7 @@ getMessage(WMConnection *cPtr)
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
inputHandler(int fd, int mask, void *clientData)
|
||||
static void inputHandler(int fd, int mask, void *clientData)
|
||||
{
|
||||
WMConnection *cPtr = (WMConnection *) clientData;
|
||||
WMData *aData;
|
||||
@@ -89,9 +75,7 @@ inputHandler(int fd, int mask, void *clientData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
didReceiveInput(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
static void didReceiveInput(ConnectionDelegate * self, WMConnection * cPtr)
|
||||
{
|
||||
char *buffer;
|
||||
|
||||
@@ -106,9 +90,7 @@ didReceiveInput(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
wfree(buffer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
connectionDidDie(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
static void connectionDidDie(ConnectionDelegate * self, WMConnection * cPtr)
|
||||
{
|
||||
WMCloseConnection(cPtr);
|
||||
|
||||
@@ -116,9 +98,7 @@ connectionDidDie(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
didInitialize(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
static void didInitialize(ConnectionDelegate * self, WMConnection * cPtr)
|
||||
{
|
||||
int state = WMGetConnectionState(cPtr);
|
||||
WMHost *host;
|
||||
@@ -126,8 +106,7 @@ didInitialize(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
if (state == WCConnected) {
|
||||
host = WMGetHostWithAddress(WMGetConnectionAddress(cPtr));
|
||||
fprintf(stderr, "connected to '%s:%s'\n",
|
||||
host?WMGetHostName(host):WMGetConnectionAddress(cPtr),
|
||||
WMGetConnectionService(cPtr));
|
||||
host ? WMGetHostName(host) : WMGetConnectionAddress(cPtr), WMGetConnectionService(cPtr));
|
||||
initialized = 1;
|
||||
if (host)
|
||||
WMReleaseHost(host);
|
||||
@@ -138,9 +117,7 @@ didInitialize(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char *ProgName, *host, *port;
|
||||
int i;
|
||||
@@ -173,8 +150,7 @@ main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
printf("Trying to make connection to '%s:%s'\n",
|
||||
host?host:"localhost", port);
|
||||
printf("Trying to make connection to '%s:%s'\n", host ? host : "localhost", port);
|
||||
|
||||
sPtr = WMCreateConnectionToAddressAndNotify(host, port, NULL);
|
||||
if (!sPtr) {
|
||||
@@ -194,5 +170,3 @@ main(int argc, char **argv)
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,16 +19,13 @@
|
||||
* USA.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <WINGs/WINGs.h>
|
||||
#include <WINGs/WUtil.h>
|
||||
|
||||
void
|
||||
wAbort()
|
||||
void wAbort()
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
@@ -48,9 +45,7 @@ void quit(WMWidget *self, void *data)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
Display *dpy;
|
||||
WMWindow *win;
|
||||
@@ -87,7 +82,7 @@ main(int argc, char **argv)
|
||||
sprintf(buf, "%c", c);
|
||||
WMSetButtonText(lab, buf);
|
||||
WMSetButtonAction(lab, show, pos);
|
||||
WMHangData(lab, (void*)c);
|
||||
WMHangData(lab, (void *)(uintptr_t) c);
|
||||
if (c > 0) {
|
||||
WMGroupButtons(l0, lab);
|
||||
} else {
|
||||
@@ -101,4 +96,3 @@ main(int argc, char **argv)
|
||||
WMScreenMainLoop(scr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <WINGs/WINGs.h>
|
||||
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define MAX_SIZE 10*10
|
||||
|
||||
|
||||
WMWindow *win;
|
||||
WMButton *Button[MAX_SIZE];
|
||||
char Map[MAX_SIZE];
|
||||
signed char Map[MAX_SIZE];
|
||||
int Size = 4;
|
||||
int MoveCount;
|
||||
|
||||
@@ -20,7 +16,6 @@ int MoveCount;
|
||||
|
||||
int WinSize = 120;
|
||||
|
||||
|
||||
Bool CheckWin(void)
|
||||
{
|
||||
int i;
|
||||
@@ -33,16 +28,14 @@ Bool CheckWin(void)
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
void MoveButton(int button, int x, int y)
|
||||
{
|
||||
WMMoveWidget(Button[button], x * (WinSize / Size), y * (WinSize / Size));
|
||||
}
|
||||
|
||||
|
||||
Bool SlideButton(int button)
|
||||
{
|
||||
int x, y, done = 0;
|
||||
int x = 0, y = 0, done = 0;
|
||||
|
||||
/* locate the button */
|
||||
for (y = 0; y < Size; y++) {
|
||||
@@ -78,14 +71,12 @@ Bool SlideButton(int button)
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
#define SWAP(a,b) {int tmp; tmp=a; a=b; b=tmp;}
|
||||
|
||||
void ResetGame(void)
|
||||
{
|
||||
int i, x, y, ox, oy;
|
||||
|
||||
|
||||
MoveCount = 0;
|
||||
|
||||
for (i = 0; i < Size * Size - 1; i++) {
|
||||
@@ -99,16 +90,28 @@ void ResetGame(void)
|
||||
ok = 1;
|
||||
switch (rand() % 4) {
|
||||
case 0:
|
||||
if (x > 0) x--; else ok = 0;
|
||||
if (x > 0)
|
||||
x--;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
case 2:
|
||||
if (x < Size-1) x++; else ok = 0;
|
||||
if (x < Size - 1)
|
||||
x++;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
case 1:
|
||||
if (y > 0) y--; else ok = 0;
|
||||
if (y > 0)
|
||||
y--;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
case 3:
|
||||
if (y < Size-1) y++; else ok = 0;
|
||||
if (y < Size - 1)
|
||||
y++;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
}
|
||||
if (ok) {
|
||||
@@ -127,12 +130,11 @@ void ResetGame(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void buttonClick(WMWidget * w, void *ptr)
|
||||
{
|
||||
char buffer[300];
|
||||
|
||||
if (SlideButton((int)ptr)) {
|
||||
if (SlideButton((uintptr_t)ptr)) {
|
||||
MoveCount++;
|
||||
|
||||
if (CheckWin()) {
|
||||
@@ -148,7 +150,6 @@ void buttonClick(WMWidget *w, void *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void resizeObserver(void *self, WMNotification * notif)
|
||||
{
|
||||
WMSize size = WMGetViewSize(WMWidgetView(win));
|
||||
@@ -158,17 +159,14 @@ static void resizeObserver(void *self, WMNotification *notif)
|
||||
for (y = 0; y < Size; y++) {
|
||||
for (x = 0; x < Size; x++) {
|
||||
if (MAP(x, y) >= 0) {
|
||||
WMResizeWidget(Button[(int)MAP(x,y)],
|
||||
WinSize/Size, WinSize/Size);
|
||||
WMMoveWidget(Button[(int)MAP(x,y)],
|
||||
x*(WinSize/Size), y*(WinSize/Size));
|
||||
WMResizeWidget(Button[(int)MAP(x, y)], WinSize / Size, WinSize / Size);
|
||||
WMMoveWidget(Button[(int)MAP(x, y)], x * (WinSize / Size), y * (WinSize / Size));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
Display *dpy;
|
||||
@@ -177,7 +175,6 @@ int main(int argc, char **argv)
|
||||
|
||||
WMInitializeApplication("Puzzle", &argc, argv);
|
||||
|
||||
|
||||
dpy = XOpenDisplay("");
|
||||
if (!dpy) {
|
||||
printf("could not open display\n");
|
||||
@@ -193,11 +190,7 @@ int main(int argc, char **argv)
|
||||
WMSetWindowAspectRatio(win, 2, 2, 2, 2);
|
||||
WMSetWindowResizeIncrements(win, Size, Size);
|
||||
WMSetViewNotifySizeChanges(WMWidgetView(win), True);
|
||||
WMAddNotificationObserver(resizeObserver, NULL,
|
||||
WMViewSizeDidChangeNotification,
|
||||
WMWidgetView(win));
|
||||
|
||||
|
||||
WMAddNotificationObserver(resizeObserver, NULL, WMViewSizeDidChangeNotification, WMWidgetView(win));
|
||||
|
||||
for (i = y = 0; y < Size && i < Size * Size - 1; y++) {
|
||||
for (x = 0; x < Size && i < Size * Size - 1; x++) {
|
||||
@@ -212,14 +205,13 @@ int main(int argc, char **argv)
|
||||
|
||||
RHSVtoRGB(&hsv, &col);
|
||||
|
||||
color = WMCreateRGBColor(scr, col.red<<8, col.green<<8,
|
||||
col.blue<<8, False);
|
||||
color = WMCreateRGBColor(scr, col.red << 8, col.green << 8, col.blue << 8, False);
|
||||
|
||||
MAP(x, y) = i;
|
||||
Button[i] = WMCreateButton(win, WBTMomentaryLight);
|
||||
WMSetWidgetBackgroundColor(Button[i], color);
|
||||
WMReleaseColor(color);
|
||||
WMSetButtonAction(Button[i], buttonClick, (void*)i);
|
||||
WMSetButtonAction(Button[i], buttonClick, (void *)(uintptr_t) i);
|
||||
WMResizeWidget(Button[i], WinSize / Size, WinSize / Size);
|
||||
WMMoveWidget(Button[i], x * (WinSize / Size), y * (WinSize / Size));
|
||||
sprintf(buf, "%i", i + 1);
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
@@ -13,23 +12,17 @@
|
||||
|
||||
#include <WINGs/WINGs.h>
|
||||
|
||||
|
||||
#define _(P) P
|
||||
#define MAXCMD_SIZE 512
|
||||
|
||||
|
||||
char *SEConnectionShouldBeRemovedNotification = "SEConnectionShouldBeRemovedNotification";
|
||||
|
||||
|
||||
|
||||
|
||||
static void didReceiveInput(ConnectionDelegate * self, WMConnection * cPtr);
|
||||
|
||||
static void connectionDidDie(ConnectionDelegate * self, WMConnection * cPtr);
|
||||
|
||||
static void connectionDidTimeout(ConnectionDelegate * self, WMConnection * cPtr);
|
||||
|
||||
|
||||
extern char *SEConnectionShouldBeRemovedNotification;
|
||||
|
||||
static WMUserDefaults *timeDB = NULL;
|
||||
@@ -39,8 +32,6 @@ static WMArray *allowedHostList = NULL;
|
||||
static WMArray *clientConnections = NULL;
|
||||
static WMConnection *serverPtr = NULL;
|
||||
|
||||
|
||||
|
||||
static ConnectionDelegate socketDelegate = {
|
||||
NULL, /* client data */
|
||||
NULL, /* canResumeSending */
|
||||
@@ -51,17 +42,12 @@ static ConnectionDelegate socketDelegate = {
|
||||
connectionDidTimeout /* didTimeout */
|
||||
};
|
||||
|
||||
|
||||
|
||||
void
|
||||
wAbort(Bool foo)
|
||||
void wAbort(Bool foo)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
printHelp(char *progname)
|
||||
static void printHelp(char *progname)
|
||||
{
|
||||
printf(_("usage: %s [options]\n\n"), progname);
|
||||
puts(_(" --help print this message"));
|
||||
@@ -79,21 +65,16 @@ printHelp(char *progname)
|
||||
" separated and should NOT contain ANY spaces."));
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
enqueueConnectionForRemoval(WMConnection *cPtr)
|
||||
static void enqueueConnectionForRemoval(WMConnection * cPtr)
|
||||
{
|
||||
WMNotification *notif;
|
||||
|
||||
/*don't release notif here. it will be released by queue after processing */
|
||||
notif = WMCreateNotification(SEConnectionShouldBeRemovedNotification,
|
||||
cPtr, NULL);
|
||||
notif = WMCreateNotification(SEConnectionShouldBeRemovedNotification, cPtr, NULL);
|
||||
WMEnqueueNotification(WMGetDefaultNotificationQueue(), notif, WMPostASAP);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
sendMessage(WMConnection *cPtr, char *message)
|
||||
static int sendMessage(WMConnection * cPtr, char *message)
|
||||
{
|
||||
WMData *aData;
|
||||
int res;
|
||||
@@ -108,9 +89,7 @@ sendMessage(WMConnection *cPtr, char *message)
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
static Bool
|
||||
enqueueMessage(WMConnection *cPtr, char *message)
|
||||
static Bool enqueueMessage(WMConnection * cPtr, char *message)
|
||||
{
|
||||
WMData *aData;
|
||||
Bool res;
|
||||
@@ -125,9 +104,7 @@ enqueueMessage(WMConnection *cPtr, char *message)
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
static unsigned char*
|
||||
findDelimiter(unsigned char *data, unsigned const char *endPtr)
|
||||
static char *findDelimiter(char *data, const char *endPtr)
|
||||
{
|
||||
wassertrv(data < endPtr, NULL);
|
||||
|
||||
@@ -140,9 +117,7 @@ findDelimiter(unsigned char *data, unsigned const char *endPtr)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static WMArray*
|
||||
getAvailableMessages(WMConnection *cPtr)
|
||||
static WMArray *getAvailableMessages(WMConnection * cPtr)
|
||||
{
|
||||
char *ptr, *crtPos, *buffer;
|
||||
const char *bytes, *endPtr;
|
||||
@@ -225,10 +200,7 @@ getAvailableMessages(WMConnection *cPtr)
|
||||
return messages;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
complainAboutBadArgs(WMConnection *cPtr, char *cmdName, char *badArgs)
|
||||
static void complainAboutBadArgs(WMConnection * cPtr, char *cmdName, char *badArgs)
|
||||
{
|
||||
char *buf = wmalloc(strlen(cmdName) + strlen(badArgs) + 100);
|
||||
|
||||
@@ -238,9 +210,7 @@ complainAboutBadArgs(WMConnection *cPtr, char *cmdName, char *badArgs)
|
||||
wfree(buf);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
sendUpdateMessage(WMConnection *cPtr, char *id, int time)
|
||||
static void sendUpdateMessage(WMConnection * cPtr, char *id, int time)
|
||||
{
|
||||
char *buf = wmalloc(strlen(id) + 100);
|
||||
|
||||
@@ -249,16 +219,12 @@ sendUpdateMessage(WMConnection *cPtr, char *id, int time)
|
||||
wfree(buf);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
showId(WMConnection *cPtr)
|
||||
static void showId(WMConnection * cPtr)
|
||||
{
|
||||
sendMessage(cPtr, "Server example based on WMConnection\n");
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
showHelp(WMConnection *cPtr)
|
||||
static void showHelp(WMConnection * cPtr)
|
||||
{
|
||||
char *buf = wmalloc(strlen(WMGetApplicationName()) + 16);
|
||||
|
||||
@@ -266,20 +232,13 @@ showHelp(WMConnection *cPtr)
|
||||
|
||||
enqueueMessage(cPtr, _("\n"));
|
||||
enqueueMessage(cPtr, buf);
|
||||
enqueueMessage(cPtr, _("GET <id>\t- return time left (in minutes) "
|
||||
"for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("SET <id> <time>\t- set time limit to <time> "
|
||||
"minutes for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("ADD <id> <time>\t- add <time> minutes "
|
||||
"for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("SUB <id> <time>\t- subtract <time> minutes "
|
||||
"for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("REMOVE <id>\t- remove time limitations for "
|
||||
"user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("LIST\t\t- list all users and their "
|
||||
"corresponding time limit\n"));
|
||||
enqueueMessage(cPtr, _("ID\t\t- returns the Time Manager "
|
||||
"identification string\n"));
|
||||
enqueueMessage(cPtr, _("GET <id>\t- return time left (in minutes) " "for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("SET <id> <time>\t- set time limit to <time> " "minutes for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("ADD <id> <time>\t- add <time> minutes " "for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("SUB <id> <time>\t- subtract <time> minutes " "for user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("REMOVE <id>\t- remove time limitations for " "user with id <id>\n"));
|
||||
enqueueMessage(cPtr, _("LIST\t\t- list all users and their " "corresponding time limit\n"));
|
||||
enqueueMessage(cPtr, _("ID\t\t- returns the Time Manager " "identification string\n"));
|
||||
enqueueMessage(cPtr, _("EXIT\t\t- exits session\n"));
|
||||
enqueueMessage(cPtr, _("QUIT\t\t- exits session\n"));
|
||||
enqueueMessage(cPtr, _("HELP\t\t- show this message\n\n"));
|
||||
@@ -288,9 +247,7 @@ showHelp(WMConnection *cPtr)
|
||||
wfree(buf);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
listUsers(WMConnection *cPtr)
|
||||
static void listUsers(WMConnection * cPtr)
|
||||
{
|
||||
WMPropList *userList;
|
||||
char *id;
|
||||
@@ -307,9 +264,7 @@ listUsers(WMConnection *cPtr)
|
||||
WMReleasePropList(userList);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
setTimeForUser(WMConnection *cPtr, char *cmdArgs)
|
||||
static void setTimeForUser(WMConnection * cPtr, char *cmdArgs)
|
||||
{
|
||||
char *id;
|
||||
int i, time;
|
||||
@@ -332,9 +287,7 @@ setTimeForUser(WMConnection *cPtr, char *cmdArgs)
|
||||
wfree(id);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
addTimeToUser(WMConnection *cPtr, char *cmdArgs)
|
||||
static void addTimeToUser(WMConnection * cPtr, char *cmdArgs)
|
||||
{
|
||||
char *id;
|
||||
int i, time, newTime;
|
||||
@@ -359,9 +312,7 @@ addTimeToUser(WMConnection *cPtr, char *cmdArgs)
|
||||
wfree(id);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
subTimeFromUser(WMConnection *cPtr, char *cmdArgs)
|
||||
static void subTimeFromUser(WMConnection * cPtr, char *cmdArgs)
|
||||
{
|
||||
char *id;
|
||||
int i, time, newTime;
|
||||
@@ -386,9 +337,7 @@ subTimeFromUser(WMConnection *cPtr, char *cmdArgs)
|
||||
wfree(id);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
removeTimeForUser(WMConnection *cPtr, char *cmdArgs)
|
||||
static void removeTimeForUser(WMConnection * cPtr, char *cmdArgs)
|
||||
{
|
||||
char *ptr;
|
||||
int i;
|
||||
@@ -412,16 +361,13 @@ removeTimeForUser(WMConnection *cPtr, char *cmdArgs)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
getTimeForUser(WMConnection *cPtr, char *cmdArgs)
|
||||
static void getTimeForUser(WMConnection * cPtr, char *cmdArgs)
|
||||
{
|
||||
char *ptr;
|
||||
int time;
|
||||
|
||||
if (cmdArgs[0] == '\0') {
|
||||
sendMessage(cPtr, _("Missing parameter for command GET."
|
||||
" Use HELP for a list of commands.\n"));
|
||||
sendMessage(cPtr, _("Missing parameter for command GET." " Use HELP for a list of commands.\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -438,9 +384,7 @@ getTimeForUser(WMConnection *cPtr, char *cmdArgs)
|
||||
sendUpdateMessage(cPtr, cmdArgs, time);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
handleConnection(WMConnection *cPtr)
|
||||
static void handleConnection(WMConnection * cPtr)
|
||||
{
|
||||
char *command, *ptr, *cmdArgs, *buffer;
|
||||
WMArray *commands;
|
||||
@@ -492,8 +436,7 @@ handleConnection(WMConnection *cPtr)
|
||||
getTimeForUser(cPtr, cmdArgs);
|
||||
} else {
|
||||
buffer = wmalloc(strlen(command) + 100);
|
||||
sprintf(buffer, _("Unknown command '%s'. Try HELP for"
|
||||
" a list of commands.\n"), command);
|
||||
sprintf(buffer, _("Unknown command '%s'. Try HELP for" " a list of commands.\n"), command);
|
||||
sendMessage(cPtr, buffer);
|
||||
wfree(buffer);
|
||||
}
|
||||
@@ -502,9 +445,7 @@ handleConnection(WMConnection *cPtr)
|
||||
WMFreeArray(commands);
|
||||
}
|
||||
|
||||
|
||||
static Bool
|
||||
isAllowedToConnect(WMConnection *cPtr)
|
||||
static Bool isAllowedToConnect(WMConnection * cPtr)
|
||||
{
|
||||
WMHost *hPtr;
|
||||
int i;
|
||||
@@ -525,9 +466,7 @@ isAllowedToConnect(WMConnection *cPtr)
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
didReceiveInput(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
static void didReceiveInput(ConnectionDelegate * self, WMConnection * cPtr)
|
||||
{
|
||||
if (cPtr == serverPtr) {
|
||||
WMConnection *newPtr = WMAcceptConnection(cPtr);
|
||||
@@ -548,9 +487,7 @@ didReceiveInput(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
connectionDidTimeout(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
static void connectionDidTimeout(ConnectionDelegate * self, WMConnection * cPtr)
|
||||
{
|
||||
WMHost *hPtr;
|
||||
|
||||
@@ -560,16 +497,13 @@ connectionDidTimeout(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
}
|
||||
|
||||
hPtr = WMGetHostWithAddress(WMGetConnectionAddress(cPtr));
|
||||
wwarning(_("Connection with %s did timeout. Closing connection."),
|
||||
WMGetHostName(hPtr));
|
||||
wwarning(_("Connection with %s did timeout. Closing connection."), WMGetHostName(hPtr));
|
||||
WMReleaseHost(hPtr);
|
||||
|
||||
enqueueConnectionForRemoval(cPtr);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
connectionDidDie(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
static void connectionDidDie(ConnectionDelegate * self, WMConnection * cPtr)
|
||||
{
|
||||
if (cPtr == serverPtr) {
|
||||
/* trouble. server listening port itself died!!! */
|
||||
@@ -580,9 +514,7 @@ connectionDidDie(ConnectionDelegate *self, WMConnection *cPtr)
|
||||
enqueueConnectionForRemoval(cPtr);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
removeConnection(void *observer, WMNotification *notification)
|
||||
static void removeConnection(void *observer, WMNotification * notification)
|
||||
{
|
||||
WMConnection *cPtr = (WMConnection *) WMGetNotificationObject(notification);
|
||||
WMData *data;
|
||||
@@ -593,16 +525,13 @@ removeConnection(void *observer, WMNotification *notification)
|
||||
WMDestroyConnection(cPtr);
|
||||
}
|
||||
|
||||
static void
|
||||
updatedDomain(void *observer, WMNotification *notification)
|
||||
static void updatedDomain(void *observer, WMNotification * notification)
|
||||
{
|
||||
wmessage("defaults domain file changed on disk. synchronizing.");
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
static Bool
|
||||
isDifferent(char *str1, char *str2)
|
||||
static Bool isDifferent(char *str1, char *str2)
|
||||
{
|
||||
if ((!str1 && !str2) || (str1 && str2 && strcmp(str1, str2) == 0))
|
||||
return False;
|
||||
@@ -611,9 +540,7 @@ isDifferent(char *str1, char *str2)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -683,8 +610,7 @@ main(int argc, char **argv)
|
||||
}
|
||||
|
||||
timeDB = WMGetDefaultsFromPath("./UserTime.plist");
|
||||
WMAddNotificationObserver(updatedDomain, NULL,
|
||||
WMUserDefaultsDidChangeNotification, NULL);
|
||||
WMAddNotificationObserver(updatedDomain, NULL, WMUserDefaultsDidChangeNotification, NULL);
|
||||
|
||||
clientConnections = WMCreateArray(4);
|
||||
|
||||
@@ -697,8 +623,7 @@ main(int argc, char **argv)
|
||||
if (ServerPort == NULL)
|
||||
ServerPort = "34567";
|
||||
|
||||
printf("Server will listen on '%s:%s'\n", ServerAddress?ServerAddress:"Any",
|
||||
ServerPort);
|
||||
printf("Server will listen on '%s:%s'\n", ServerAddress ? ServerAddress : "Any", ServerPort);
|
||||
printf("This server will allow connections from:");
|
||||
if (allowedHostList) {
|
||||
int i;
|
||||
@@ -713,8 +638,7 @@ main(int argc, char **argv)
|
||||
printf(" any host.\n");
|
||||
}
|
||||
|
||||
serverPtr = WMCreateConnectionAsServerAtAddress(ServerAddress, ServerPort,
|
||||
NULL);
|
||||
serverPtr = WMCreateConnectionAsServerAtAddress(ServerAddress, ServerPort, NULL);
|
||||
|
||||
if (!serverPtr) {
|
||||
wfatal("could not create server on `%s:%s`. Exiting.",
|
||||
@@ -724,8 +648,7 @@ main(int argc, char **argv)
|
||||
|
||||
WMSetConnectionDelegate(serverPtr, &socketDelegate);
|
||||
|
||||
WMAddNotificationObserver(removeConnection, NULL,
|
||||
SEConnectionShouldBeRemovedNotification, NULL);
|
||||
WMAddNotificationObserver(removeConnection, NULL, SEConnectionShouldBeRemovedNotification, NULL);
|
||||
|
||||
while (1) {
|
||||
/* The ASAP notification queue is called at the end of WHandleEvents()
|
||||
@@ -736,5 +659,3 @@ main(int argc, char **argv)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
.libs
|
||||
test
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
@@ -10,24 +10,38 @@ includedir = @includedir@/WINGs
|
||||
include_HEADERS = wtableview.h wtabledelegates.h
|
||||
|
||||
|
||||
lib_LIBRARIES = libExtraWINGs.a
|
||||
lib_LTLIBRARIES = libExtraWINGs.la
|
||||
|
||||
noinst_PROGRAMS = test
|
||||
|
||||
EXTRA_DIST =
|
||||
|
||||
libExtraWINGs_a_SOURCES = \
|
||||
libExtraWINGs_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS)
|
||||
|
||||
libExtraWINGs_la_SOURCES = \
|
||||
wtableview.c \
|
||||
wtabledelegates.c \
|
||||
wtableview.h \
|
||||
wtabledelegates.h
|
||||
|
||||
AM_CFLAGS = @NOSTRICTALIASING@
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs \
|
||||
-DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG
|
||||
|
||||
LDADD= $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la \
|
||||
LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \
|
||||
$(top_builddir)/WINGs/libWUtil.la \
|
||||
@XFTLIBS@ @INTLIBS@
|
||||
|
||||
test_LDADD = wtableview.o wtabledelegates.o $(LDADD)
|
||||
|
||||
LIBTOOL = $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
|
||||
|
||||
.c.o:
|
||||
$(QUIET)$(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(QUIET)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(QUIET)$(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
|
||||
|
||||
#include <WINGs/WINGs.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include "wtableview.h"
|
||||
#include "wtabledelegates.h"
|
||||
|
||||
|
||||
static char *col1[20] = { 0 };
|
||||
static int col2[20];
|
||||
|
||||
static int col2[20];
|
||||
|
||||
static char *options[] = {
|
||||
"Option1",
|
||||
@@ -18,13 +17,11 @@ static char *options[] = {
|
||||
"Option5"
|
||||
};
|
||||
|
||||
|
||||
int numberOfRows(WMTableViewDelegate * self, WMTableView * table)
|
||||
{
|
||||
return 20;
|
||||
}
|
||||
|
||||
|
||||
void *valueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row)
|
||||
{
|
||||
/*WMTableView *table = (WMTableView*)WMGetTableColumnTableView(column); */
|
||||
@@ -39,23 +36,20 @@ void *valueForCell(WMTableViewDelegate *self, WMTableColumn *column, int row)
|
||||
col2[i] = 0;
|
||||
}
|
||||
}
|
||||
if ((int)WMGetTableColumnId(column) == 1)
|
||||
if ((uintptr_t)WMGetTableColumnId(column) == 1)
|
||||
return col1[row];
|
||||
else
|
||||
return (void*)col2[row];
|
||||
return (void *)(uintptr_t) col2[row];
|
||||
}
|
||||
|
||||
|
||||
void setValueForCell(WMTableViewDelegate *self, WMTableColumn *column, int row,
|
||||
void *data)
|
||||
void setValueForCell(WMTableViewDelegate * self, WMTableColumn * column, int row, void *data)
|
||||
{
|
||||
if ((int)WMGetTableColumnId(column) == 1)
|
||||
if ((uintptr_t)WMGetTableColumnId(column) == 1)
|
||||
col1[row] = data;
|
||||
else
|
||||
col2[row] = (int)data;
|
||||
col2[row] = (uintptr_t) data;
|
||||
}
|
||||
|
||||
|
||||
static WMTableViewDelegate delegate = {
|
||||
NULL,
|
||||
numberOfRows,
|
||||
@@ -63,8 +57,6 @@ static WMTableViewDelegate delegate = {
|
||||
setValueForCell
|
||||
};
|
||||
|
||||
|
||||
|
||||
void clickedTable(WMWidget * w, void *self)
|
||||
{
|
||||
int row = WMGetTableViewClickedRow((WMTableView *) self);
|
||||
@@ -72,10 +64,7 @@ void clickedTable(WMWidget *w, void *self)
|
||||
WMEditTableViewRow(self, row);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
WMScreen *scr;
|
||||
WMWindow *win;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
|
||||
#include <stdint.h>
|
||||
#include <WINGs/WINGsP.h>
|
||||
|
||||
#include "wtableview.h"
|
||||
@@ -14,14 +14,11 @@ typedef struct {
|
||||
WMColor *textColor;
|
||||
} StringData;
|
||||
|
||||
|
||||
typedef struct {
|
||||
WMTableView *table;
|
||||
GC selGc;
|
||||
} PixmapData;
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
WMTextField *widget;
|
||||
WMTableView *table;
|
||||
@@ -31,7 +28,6 @@ typedef struct {
|
||||
WMColor *textColor;
|
||||
} StringEditorData;
|
||||
|
||||
|
||||
typedef struct {
|
||||
WMPopUpButton *widget;
|
||||
WMTableView *table;
|
||||
@@ -43,7 +39,6 @@ typedef struct {
|
||||
WMColor *textColor;
|
||||
} EnumSelectorData;
|
||||
|
||||
|
||||
typedef struct {
|
||||
WMButton *widget;
|
||||
WMTableView *table;
|
||||
@@ -52,14 +47,11 @@ typedef struct {
|
||||
GC selGC;
|
||||
} BooleanSwitchData;
|
||||
|
||||
|
||||
static char *SelectionColor = "#bbbbcc";
|
||||
|
||||
|
||||
|
||||
static void stringDraw(WMScreen *scr, Drawable d, GC gc, GC sgc,
|
||||
WMColor *textColor, WMFont *font, void *data,
|
||||
WMRect rect, Bool selected)
|
||||
static void
|
||||
stringDraw(WMScreen * scr, Drawable d, GC gc, GC sgc, WMColor * textColor,
|
||||
WMFont * font, void *data, WMRect rect, Bool selected)
|
||||
{
|
||||
int x, y;
|
||||
XRectangle rects[1];
|
||||
@@ -77,22 +69,17 @@ static void stringDraw(WMScreen *scr, Drawable d, GC gc, GC sgc,
|
||||
if (!selected) {
|
||||
XFillRectangles(dpy, d, gc, rects, 1);
|
||||
|
||||
WMDrawString(scr, d, textColor, font, x, y,
|
||||
data, strlen(data));
|
||||
WMDrawString(scr, d, textColor, font, x, y, data, strlen(data));
|
||||
} else {
|
||||
XFillRectangles(dpy, d, sgc, rects, 1);
|
||||
|
||||
WMDrawString(scr, d, textColor, font, x, y,
|
||||
data, strlen(data));
|
||||
WMDrawString(scr, d, textColor, font, x, y, data, strlen(data));
|
||||
}
|
||||
|
||||
XSetClipMask(dpy, gc, None);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pixmapDraw(WMScreen *scr, Drawable d, GC gc, GC sgc,
|
||||
WMPixmap *pixmap, WMRect rect, Bool selected)
|
||||
static void pixmapDraw(WMScreen * scr, Drawable d, GC gc, GC sgc, WMPixmap * pixmap, WMRect rect, Bool selected)
|
||||
{
|
||||
int x, y;
|
||||
XRectangle rects[1];
|
||||
@@ -130,41 +117,29 @@ static void pixmapDraw(WMScreen *scr, Drawable d, GC gc, GC sgc,
|
||||
XSetClipMask(dpy, gc, None);
|
||||
}
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
|
||||
|
||||
static void SECellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void SECellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
StringEditorData *strdata = (StringEditorData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
|
||||
stringDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
|
||||
WMTableViewDataForCell(table, column, row),
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
False);
|
||||
WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), False);
|
||||
}
|
||||
|
||||
|
||||
static void selectedSECellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void selectedSECellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
StringEditorData *strdata = (StringEditorData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
|
||||
stringDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
|
||||
WMTableViewDataForCell(table, column, row),
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
True);
|
||||
WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), True);
|
||||
}
|
||||
|
||||
|
||||
static void beginSECellEdit(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row)
|
||||
static void beginSECellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row)
|
||||
{
|
||||
StringEditorData *strdata = (StringEditorData *) self->data;
|
||||
WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
|
||||
@@ -177,9 +152,7 @@ static void beginSECellEdit(WMTableColumnDelegate *self,
|
||||
WMMapWidget(strdata->widget);
|
||||
}
|
||||
|
||||
|
||||
static void endSECellEdit(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row)
|
||||
static void endSECellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row)
|
||||
{
|
||||
StringEditorData *strdata = (StringEditorData *) self->data;
|
||||
char *text;
|
||||
@@ -190,7 +163,6 @@ static void endSECellEdit(WMTableColumnDelegate *self,
|
||||
WMSetTableViewDataForCell(strdata->table, column, row, (void *)text);
|
||||
}
|
||||
|
||||
|
||||
WMTableColumnDelegate *WTCreateStringEditorDelegate(WMTableView * parent)
|
||||
{
|
||||
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||
@@ -198,9 +170,7 @@ WMTableColumnDelegate *WTCreateStringEditorDelegate(WMTableView *parent)
|
||||
StringEditorData *data = wmalloc(sizeof(StringEditorData));
|
||||
|
||||
data->widget = WMCreateTextField(parent);
|
||||
W_ReparentView(WMWidgetView(data->widget),
|
||||
WMGetTableViewDocumentView(parent),
|
||||
0, 0);
|
||||
W_ReparentView(WMWidgetView(data->widget), WMGetTableViewDocumentView(parent), 0, 0);
|
||||
data->table = parent;
|
||||
data->font = WMSystemFontOfSize(scr, 12);
|
||||
data->gc = WMColorGC(WMWhiteColor(scr));
|
||||
@@ -216,47 +186,35 @@ WMTableColumnDelegate *WTCreateStringEditorDelegate(WMTableView *parent)
|
||||
return delegate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
|
||||
static void ESCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void ESCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
EnumSelectorData *strdata = (EnumSelectorData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
int i = (int)WMTableViewDataForCell(table, column, row);
|
||||
uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
|
||||
|
||||
stringDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
|
||||
strdata->options[i],
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
False);
|
||||
strdata->options[i], WMTableViewRectForCell(table, column, row), False);
|
||||
}
|
||||
|
||||
|
||||
static void selectedESCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void selectedESCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
EnumSelectorData *strdata = (EnumSelectorData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
int i = (int)WMTableViewDataForCell(table, column, row);
|
||||
uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
|
||||
|
||||
stringDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
|
||||
strdata->options[i],
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
True);
|
||||
strdata->options[i], WMTableViewRectForCell(table, column, row), True);
|
||||
}
|
||||
|
||||
|
||||
static void beginESCellEdit(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row)
|
||||
static void beginESCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row)
|
||||
{
|
||||
EnumSelectorData *strdata = (EnumSelectorData *) self->data;
|
||||
WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
|
||||
int data = (int)WMTableViewDataForCell(strdata->table, column, row);
|
||||
uintptr_t data = (uintptr_t)WMTableViewDataForCell(strdata->table, column, row);
|
||||
|
||||
wassertr(data < strdata->count);
|
||||
|
||||
@@ -268,9 +226,7 @@ static void beginESCellEdit(WMTableColumnDelegate *self,
|
||||
WMMapWidget(strdata->widget);
|
||||
}
|
||||
|
||||
|
||||
static void endESCellEdit(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row)
|
||||
static void endESCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row)
|
||||
{
|
||||
EnumSelectorData *strdata = (EnumSelectorData *) self->data;
|
||||
int option;
|
||||
@@ -278,10 +234,9 @@ static void endESCellEdit(WMTableColumnDelegate *self,
|
||||
WMUnmapWidget(strdata->widget);
|
||||
|
||||
option = WMGetPopUpButtonSelectedItem(strdata->widget);
|
||||
WMSetTableViewDataForCell(strdata->table, column, row, (void*)option);
|
||||
WMSetTableViewDataForCell(strdata->table, column, row, (void *)(uintptr_t) option);
|
||||
}
|
||||
|
||||
|
||||
WMTableColumnDelegate *WTCreateEnumSelectorDelegate(WMTableView * parent)
|
||||
{
|
||||
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||
@@ -289,9 +244,7 @@ WMTableColumnDelegate *WTCreateEnumSelectorDelegate(WMTableView *parent)
|
||||
EnumSelectorData *data = wmalloc(sizeof(EnumSelectorData));
|
||||
|
||||
data->widget = WMCreatePopUpButton(parent);
|
||||
W_ReparentView(WMWidgetView(data->widget),
|
||||
WMGetTableViewDocumentView(parent),
|
||||
0, 0);
|
||||
W_ReparentView(WMWidgetView(data->widget), WMGetTableViewDocumentView(parent), 0, 0);
|
||||
data->table = parent;
|
||||
data->font = WMSystemFontOfSize(scr, 12);
|
||||
data->gc = WMColorGC(WMWhiteColor(scr));
|
||||
@@ -309,16 +262,12 @@ WMTableColumnDelegate *WTCreateEnumSelectorDelegate(WMTableView *parent)
|
||||
return delegate;
|
||||
}
|
||||
|
||||
|
||||
void WTSetEnumSelectorOptions(WMTableColumnDelegate *delegate,
|
||||
char **options, int count)
|
||||
void WTSetEnumSelectorOptions(WMTableColumnDelegate * delegate, char **options, int count)
|
||||
{
|
||||
EnumSelectorData *data = (EnumSelectorData *) delegate->data;
|
||||
int i;
|
||||
|
||||
for (i = 0;
|
||||
i < WMGetPopUpButtonNumberOfItems(data->widget);
|
||||
i++) {
|
||||
for (i = 0; i < WMGetPopUpButtonNumberOfItems(data->widget); i++) {
|
||||
WMRemovePopUpButtonItem(data->widget, 0);
|
||||
}
|
||||
|
||||
@@ -330,16 +279,13 @@ void WTSetEnumSelectorOptions(WMTableColumnDelegate *delegate,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
static void BSCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void BSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
BooleanSwitchData *strdata = (BooleanSwitchData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
int i = (int)WMTableViewDataForCell(table, column, row);
|
||||
uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
|
||||
WMScreen *scr = WMWidgetScreen(table);
|
||||
|
||||
if (i) {
|
||||
@@ -348,18 +294,15 @@ static void BSCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableViewRectForCell(table, column, row), False);
|
||||
} else {
|
||||
pixmapDraw(scr, d,
|
||||
strdata->gc, strdata->selGC, NULL,
|
||||
WMTableViewRectForCell(table, column, row), False);
|
||||
strdata->gc, strdata->selGC, NULL, WMTableViewRectForCell(table, column, row), False);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void selectedBSCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void selectedBSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
BooleanSwitchData *strdata = (BooleanSwitchData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
int i = (int)WMTableViewDataForCell(table, column, row);
|
||||
uintptr_t i = (uintptr_t)WMTableViewDataForCell(table, column, row);
|
||||
WMScreen *scr = WMWidgetScreen(table);
|
||||
|
||||
if (i) {
|
||||
@@ -368,19 +311,15 @@ static void selectedBSCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableViewRectForCell(table, column, row), True);
|
||||
} else {
|
||||
pixmapDraw(scr, d,
|
||||
strdata->gc, strdata->selGC, NULL,
|
||||
WMTableViewRectForCell(table, column, row), True);
|
||||
strdata->gc, strdata->selGC, NULL, WMTableViewRectForCell(table, column, row), True);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void beginBSCellEdit(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row)
|
||||
static void beginBSCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row)
|
||||
{
|
||||
BooleanSwitchData *strdata = (BooleanSwitchData *) self->data;
|
||||
WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
|
||||
int data = (int)WMTableViewDataForCell(strdata->table, column, row);
|
||||
uintptr_t data = (uintptr_t)WMTableViewDataForCell(strdata->table, column, row);
|
||||
|
||||
WMSetButtonSelected(strdata->widget, data);
|
||||
WMMoveWidget(strdata->widget, rect.pos.x + 1, rect.pos.y + 1);
|
||||
@@ -389,19 +328,16 @@ static void beginBSCellEdit(WMTableColumnDelegate *self,
|
||||
WMMapWidget(strdata->widget);
|
||||
}
|
||||
|
||||
|
||||
static void endBSCellEdit(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row)
|
||||
static void endBSCellEdit(WMTableColumnDelegate * self, WMTableColumn * column, int row)
|
||||
{
|
||||
BooleanSwitchData *strdata = (BooleanSwitchData *) self->data;
|
||||
int value;
|
||||
|
||||
value = WMGetButtonSelected(strdata->widget);
|
||||
WMSetTableViewDataForCell(strdata->table, column, row, (void*)value);
|
||||
WMSetTableViewDataForCell(strdata->table, column, row, (void *)(uintptr_t) value);
|
||||
WMUnmapWidget(strdata->widget);
|
||||
}
|
||||
|
||||
|
||||
WMTableColumnDelegate *WTCreateBooleanSwitchDelegate(WMTableView * parent)
|
||||
{
|
||||
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||
@@ -410,9 +346,7 @@ WMTableColumnDelegate *WTCreateBooleanSwitchDelegate(WMTableView *parent)
|
||||
WMColor *color;
|
||||
|
||||
data->widget = WMCreateSwitchButton(parent);
|
||||
W_ReparentView(WMWidgetView(data->widget),
|
||||
WMGetTableViewDocumentView(parent),
|
||||
0, 0);
|
||||
W_ReparentView(WMWidgetView(data->widget), WMGetTableViewDocumentView(parent), 0, 0);
|
||||
WMSetButtonText(data->widget, NULL);
|
||||
WMSetButtonImagePosition(data->widget, WIPImageOnly);
|
||||
WMSetButtonImage(data->widget, NULL);
|
||||
@@ -433,38 +367,28 @@ WMTableColumnDelegate *WTCreateBooleanSwitchDelegate(WMTableView *parent)
|
||||
return delegate;
|
||||
}
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
|
||||
static void SCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void SCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
StringData *strdata = (StringData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
|
||||
stringDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
|
||||
WMTableViewDataForCell(table, column, row),
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
False);
|
||||
WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), False);
|
||||
}
|
||||
|
||||
|
||||
static void selectedSCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void selectedSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
StringData *strdata = (StringData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
|
||||
stringDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC, strdata->textColor, strdata->font,
|
||||
WMTableViewDataForCell(table, column, row),
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
True);
|
||||
WMTableViewDataForCell(table, column, row), WMTableViewRectForCell(table, column, row), True);
|
||||
}
|
||||
|
||||
|
||||
WMTableColumnDelegate *WTCreateStringDelegate(WMTableView * parent)
|
||||
{
|
||||
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||
@@ -486,12 +410,9 @@ WMTableColumnDelegate *WTCreateStringDelegate(WMTableView *parent)
|
||||
return delegate;
|
||||
}
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
|
||||
static void PCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void PCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
StringData *strdata = (StringData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
@@ -499,13 +420,10 @@ static void PCellPainter(WMTableColumnDelegate *self,
|
||||
pixmapDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC,
|
||||
(WMPixmap *) WMTableViewDataForCell(table, column, row),
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
False);
|
||||
WMTableViewRectForCell(table, column, row), False);
|
||||
}
|
||||
|
||||
|
||||
static void selectedPCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void selectedPCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
StringData *strdata = (StringData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
@@ -513,11 +431,9 @@ static void selectedPCellPainter(WMTableColumnDelegate *self,
|
||||
pixmapDraw(WMWidgetScreen(table), d,
|
||||
strdata->gc, strdata->selGC,
|
||||
(WMPixmap *) WMTableViewDataForCell(table, column, row),
|
||||
WMTableViewRectForCell(table, column, row),
|
||||
True);
|
||||
WMTableViewRectForCell(table, column, row), True);
|
||||
}
|
||||
|
||||
|
||||
WMTableColumnDelegate *WTCreatePixmapDelegate(WMTableView * table)
|
||||
{
|
||||
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||
@@ -537,12 +453,9 @@ WMTableColumnDelegate *WTCreatePixmapDelegate(WMTableView *table)
|
||||
return delegate;
|
||||
}
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
|
||||
static void drawPSCell(WMTableColumnDelegate *self, Drawable d,
|
||||
WMTableColumn *column, int row, Bool selected)
|
||||
static void drawPSCell(WMTableColumnDelegate * self, Drawable d, WMTableColumn * column, int row, Bool selected)
|
||||
{
|
||||
StringData *strdata = (StringData *) self->data;
|
||||
WMTableView *table = WMGetTableColumnTableView(column);
|
||||
@@ -567,8 +480,7 @@ static void drawPSCell(WMTableColumnDelegate *self, Drawable d,
|
||||
|
||||
pixmapDraw(WMWidgetScreen(table),
|
||||
WMViewXID(WMGetTableViewDocumentView(table)),
|
||||
strdata->gc, strdata->selGC, pix, rect,
|
||||
selected);
|
||||
strdata->gc, strdata->selGC, pix, rect, selected);
|
||||
|
||||
rect.pos.x += size.width - 1;
|
||||
rect.size.width = owidth - size.width + 1;
|
||||
@@ -578,21 +490,16 @@ static void drawPSCell(WMTableColumnDelegate *self, Drawable d,
|
||||
strdata->textColor, strdata->font, str, rect, selected);
|
||||
}
|
||||
|
||||
|
||||
static void PSCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void PSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
drawPSCell(self, d, column, row, False);
|
||||
}
|
||||
|
||||
|
||||
static void selectedPSCellPainter(WMTableColumnDelegate *self,
|
||||
WMTableColumn *column, int row, Drawable d)
|
||||
static void selectedPSCellPainter(WMTableColumnDelegate * self, WMTableColumn * column, int row, Drawable d)
|
||||
{
|
||||
drawPSCell(self, d, column, row, True);
|
||||
}
|
||||
|
||||
|
||||
WMTableColumnDelegate *WTCreatePixmapStringDelegate(WMTableView * parent)
|
||||
{
|
||||
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||
@@ -613,5 +520,3 @@ WMTableColumnDelegate *WTCreatePixmapStringDelegate(WMTableView *parent)
|
||||
|
||||
return delegate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
|
||||
|
||||
#include <WINGs/WINGsP.h>
|
||||
#include <X11/cursorfont.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "wtableview.h"
|
||||
|
||||
|
||||
const char *WMTableViewSelectionDidChangeNotification = "WMTableViewSelectionDidChangeNotification";
|
||||
|
||||
|
||||
struct W_TableColumn {
|
||||
WMTableView *table;
|
||||
WMWidget *titleW;
|
||||
@@ -25,14 +23,12 @@ struct W_TableColumn {
|
||||
unsigned editable:1;
|
||||
};
|
||||
|
||||
|
||||
static void handleResize(W_ViewDelegate * self, WMView * view);
|
||||
|
||||
static void rearrangeHeader(WMTableView * table);
|
||||
|
||||
static WMRange rowsInRect(WMTableView * table, WMRect rect);
|
||||
|
||||
|
||||
WMTableColumn *WMCreateTableColumn(char *title)
|
||||
{
|
||||
WMTableColumn *col = wmalloc(sizeof(WMTableColumn));
|
||||
@@ -55,19 +51,16 @@ WMTableColumn *WMCreateTableColumn(char *title)
|
||||
return col;
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableColumnId(WMTableColumn * column, void *id)
|
||||
{
|
||||
column->id = id;
|
||||
}
|
||||
|
||||
|
||||
void *WMGetTableColumnId(WMTableColumn * column)
|
||||
{
|
||||
return column->id;
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableColumnWidth(WMTableColumn * column, unsigned width)
|
||||
{
|
||||
if (column->maxWidth == 0)
|
||||
@@ -80,16 +73,12 @@ void WMSetTableColumnWidth(WMTableColumn *column, unsigned width)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableColumnDelegate(WMTableColumn *column,
|
||||
WMTableColumnDelegate *delegate)
|
||||
void WMSetTableColumnDelegate(WMTableColumn * column, WMTableColumnDelegate * delegate)
|
||||
{
|
||||
column->delegate = delegate;
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableColumnConstraints(WMTableColumn *column,
|
||||
unsigned minWidth, unsigned maxWidth)
|
||||
void WMSetTableColumnConstraints(WMTableColumn * column, unsigned minWidth, unsigned maxWidth)
|
||||
{
|
||||
wassertr(maxWidth == 0 || minWidth <= maxWidth);
|
||||
|
||||
@@ -102,20 +91,16 @@ void WMSetTableColumnConstraints(WMTableColumn *column,
|
||||
WMSetTableColumnWidth(column, column->maxWidth);
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableColumnEditable(WMTableColumn * column, Bool flag)
|
||||
{
|
||||
column->editable = ((flag == 0) ? 0 : 1);
|
||||
}
|
||||
|
||||
|
||||
WMTableView *WMGetTableColumnTableView(WMTableColumn * column)
|
||||
{
|
||||
return column->table;
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct W_TableView {
|
||||
W_Class widgetClass;
|
||||
WMView *view;
|
||||
@@ -174,7 +159,6 @@ struct W_TableView {
|
||||
|
||||
static W_Class tableClass = 0;
|
||||
|
||||
|
||||
static W_ViewDelegate viewDelegate = {
|
||||
NULL,
|
||||
NULL,
|
||||
@@ -183,11 +167,8 @@ static W_ViewDelegate viewDelegate = {
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
|
||||
static void reorganizeInterior(WMTableView * table);
|
||||
|
||||
|
||||
static void handleEvents(XEvent * event, void *data);
|
||||
static void handleTableEvents(XEvent * event, void *data);
|
||||
static void repaintTable(WMTableView * table);
|
||||
@@ -213,7 +194,6 @@ static WMSize getTotalSize(WMTableView *table)
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
static WMRect getVisibleRect(WMTableView * table)
|
||||
{
|
||||
WMSize size = getTotalSize(table);
|
||||
@@ -238,7 +218,6 @@ static WMRect getVisibleRect(WMTableView *table)
|
||||
return rect;
|
||||
}
|
||||
|
||||
|
||||
static void scrollToPoint(WMTableView * table, int x, int y)
|
||||
{
|
||||
WMSize size = getTotalSize(table);
|
||||
@@ -268,7 +247,6 @@ static void scrollToPoint(WMTableView *table, int x, int y)
|
||||
WMSetScrollerParameters(table->vscroll, value, prop);
|
||||
}
|
||||
|
||||
|
||||
if (table->editingRow >= 0) {
|
||||
for (i = 0; i < WMGetArrayItemCount(table->columns); i++) {
|
||||
WMTableColumn *column;
|
||||
@@ -276,15 +254,13 @@ static void scrollToPoint(WMTableView *table, int x, int y)
|
||||
column = WMGetFromArray(table->columns, i);
|
||||
|
||||
if (column->delegate && column->delegate->beginCellEdit)
|
||||
(*column->delegate->beginCellEdit)(column->delegate, column,
|
||||
table->editingRow);
|
||||
(*column->delegate->beginCellEdit) (column->delegate, column, table->editingRow);
|
||||
}
|
||||
}
|
||||
|
||||
repaintTable(table);
|
||||
}
|
||||
|
||||
|
||||
static void adjustScrollers(WMTableView * table)
|
||||
{
|
||||
WMSize size = getTotalSize(table);
|
||||
@@ -325,7 +301,6 @@ static void adjustScrollers(WMTableView *table)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void doScroll(WMWidget * self, void *data)
|
||||
{
|
||||
WMTableView *table = (WMTableView *) data;
|
||||
@@ -350,8 +325,7 @@ static void doScroll(WMWidget *self, void *data)
|
||||
value -= (float)table->rowHeight / size;
|
||||
if (value < 0)
|
||||
value = 0.0;
|
||||
WMSetScrollerParameters(self, value,
|
||||
WMGetScrollerKnobProportion(self));
|
||||
WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self));
|
||||
repaintTable(table);
|
||||
break;
|
||||
|
||||
@@ -360,8 +334,7 @@ static void doScroll(WMWidget *self, void *data)
|
||||
value += (float)table->rowHeight / size;
|
||||
if (value > 1.0)
|
||||
value = 1.0;
|
||||
WMSetScrollerParameters(self, value,
|
||||
WMGetScrollerKnobProportion(self));
|
||||
WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self));
|
||||
repaintTable(table);
|
||||
break;
|
||||
|
||||
@@ -373,8 +346,7 @@ static void doScroll(WMWidget *self, void *data)
|
||||
value -= vpsize / size;
|
||||
if (value < 0.0)
|
||||
value = 0.0;
|
||||
WMSetScrollerParameters(self, value,
|
||||
WMGetScrollerKnobProportion(self));
|
||||
WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self));
|
||||
repaintTable(table);
|
||||
break;
|
||||
|
||||
@@ -382,12 +354,10 @@ static void doScroll(WMWidget *self, void *data)
|
||||
value += vpsize / size;
|
||||
if (value > 1.0)
|
||||
value = 1.0;
|
||||
WMSetScrollerParameters(self, value,
|
||||
WMGetScrollerKnobProportion(self));
|
||||
WMSetScrollerParameters(self, value, WMGetScrollerKnobProportion(self));
|
||||
repaintTable(table);
|
||||
break;
|
||||
|
||||
|
||||
case WSNoPart:
|
||||
case WSKnobSlot:
|
||||
break;
|
||||
@@ -401,12 +371,10 @@ static void doScroll(WMWidget *self, void *data)
|
||||
column = WMGetFromArray(table->columns, i);
|
||||
|
||||
if (column->delegate && column->delegate->beginCellEdit)
|
||||
(*column->delegate->beginCellEdit)(column->delegate, column,
|
||||
table->editingRow);
|
||||
(*column->delegate->beginCellEdit) (column->delegate, column, table->editingRow);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (table->hscroll == self) {
|
||||
int x = 0;
|
||||
int i;
|
||||
@@ -428,9 +396,7 @@ static void doScroll(WMWidget *self, void *data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
splitterHandler(XEvent *event, void *data)
|
||||
static void splitterHandler(XEvent * event, void *data)
|
||||
{
|
||||
WMTableColumn *column = (WMTableColumn *) data;
|
||||
WMTableView *table = column->table;
|
||||
@@ -462,8 +428,7 @@ splitterHandler(XEvent *event, void *data)
|
||||
|
||||
if (column->width + ev.xmotion.x < column->minWidth)
|
||||
cx = pos.x + column->minWidth;
|
||||
else if (column->maxWidth > 0
|
||||
&& column->width + ev.xmotion.x > column->maxWidth)
|
||||
else if (column->maxWidth > 0 && column->width + ev.xmotion.x > column->maxWidth)
|
||||
cx = pos.x + column->maxWidth;
|
||||
else
|
||||
cx = offsX + ev.xmotion.x;
|
||||
@@ -484,13 +449,11 @@ splitterHandler(XEvent *event, void *data)
|
||||
repaintTable(table);
|
||||
}
|
||||
|
||||
|
||||
static void realizeTable(void *data, WMNotification * notif)
|
||||
{
|
||||
repaintTable(data);
|
||||
}
|
||||
|
||||
|
||||
WMTableView *WMCreateTableView(WMWidget * parent)
|
||||
{
|
||||
WMTableView *table = wmalloc(sizeof(WMTableView));
|
||||
@@ -539,15 +502,13 @@ WMTableView *WMCreateTableView(WMWidget *parent)
|
||||
WMSetLabelRelief(table->corner, WRRaised);
|
||||
WMSetWidgetBackgroundColor(table->corner, scr->darkGray);
|
||||
|
||||
|
||||
table->tableView = W_CreateView(table->view);
|
||||
if (!table->tableView)
|
||||
goto error;
|
||||
table->tableView->self = table;
|
||||
W_MapView(table->tableView);
|
||||
|
||||
WMAddNotificationObserver(realizeTable, table, WMViewRealizedNotification,
|
||||
table->tableView);
|
||||
WMAddNotificationObserver(realizeTable, table, WMViewRealizedNotification, table->tableView);
|
||||
|
||||
table->tableView->flags.dontCompressExpose = 1;
|
||||
|
||||
@@ -562,8 +523,7 @@ WMTableView *WMCreateTableView(WMWidget *parent)
|
||||
gcv.foreground = WMColorPixel(table->gridColor);
|
||||
gcv.dashes = 1;
|
||||
gcv.line_style = LineOnOffDash;
|
||||
table->gridGC = XCreateGC(WMScreenDisplay(scr), W_DRAWABLE(scr),
|
||||
GCForeground, &gcv);
|
||||
table->gridGC = XCreateGC(WMScreenDisplay(scr), W_DRAWABLE(scr), GCForeground, &gcv);
|
||||
}
|
||||
|
||||
table->editingRow = -1;
|
||||
@@ -579,17 +539,14 @@ WMTableView *WMCreateTableView(WMWidget *parent)
|
||||
|
||||
table->selectedRows = WMCreateArray(16);
|
||||
|
||||
table->splitterCursor = XCreateFontCursor(WMScreenDisplay(scr),
|
||||
XC_sb_h_double_arrow);
|
||||
table->splitterCursor = XCreateFontCursor(WMScreenDisplay(scr), XC_sb_h_double_arrow);
|
||||
|
||||
table->canSelectRow = 1;
|
||||
|
||||
WMCreateEventHandler(table->view, ExposureMask|StructureNotifyMask,
|
||||
handleEvents, table);
|
||||
WMCreateEventHandler(table->view, ExposureMask | StructureNotifyMask, handleEvents, table);
|
||||
|
||||
WMCreateEventHandler(table->tableView, ExposureMask | ButtonPressMask |
|
||||
ButtonReleaseMask|ButtonMotionMask,
|
||||
handleTableEvents, table);
|
||||
ButtonReleaseMask | ButtonMotionMask, handleTableEvents, table);
|
||||
|
||||
WMResizeWidget(table, 50, 50);
|
||||
|
||||
@@ -604,7 +561,6 @@ WMTableView *WMCreateTableView(WMWidget *parent)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
void WMAddTableViewColumn(WMTableView * table, WMTableColumn * column)
|
||||
{
|
||||
WMScreen *scr = WMWidgetScreen(table);
|
||||
@@ -620,8 +576,7 @@ void WMAddTableViewColumn(WMTableView *table, WMTableColumn *column)
|
||||
WMSetLabelTextColor(column->titleW, scr->white);
|
||||
WMSetWidgetBackgroundColor(column->titleW, scr->darkGray);
|
||||
WMSetLabelText(column->titleW, column->title);
|
||||
W_ReparentView(WMWidgetView(column->titleW),
|
||||
WMWidgetView(table->header), 0, 0);
|
||||
W_ReparentView(WMWidgetView(column->titleW), WMWidgetView(table->header), 0, 0);
|
||||
if (W_VIEW_REALIZED(table->view))
|
||||
WMRealizeWidget(column->titleW);
|
||||
WMMapWidget(column->titleW);
|
||||
@@ -639,8 +594,7 @@ void WMAddTableViewColumn(WMTableView *table, WMTableColumn *column)
|
||||
W_MapView(splitter);
|
||||
|
||||
W_SetViewCursor(splitter, table->splitterCursor);
|
||||
WMCreateEventHandler(splitter, ButtonPressMask|ButtonReleaseMask,
|
||||
splitterHandler, column);
|
||||
WMCreateEventHandler(splitter, ButtonPressMask | ButtonReleaseMask, splitterHandler, column);
|
||||
|
||||
WMAddToArray(table->splitters, splitter);
|
||||
}
|
||||
@@ -648,7 +602,6 @@ void WMAddTableViewColumn(WMTableView *table, WMTableColumn *column)
|
||||
rearrangeHeader(table);
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableViewHeaderHeight(WMTableView * table, unsigned height)
|
||||
{
|
||||
table->headerHeight = height;
|
||||
@@ -656,13 +609,11 @@ void WMSetTableViewHeaderHeight(WMTableView *table, unsigned height)
|
||||
handleResize(NULL, table->view);
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableViewDelegate(WMTableView * table, WMTableViewDelegate * delegate)
|
||||
{
|
||||
table->delegate = delegate;
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableViewAction(WMTableView * table, WMAction * action, void *clientData)
|
||||
{
|
||||
table->action = action;
|
||||
@@ -670,47 +621,37 @@ void WMSetTableViewAction(WMTableView *table, WMAction *action, void *clientData
|
||||
table->clientData = clientData;
|
||||
}
|
||||
|
||||
|
||||
void *WMGetTableViewClickedColumn(WMTableView * table)
|
||||
{
|
||||
return table->clickedColumn;
|
||||
}
|
||||
|
||||
|
||||
int WMGetTableViewClickedRow(WMTableView * table)
|
||||
{
|
||||
return table->clickedRow;
|
||||
}
|
||||
|
||||
|
||||
WMArray *WMGetTableViewSelectedRows(WMTableView * table)
|
||||
{
|
||||
return table->selectedRows;
|
||||
}
|
||||
|
||||
|
||||
WMView *WMGetTableViewDocumentView(WMTableView * table)
|
||||
{
|
||||
return table->tableView;
|
||||
}
|
||||
|
||||
|
||||
void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column,
|
||||
int row)
|
||||
void *WMTableViewDataForCell(WMTableView * table, WMTableColumn * column, int row)
|
||||
{
|
||||
return (*table->delegate->valueForCell) (table->delegate, column, row);
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column,
|
||||
int row, void *data)
|
||||
void WMSetTableViewDataForCell(WMTableView * table, WMTableColumn * column, int row, void *data)
|
||||
{
|
||||
(*table->delegate->setValueForCell) (table->delegate, column, row, data);
|
||||
}
|
||||
|
||||
|
||||
WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
|
||||
int row)
|
||||
WMRect WMTableViewRectForCell(WMTableView * table, WMTableColumn * column, int row)
|
||||
{
|
||||
WMRect rect;
|
||||
int i;
|
||||
@@ -741,20 +682,16 @@ WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
|
||||
return rect;
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableViewDataSource(WMTableView * table, void *source)
|
||||
{
|
||||
table->dataSource = source;
|
||||
}
|
||||
|
||||
|
||||
void *WMGetTableViewDataSource(WMTableView * table)
|
||||
{
|
||||
return table->dataSource;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void WMSetTableViewHasHorizontalScroller(WMTableView * tPtr, Bool flag)
|
||||
{
|
||||
if (flag) {
|
||||
@@ -836,18 +773,14 @@ void WMSetTableViewBackgroundColor(WMTableView *table, WMColor *color)
|
||||
repaintTable(table);
|
||||
}
|
||||
|
||||
|
||||
void WMSetTableViewGridColor(WMTableView * table, WMColor * color)
|
||||
{
|
||||
WMReleaseColor(table->gridColor);
|
||||
table->gridColor = WMRetainColor(color);
|
||||
XSetForeground(WMScreenDisplay(WMWidgetScreen(table)), table->gridGC,
|
||||
WMColorPixel(color));
|
||||
XSetForeground(WMScreenDisplay(WMWidgetScreen(table)), table->gridGC, WMColorPixel(color));
|
||||
repaintTable(table);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void WMSetTableViewRowHeight(WMTableView * table, int height)
|
||||
{
|
||||
table->rowHeight = height;
|
||||
@@ -855,7 +788,6 @@ void WMSetTableViewRowHeight(WMTableView *table, int height)
|
||||
repaintTable(table);
|
||||
}
|
||||
|
||||
|
||||
void WMScrollTableViewRowToVisible(WMTableView * table, int row)
|
||||
{
|
||||
WMScroller *scroller;
|
||||
@@ -881,8 +813,6 @@ void WMScrollTableViewRowToVisible(WMTableView *table, int row)
|
||||
scrollToPoint(table, rect.pos.x, newY);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void drawGrid(WMTableView * table, WMRect rect)
|
||||
{
|
||||
WMScreen *scr = WMWidgetScreen(table);
|
||||
@@ -933,7 +863,6 @@ static void drawGrid(WMTableView *table, WMRect rect)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static WMRange columnsInRect(WMTableView * table, WMRect rect)
|
||||
{
|
||||
WMTableColumn *column;
|
||||
@@ -964,7 +893,6 @@ static WMRange columnsInRect(WMTableView *table, WMRect rect)
|
||||
return range;
|
||||
}
|
||||
|
||||
|
||||
static WMRange rowsInRect(WMTableView * table, WMRect rect)
|
||||
{
|
||||
WMRange range;
|
||||
@@ -979,7 +907,6 @@ static WMRange rowsInRect(WMTableView *table, WMRect rect)
|
||||
return range;
|
||||
}
|
||||
|
||||
|
||||
static void drawRow(WMTableView * table, int row, WMRect clipRect)
|
||||
{
|
||||
int i;
|
||||
@@ -993,14 +920,13 @@ static void drawRow(WMTableView *table, int row, WMRect clipRect)
|
||||
if (!column->delegate || !column->delegate->drawCell)
|
||||
continue;
|
||||
|
||||
if (WMFindInArray(table->selectedRows, NULL, (void*)row) != WANotFound)
|
||||
if (WMFindInArray(table->selectedRows, NULL, (void *)(uintptr_t) row) != WANotFound)
|
||||
(*column->delegate->drawSelectedCell) (column->delegate, column, row, d);
|
||||
else
|
||||
(*column->delegate->drawCell) (column->delegate, column, row, d);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
static void drawFullRow(WMTableView * table, int row)
|
||||
{
|
||||
@@ -1022,19 +948,18 @@ static void drawFullRow(WMTableView *table, int row)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static void setRowSelected(WMTableView * table, unsigned row, Bool flag)
|
||||
{
|
||||
int repaint = 0;
|
||||
|
||||
if (WMFindInArray(table->selectedRows, NULL, (void*)row) != WANotFound) {
|
||||
if (WMFindInArray(table->selectedRows, NULL, (void *)(uintptr_t) row) != WANotFound) {
|
||||
if (!flag) {
|
||||
WMRemoveFromArray(table->selectedRows, (void*)row);
|
||||
WMRemoveFromArray(table->selectedRows, (void *)(uintptr_t) row);
|
||||
repaint = 1;
|
||||
}
|
||||
} else {
|
||||
if (flag) {
|
||||
WMAddToArray(table->selectedRows, (void*)row);
|
||||
WMAddToArray(table->selectedRows, (void *)(uintptr_t) row);
|
||||
repaint = 1;
|
||||
}
|
||||
}
|
||||
@@ -1044,7 +969,6 @@ static void setRowSelected(WMTableView *table, unsigned row, Bool flag)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void repaintTable(WMTableView * table)
|
||||
{
|
||||
WMRect rect;
|
||||
@@ -1060,15 +984,13 @@ static void repaintTable(WMTableView *table)
|
||||
if (!table->viewBuffer) {
|
||||
table->viewBuffer = WMCreatePixmap(scr,
|
||||
W_VIEW_WIDTH(table->tableView),
|
||||
W_VIEW_HEIGHT(table->tableView),
|
||||
WMScreenDepth(scr), 0);
|
||||
W_VIEW_HEIGHT(table->tableView), WMScreenDepth(scr), 0);
|
||||
}
|
||||
|
||||
XFillRectangle(scr->display,
|
||||
WMGetPixmapXID(table->viewBuffer),
|
||||
WMColorGC(table->backColor), 0, 0,
|
||||
W_VIEW_WIDTH(table->tableView),
|
||||
W_VIEW_HEIGHT(table->tableView));
|
||||
W_VIEW_WIDTH(table->tableView), W_VIEW_HEIGHT(table->tableView));
|
||||
|
||||
rect = getVisibleRect(table);
|
||||
|
||||
@@ -1077,18 +999,14 @@ static void repaintTable(WMTableView *table)
|
||||
}
|
||||
|
||||
rows = rowsInRect(table, rect);
|
||||
for (i = rows.position;
|
||||
i < WMIN(rows.position+rows.count + 1, table->rows);
|
||||
i++) {
|
||||
for (i = rows.position; i < WMIN(rows.position + rows.count + 1, table->rows); i++) {
|
||||
drawRow(table, i, rect);
|
||||
}
|
||||
|
||||
XSetWindowBackgroundPixmap(scr->display, table->tableView->window,
|
||||
WMGetPixmapXID(table->viewBuffer));
|
||||
XSetWindowBackgroundPixmap(scr->display, table->tableView->window, WMGetPixmapXID(table->viewBuffer));
|
||||
XClearWindow(scr->display, table->tableView->window);
|
||||
}
|
||||
|
||||
|
||||
static void stopRowEdit(WMTableView * table, int row)
|
||||
{
|
||||
int i;
|
||||
@@ -1103,8 +1021,6 @@ static void stopRowEdit(WMTableView *table, int row)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void WMEditTableViewRow(WMTableView * table, int row)
|
||||
{
|
||||
int i;
|
||||
@@ -1127,7 +1043,6 @@ void WMEditTableViewRow(WMTableView *table, int row)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void WMSelectTableViewRow(WMTableView * table, int row)
|
||||
{
|
||||
if (table->clickedRow >= 0)
|
||||
@@ -1142,11 +1057,9 @@ void WMSelectTableViewRow(WMTableView *table, int row)
|
||||
|
||||
if (table->action)
|
||||
(*table->action) (table, table->clientData);
|
||||
WMPostNotificationName(WMTableViewSelectionDidChangeNotification,
|
||||
table, NULL);
|
||||
WMPostNotificationName(WMTableViewSelectionDidChangeNotification, table, NULL);
|
||||
}
|
||||
|
||||
|
||||
void WMReloadTableView(WMTableView * table)
|
||||
{
|
||||
if (table->editingRow >= 0)
|
||||
@@ -1160,8 +1073,7 @@ void WMReloadTableView(WMTableView *table)
|
||||
if (table->clickedRow >= 0) {
|
||||
if (table->action)
|
||||
(*table->action) (table, table->clientData);
|
||||
WMPostNotificationName(WMTableViewSelectionDidChangeNotification,
|
||||
table, NULL);
|
||||
WMPostNotificationName(WMTableViewSelectionDidChangeNotification, table, NULL);
|
||||
table->clickedRow = -1;
|
||||
}
|
||||
|
||||
@@ -1179,13 +1091,11 @@ void WMReloadTableView(WMTableView *table)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void WMNoteTableViewNumberOfRowsChanged(WMTableView * table)
|
||||
{
|
||||
WMReloadTableView(table);
|
||||
}
|
||||
|
||||
|
||||
static void handleTableEvents(XEvent * event, void *data)
|
||||
{
|
||||
WMTableView *table = (WMTableView *) data;
|
||||
@@ -1225,15 +1135,13 @@ static void handleTableEvents(XEvent *event, void *data)
|
||||
if (event->xbutton.button == Button1) {
|
||||
if (table->action)
|
||||
(*table->action) (table, table->clientData);
|
||||
WMPostNotificationName(WMTableViewSelectionDidChangeNotification,
|
||||
table, NULL);
|
||||
WMPostNotificationName(WMTableViewSelectionDidChangeNotification, table, NULL);
|
||||
table->dragging = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void handleEvents(XEvent * event, void *data)
|
||||
{
|
||||
WMTableView *table = (WMTableView *) data;
|
||||
@@ -1242,19 +1150,16 @@ static void handleEvents(XEvent *event, void *data)
|
||||
switch (event->type) {
|
||||
case Expose:
|
||||
W_DrawRelief(scr, W_VIEW_DRAWABLE(table->view), 0, 0,
|
||||
W_VIEW_WIDTH(table->view), W_VIEW_HEIGHT(table->view),
|
||||
WRSunken);
|
||||
W_VIEW_WIDTH(table->view), W_VIEW_HEIGHT(table->view), WRSunken);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void handleResize(W_ViewDelegate * self, WMView * view)
|
||||
{
|
||||
reorganizeInterior(view->self);
|
||||
}
|
||||
|
||||
|
||||
static void reorganizeInterior(WMTableView * table)
|
||||
{
|
||||
int width;
|
||||
@@ -1296,7 +1201,6 @@ static void reorganizeInterior(WMTableView *table)
|
||||
width -= vsThickness;
|
||||
height -= hsThickness;
|
||||
|
||||
|
||||
vw = WMIN(size.width, width);
|
||||
vh = WMIN(size.height, height);
|
||||
|
||||
@@ -1308,7 +1212,6 @@ static void reorganizeInterior(WMTableView *table)
|
||||
repaintTable(table);
|
||||
}
|
||||
|
||||
|
||||
static void rearrangeHeader(WMTableView * table)
|
||||
{
|
||||
int width;
|
||||
|
||||
@@ -2,50 +2,36 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = no-dependencies
|
||||
|
||||
SUBDIRS = WINGs . po Documentation Resources Examples Extras Tests
|
||||
SUBDIRS = WINGs . po Documentation Resources
|
||||
|
||||
LIBTOOL = $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
|
||||
|
||||
libWINGs_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS)
|
||||
|
||||
#libWINGs_la_LDFLAGS = -version-info 1:1:0
|
||||
libWUtil_a_AR = $(QUIET_AR) $(AR) $(ARFLAGS)
|
||||
|
||||
libWINGs_la_LDFLAGS = -version-info 2:1:0
|
||||
libWUtil_la_LDFLAGS = -version-info 1:2:0
|
||||
|
||||
bin_SCRIPTS = get-wings-flags get-wutil-flags
|
||||
|
||||
lib_LIBRARIES = libWINGs.a libWUtil.a
|
||||
lib_LTLIBRARIES = libWINGs.la libWUtil.la
|
||||
|
||||
|
||||
LDADD= libWINGs.a $(top_builddir)/wrlib/libwraster.la @INTLIBS@
|
||||
LDADD= libWUtil.la libWINGs.la $(top_builddir)/wrlib/libwraster.la @INTLIBS@
|
||||
|
||||
|
||||
EXTRA_DIST = BUGS python/Makefile python/README python/WINGs.i \
|
||||
EXTRA_DIST = BUGS make-rgb python/Makefile python/README python/WINGs.i \
|
||||
python/WINGs.py python/setup.py python/test.py
|
||||
|
||||
|
||||
# wbutton.c
|
||||
libWINGs_a_SOURCES = \
|
||||
array.c \
|
||||
bagtree.c \
|
||||
libWINGs_la_SOURCES = \
|
||||
configuration.c \
|
||||
connection.c \
|
||||
data.c \
|
||||
dragcommon.c \
|
||||
dragdestination.c \
|
||||
dragsource.c \
|
||||
error.c \
|
||||
findfile.c \
|
||||
handlers.c \
|
||||
hashtable.c \
|
||||
host.c \
|
||||
international.c \
|
||||
memory.c \
|
||||
misc.c \
|
||||
notification.c \
|
||||
proplist.c \
|
||||
selection.c \
|
||||
snprintf.c \
|
||||
string.c \
|
||||
tree.c \
|
||||
userdefaults.c \
|
||||
usleep.c \
|
||||
wapplication.c \
|
||||
wappresource.c \
|
||||
wballoon.c \
|
||||
wbox.c \
|
||||
@@ -81,8 +67,7 @@ libWINGs_a_SOURCES = \
|
||||
wview.c \
|
||||
wwindow.c
|
||||
|
||||
|
||||
libWUtil_a_SOURCES = \
|
||||
libWUtil_la_SOURCES = \
|
||||
array.c \
|
||||
bagtree.c \
|
||||
connection.c \
|
||||
@@ -107,14 +92,12 @@ libWUtil_a_SOURCES = \
|
||||
wutil.c
|
||||
|
||||
|
||||
CPPFLAGS = @CPPFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\"
|
||||
AM_CPPFLAGS = -DLOCALEDIR=\"$(NLSDIR)\" -DRESOURCE_PATH=\"$(datadir)/WINGs\" -DDEBUG
|
||||
|
||||
AM_CFLAGS = @NOSTRICTALIASING@
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/WINGs/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \
|
||||
-DRESOURCE_PATH=\"$(datadir)/WINGs\" @XFTFLAGS@ @HEADER_SEARCH_PATH@ -DDEBUG
|
||||
|
||||
|
||||
wcolorpanel.o: wcolorpanel.c
|
||||
$(COMPILE) -c -DRGBTXT="\"@X_LIBRARY_PATH@/X11/rgb.txt\"" $<
|
||||
@XFTFLAGS@ @HEADER_SEARCH_PATH@
|
||||
|
||||
DISTCLEANFILES = WINGs.pc
|
||||
|
||||
@@ -127,3 +110,12 @@ install-exec-local:
|
||||
$(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/pkgconfig/; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
.c.o:
|
||||
$(QUIET)$(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(QUIET)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(QUIET)$(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
138
WINGs/NEWS
138
WINGs/NEWS
@@ -6,38 +6,16 @@ Double buffering
|
||||
To avoid flickering caused by redrawing the widgets on Expose events, a
|
||||
double buffering tehnique was implemented for most of the widgets.
|
||||
This flickering effect has gotten more vizible with the introduction
|
||||
of antialiased text. If with normal text one can redraw the text over the
|
||||
of antialiased fonts. If with normal text one can redraw the text over the
|
||||
old one over and over again without any degradation of the text (new pixels
|
||||
simply overwrite old pixels), with antialiased text the situation is
|
||||
different.
|
||||
The pixels that constitute the antialias around the text are partially
|
||||
transparent pixels, which let part of the background be visible through them.
|
||||
If antialiased text is drawn over and over again, whithout first erasing the
|
||||
old one, the partially transparent pixels of the antialias will no longer
|
||||
see the background through them, but some of them will see the old pixels of
|
||||
the antialias around the old text that was there before. This for example
|
||||
will make a black antialiased text over a white background get thicker as
|
||||
the pixels of the antialias around it, combine with semitransparent black
|
||||
pixels of the old antialias instead of combining with the white background.
|
||||
The result is that the antialias will get darker (in this case) and the text
|
||||
will be altered.
|
||||
different and text gets quickly corrupted. To avoid this corruption, one
|
||||
needs to first erase the area where the text will go, which can cause the
|
||||
before mentioned flickering.
|
||||
The double buffer is implemented to solve this issue.
|
||||
|
||||
Because of this the area where text is drawn needs to be cleared before
|
||||
antialiased text can be drawn again. But between the moment whent he area is
|
||||
cleared and the moment when the text is drawn again there is a small time
|
||||
gap that results in flickering. This doesn't happen with normal text where
|
||||
one doesn't need to clear the area before drawing the text, but instead can
|
||||
simply draw over and over again.
|
||||
|
||||
To avoid this situation, a double buffering tehnique was used. Instead of
|
||||
drawing directly in the wisget's window (which is mapped and will flicker as
|
||||
described above), we draw in a pixmap (unmapped) and after all is done we
|
||||
XCopyArea() from that pixmap to the real window.
|
||||
Since all this takes place off-screen, no flickering will be observed in
|
||||
this case.
|
||||
|
||||
This is a change that that will be automatically available for your
|
||||
applications and will require no change from you.
|
||||
This is a change that that will be automatically available for any WINGs
|
||||
applications and will require no change in the existing code.
|
||||
However there is an exception from this in case of WMList if you delegate
|
||||
the drawing of items to userspace (read below for the compelte details).
|
||||
|
||||
@@ -57,20 +35,12 @@ the user code doing item drawing, but instead pass this pixmap in which we
|
||||
draw before copying to the real window.
|
||||
|
||||
Since one cannot use XClearWindow() or XClearArea() on pixmaps, but only on
|
||||
windows, if your list item drawing code used to contain these to clear the
|
||||
item area before drawing it needs to change, else the application will die
|
||||
when it tires to XClearArea() on a pixmap.
|
||||
windows, if the code drawing list items used to call these functions to clear
|
||||
the item area before drawing it needs to change to using XFillRectangle()
|
||||
instead.
|
||||
|
||||
This means that in your application if you ever used WMSetListUserDrawProc()
|
||||
so set a userspace routine which draws WMList items in a particular fashion,
|
||||
you need to make sure your function will not call XClearArea() or
|
||||
XClearWindow() on the drawable that was passed to draw in.
|
||||
|
||||
Instead you should use XFillRectangle().
|
||||
|
||||
This change also means that you no longer need to do double buffering in
|
||||
your code, if you ever used to do. It is not done by WINGs and you benefit
|
||||
from it automatically.
|
||||
With this change it also means that there is no longer any need to do any
|
||||
double buffering in the user code, since it's already done by WINGs.
|
||||
|
||||
|
||||
*** Mon Oct 14 19:28:35 EEST 2002 - Dan
|
||||
@@ -84,7 +54,7 @@ drawn, while WMDrawImageString() takes 2 WMColor* arguments in place of the
|
||||
old GC: first for text color and second for background color.
|
||||
|
||||
This change is required to support extending WMFont to allow it to handle
|
||||
antialiased fonts through the XFree86 Xft extension.
|
||||
antialiased fonts through the XFree86 Xft2 extension.
|
||||
|
||||
This also has the advantage of hiding low level X11 details and use WINGs
|
||||
internat objects instead.
|
||||
@@ -121,81 +91,23 @@ and have the color of the foreground respective the background of the old gc.
|
||||
|
||||
*** Wed Oct 9 07:10:04 EEST 2002 - Dan
|
||||
|
||||
Xft support in WINGs
|
||||
--------------------
|
||||
Antialiased font support
|
||||
------------------------
|
||||
|
||||
If Xft is detected when configure it is run, support for drawing antialiased
|
||||
fonts with transparency will be compiled into WINGs.
|
||||
You need at least Xfree86 version 4.0.x for this but at least 4.1.x is
|
||||
recommended.
|
||||
With the addition of Xft2 support in the WINGs library, now WINGs can display
|
||||
antialiased text with TrueType or any scalable fonts.
|
||||
|
||||
For Xft support there are 2 new functions to create a font that will render
|
||||
using antialiasing and transparency: WMCreateAntialiasedFont() and
|
||||
WMCreateAntialiasedFontSet(). Later is for multibyte languages.
|
||||
Passing such a font to WMDrawString() or WMDrawImageString() will result
|
||||
in antialiased text displayed on screen. Modifying the alpha value for the
|
||||
WMColor passed to WMDrawString() or WMDrawImageString() will result in text
|
||||
being displayed with the appropriate transparency.
|
||||
Antialiased text is enabled by default, but can be disabled by adding
|
||||
|
||||
To control antialiased font behavior, there are 3 new options that go into
|
||||
WMGLOBAL. Two of them are to set the system font used when an antialiased
|
||||
font is required. They operate in a similar way as SystemFont and
|
||||
BoldSystemFont, just they are used when antialiased fonts are requested.
|
||||
They are named AntialiasedSystemFont respectively AntialiasedBoldSystemFont.
|
||||
They are kept separate from SystemFont and BoldSystemFont because the same
|
||||
fonts don't render well as both normal and antialiased if they are not
|
||||
TrueType fonts. Even though you can specify any font in the XLFD format for
|
||||
these new options, it is recomended to use TrueType fonts for the antialiased
|
||||
case since other fonts (standard X fonts) don't render well and give ugly
|
||||
results.
|
||||
AntialiasedText = NO; in ~/GNUstep/Defaults/WMGLOBAL
|
||||
|
||||
The third option is an option that globally controls if WINGs uses or not
|
||||
antialiased fonts. It is named AntialiasedText and it has a boolean Yes/No
|
||||
value. If set to Yes, WINGs will try to use antialiased fonts (if support
|
||||
was compiled in, and antialiased fonts can be found) then revert to normal
|
||||
fonts if not possible. Note that this applies if WMCreateFont(),
|
||||
WMSystemFont(), WMSystemFontOfSize(), WMBoldSystemFont() or
|
||||
WMBoldSystemFontOFize() are used. If any of the direct creation functions
|
||||
are used, such as WMCreateAntialiasedFont() or WMCreateNormalFont(), then
|
||||
that kind of font is returned independently of the value of AntialiasedText.
|
||||
(However note that an antialiased font cannot be created if Xft support was
|
||||
no compiled into WINGs, even if you call WMCreateAntialiasedFont() directly.
|
||||
In this case WMCreateAntialiasedFont() will always return NULL)
|
||||
|
||||
These 3 options from WMGLOBAL (which apply to all WINGs applications) can be
|
||||
overwritten on a per application basis by putting them in the application's
|
||||
specific domain file (usually ~/GNUstep/Defaults/application_name).
|
||||
|
||||
There is also another new font creation function available.
|
||||
WMCreateFontWithFlags(screen, fontName, flags)
|
||||
|
||||
flags will specify what kind of font to create. They are defined in WINGs.h
|
||||
as an enum: WMFontFlags
|
||||
|
||||
If WFDefaultFont is passed then the function will work exactly like
|
||||
WMCreateFont() by creating a font according to the options from the
|
||||
configuration.
|
||||
However if some specific flag is passed than that option will be altered. All
|
||||
the other options will keep their default values.
|
||||
|
||||
There are 2 font options available (at this time):
|
||||
1. Font type (if a normal font or a font set)
|
||||
2. Font antialiasing (if it's an antialiased font or not)
|
||||
|
||||
If flags specifies a value for each of the available options then a specific
|
||||
font which only takes into account those flag values will be created and all
|
||||
the font options specified in the configuration (like MultiByte or Antialiasing)
|
||||
will be ignored.
|
||||
However if only some of the options are specified, then for the missing options
|
||||
the default values from the configuration will be used.
|
||||
|
||||
For example if antialiasing is enabled in the configuration and you pass
|
||||
WFNotAntialiased as the flag, then a font with all the properties defined in
|
||||
the configuration (except antialiasing) will be created. This means that if
|
||||
MultiByte is defined a fontset will be created, else a normal font will be
|
||||
created and you don't have to worry about the rest of the flags you didn't
|
||||
specify.
|
||||
This will disable antialiased text for any WINGs based application. If you
|
||||
only want to disable them for a specific application only, like WindowMaker
|
||||
for example, then add the same option in the applications configuration file,
|
||||
in this case ~/GNUstep/Defaults/WindowMaker
|
||||
|
||||
Note that bitmapped fonts look much better than TrueType when antialiasing is
|
||||
disabled.
|
||||
|
||||
|
||||
*** Mon Sep 09 06:58:30 EEST 2002 - Dan
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
Alfredo Kengi Kojima
|
||||
|
||||
kojima@windowmaker.org
|
||||
kojima@windowmaker.info
|
||||
|
||||
|
||||
WINGs is a small widget set with the N*XTSTEP look and feel. It's API
|
||||
@@ -26,7 +26,7 @@ workaround some of it's limitations, although you'll probably be able to
|
||||
write something like a trivial tic-tac-toe game without knowing much Xlib.
|
||||
|
||||
Some of it's functions are designed to support the Window Maker window
|
||||
manager (see http://windowmaker.org) In fact, it's primary role is to
|
||||
manager (see http://windowmaker.info) In fact, it's primary role is to
|
||||
support Window Maker. All other uses of it are just an added bonus.
|
||||
|
||||
It will help you to understand the API if you read the ApplicationKit
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
@@ -1,4 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
testtext testcolorpanel testmywidget wmfile wmquery wtest
|
||||
.libs
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
@@ -4,18 +4,29 @@ AUTOMAKE_OPTIONS = no-dependencies
|
||||
|
||||
noinst_PROGRAMS = wtest wmquery wmfile testmywidget
|
||||
|
||||
LDADD= $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la \
|
||||
LDADD= $(top_builddir)/WINGs/libWINGs.la $(top_builddir)/wrlib/libwraster.la \
|
||||
$(top_builddir)/WINGs/libWUtil.la \
|
||||
@XFTLIBS@ @INTLIBS@
|
||||
|
||||
|
||||
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
||||
|
||||
wtest_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
||||
wtest_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
|
||||
|
||||
|
||||
EXTRA_DIST = logo.xpm upbtn.xpm wm.html wm.png
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \
|
||||
-DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG
|
||||
-DRESOURCE_PATH=\"$(datadir)/WINGs\" @XFTFLAGS@ @HEADER_SEARCH_PATH@ \
|
||||
-DDEBUG
|
||||
|
||||
LIBTOOL = $(QUIET) $(SHELL) $(top_srcdir)/libtool $(LIBTOOL_ARG)
|
||||
|
||||
.c.o:
|
||||
$(QUIET)$(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(QUIET)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(QUIET)$(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Include the WINGs private data header.
|
||||
@@ -35,20 +34,14 @@ typedef struct W_MyWidget {
|
||||
|
||||
} _MyWidget;
|
||||
|
||||
|
||||
|
||||
|
||||
/* some forward declarations */
|
||||
|
||||
static void destroyMyWidget(_MyWidget * mPtr);
|
||||
static void paintMyWidget(_MyWidget * mPtr);
|
||||
|
||||
|
||||
static void handleEvents(XEvent * event, void *data);
|
||||
static void handleActionEvents(XEvent * event, void *data);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Delegates
|
||||
* See the source for the other widgets to see how to use.
|
||||
@@ -62,17 +55,14 @@ static W_ViewDelegate _MyWidgetDelegate = {
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
/* our widget class ID */
|
||||
static W_Class myWidgetClass = 0;
|
||||
|
||||
|
||||
/*
|
||||
* Initializer for our widget. Must be called before creating any
|
||||
* instances of the widget.
|
||||
*/
|
||||
W_Class
|
||||
InitMyWidget(WMScreen *scr)
|
||||
W_Class InitMyWidget(WMScreen * scr)
|
||||
{
|
||||
/* register our widget with WINGs and get our widget class ID */
|
||||
if (!myWidgetClass) {
|
||||
@@ -82,12 +72,10 @@ InitMyWidget(WMScreen *scr)
|
||||
return myWidgetClass;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Our widget fabrication plant.
|
||||
*/
|
||||
MyWidget*
|
||||
CreateMyWidget(WMWidget *parent)
|
||||
MyWidget *CreateMyWidget(WMWidget * parent)
|
||||
{
|
||||
MyWidget *mPtr;
|
||||
|
||||
@@ -133,38 +121,29 @@ CreateMyWidget(WMWidget *parent)
|
||||
return mPtr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Paint our widget contents.
|
||||
*/
|
||||
static void
|
||||
paintMyWidget(_MyWidget *mPtr)
|
||||
static void paintMyWidget(_MyWidget * mPtr)
|
||||
{
|
||||
W_Screen *scr = mPtr->view->screen;
|
||||
WMColor *color;
|
||||
|
||||
|
||||
if (mPtr->text) {
|
||||
|
||||
color = WMWhiteColor(scr);
|
||||
|
||||
W_PaintText(mPtr->view, mPtr->view->window, scr->normalFont, 0, 0,
|
||||
mPtr->view->size.width, WACenter, color,
|
||||
False, mPtr->text, strlen(mPtr->text));
|
||||
mPtr->view->size.width, WACenter, color, False, mPtr->text, strlen(mPtr->text));
|
||||
|
||||
WMReleaseColor(color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
handleEvents(XEvent *event, void *data)
|
||||
static void handleEvents(XEvent * event, void *data)
|
||||
{
|
||||
_MyWidget *mPtr = (_MyWidget *) data;
|
||||
|
||||
|
||||
switch (event->type) {
|
||||
case Expose:
|
||||
if (event->xexpose.count != 0)
|
||||
@@ -179,9 +158,7 @@ handleEvents(XEvent *event, void *data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
handleActionEvents(XEvent *event, void *data)
|
||||
static void handleActionEvents(XEvent * event, void *data)
|
||||
{
|
||||
_MyWidget *mPtr = (_MyWidget *) data;
|
||||
|
||||
@@ -193,9 +170,7 @@ handleActionEvents(XEvent *event, void *data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SetMyWidgetText(MyWidget *mPtr, char *text)
|
||||
void SetMyWidgetText(MyWidget * mPtr, char *text)
|
||||
{
|
||||
CHECK_CLASS(mPtr, myWidgetClass);
|
||||
|
||||
@@ -209,10 +184,7 @@ SetMyWidgetText(MyWidget *mPtr, char *text)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
destroyMyWidget(_MyWidget *mPtr)
|
||||
static void destroyMyWidget(_MyWidget * mPtr)
|
||||
{
|
||||
/*
|
||||
* Free all data we allocated for our widget.
|
||||
@@ -223,5 +195,3 @@ destroyMyWidget(_MyWidget *mPtr)
|
||||
|
||||
wfree(mPtr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
|
||||
|
||||
#include <WINGs/WINGs.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "mywidget.h"
|
||||
|
||||
|
||||
void
|
||||
wAbort()
|
||||
void wAbort()
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
Display *dpy = XOpenDisplay("");
|
||||
@@ -20,7 +16,6 @@ int main(int argc, char **argv)
|
||||
WMWindow *win;
|
||||
MyWidget *thing;
|
||||
|
||||
|
||||
WMInitializeApplication("Test", &argc, argv);
|
||||
|
||||
if (!dpy) {
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<Img src=wm.png></b><p>
|
||||
<b>GNU Window Maker</B><br>
|
||||
<i>X11 Window Manager</i><p>
|
||||
<u>http://windowmaker.org<br>
|
||||
ftp.windowmaker.org</u></font><Br>
|
||||
<u>http://windowmaker.info<br>
|
||||
ftp.windowmaker.info</u></font><Br>
|
||||
</center>
|
||||
|
||||
<b><i>Window Maker</b>
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <WINGs/WINGs.h>
|
||||
|
||||
#include <unistd.h>
|
||||
@@ -21,11 +19,7 @@
|
||||
|
||||
#include "logo.xpm"
|
||||
|
||||
|
||||
|
||||
|
||||
void
|
||||
wAbort()
|
||||
void wAbort()
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
@@ -45,11 +39,7 @@ void usage(void)
|
||||
"\n"
|
||||
"information:\n"
|
||||
"\t%s pops up a WindowMaker style file selection panel.\n"
|
||||
"\n"
|
||||
"version:\n"
|
||||
"\t%s\n"
|
||||
,ProgName,ProgName,__DATE__
|
||||
);
|
||||
"\n" "version:\n" "\t%s\n", ProgName, ProgName, __DATE__);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@@ -81,8 +71,7 @@ int main(int argc, char **argv)
|
||||
ProgName = argv[0];
|
||||
|
||||
while ((ch = getopt(argc, argv, "si:ht:")) != -1)
|
||||
switch(ch)
|
||||
{
|
||||
switch (ch) {
|
||||
case 's':
|
||||
panelType = SAVE_PANEL_TYPE;
|
||||
break;
|
||||
@@ -101,8 +90,6 @@ int main(int argc, char **argv)
|
||||
|
||||
scr = WMCreateSimpleApplicationScreen(dpy);
|
||||
|
||||
|
||||
|
||||
pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM);
|
||||
WMSetApplicationIconPixmap(scr, pixmap);
|
||||
WMReleasePixmap(pixmap);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
* Author: Len Trigg <trigg@cs.waikato.ac.nz>
|
||||
*/
|
||||
|
||||
|
||||
#include <WINGs/WINGs.h>
|
||||
|
||||
#include <unistd.h>
|
||||
@@ -12,11 +11,7 @@
|
||||
|
||||
#include "logo.xpm"
|
||||
|
||||
|
||||
|
||||
|
||||
void
|
||||
wAbort()
|
||||
void wAbort()
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
@@ -36,11 +31,7 @@ void usage(void)
|
||||
"\n"
|
||||
"information:\n"
|
||||
"\t%s pops up a WindowMaker style input panel.\n"
|
||||
"\n"
|
||||
"version:\n"
|
||||
"\t%s\n"
|
||||
,ProgName,ProgName,__DATE__
|
||||
);
|
||||
"\n" "version:\n" "\t%s\n", ProgName, ProgName, __DATE__);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@@ -67,8 +58,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
while ((ch = getopt(argc, argv, "i:hp:t:")) != -1)
|
||||
switch(ch)
|
||||
{
|
||||
switch (ch) {
|
||||
case 'i':
|
||||
initial = optarg;
|
||||
break;
|
||||
@@ -85,12 +75,12 @@ int main(int argc, char **argv)
|
||||
for (; optind < argc; optind++)
|
||||
usage();
|
||||
|
||||
|
||||
scr = WMCreateSimpleApplicationScreen(dpy);
|
||||
|
||||
pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM);
|
||||
|
||||
WMSetApplicationIconPixmap(scr, pixmap); WMReleasePixmap(pixmap);
|
||||
WMSetApplicationIconPixmap(scr, pixmap);
|
||||
WMReleasePixmap(pixmap);
|
||||
|
||||
if ((result = WMRunInputPanel(scr, NULL, title, prompt, initial, "OK", "Cancel")) != NULL)
|
||||
printf("%s\n", result);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/*
|
||||
* You need to define this function to link any program to WINGs.
|
||||
@@ -14,21 +14,16 @@
|
||||
* This will be called when the application will be terminated because
|
||||
* of a fatal error (only for memory allocation failures ATM).
|
||||
*/
|
||||
void
|
||||
wAbort()
|
||||
void wAbort()
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Display *dpy;
|
||||
|
||||
int windowCount = 0;
|
||||
|
||||
void
|
||||
closeAction(WMWidget *self, void *data)
|
||||
void closeAction(WMWidget * self, void *data)
|
||||
{
|
||||
WMDestroyWidget(self);
|
||||
windowCount--;
|
||||
@@ -37,9 +32,7 @@ closeAction(WMWidget *self, void *data)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testOpenFilePanel(WMScreen *scr)
|
||||
void testOpenFilePanel(WMScreen * scr)
|
||||
{
|
||||
WMOpenPanel *panel;
|
||||
|
||||
@@ -54,9 +47,7 @@ testOpenFilePanel(WMScreen *scr)
|
||||
WMFreeFilePanel(WMGetOpenPanel(scr));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testFontPanel(WMScreen *scr)
|
||||
void testFontPanel(WMScreen * scr)
|
||||
{
|
||||
WMFontPanel *panel;
|
||||
|
||||
@@ -69,10 +60,7 @@ testFontPanel(WMScreen *scr)
|
||||
/*WMFreeFontPanel(panel); */
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
testFrame(WMScreen *scr)
|
||||
void testFrame(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMFrame *frame;
|
||||
@@ -115,18 +103,16 @@ testFrame(WMScreen *scr)
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
/*static void
|
||||
resizedWindow(void *self, WMNotification *notif)
|
||||
{
|
||||
WMView *view = (WMView*)WMGetNotificationObject(notif);
|
||||
WMSize size = WMGetViewSize(view);
|
||||
|
||||
WMResizeWidget((WMWidget*)self, size.width, size.height);
|
||||
}
|
||||
}*/
|
||||
|
||||
void
|
||||
testBox(WMScreen *scr)
|
||||
void testBox(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMBox *box, *hbox;
|
||||
@@ -171,43 +157,32 @@ testBox(WMScreen *scr)
|
||||
WMAddBoxSubview(hbox, WMWidgetView(btn), 1, True, 60, 0, i < 3 ? 5 : 0);
|
||||
}
|
||||
|
||||
|
||||
WMRealizeWidget(win);
|
||||
WMMapSubwidgets(win);
|
||||
WMMapWidget(win);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
singleClick(WMWidget *self, void *data)
|
||||
static void singleClick(WMWidget * self, void *data)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
doubleClick(WMWidget *self, void *data)
|
||||
static void doubleClick(WMWidget * self, void *data)
|
||||
{
|
||||
WMSelectAllListItems((WMList *) self);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
listSelectionObserver(void *observer, WMNotification *notification)
|
||||
static void listSelectionObserver(void *observer, WMNotification * notification)
|
||||
{
|
||||
WMLabel *label = (WMLabel *) observer;
|
||||
WMList *lPtr = (WMList *) WMGetNotificationObject(notification);
|
||||
char buf[255];
|
||||
|
||||
sprintf(buf, "Selected items: %d",
|
||||
WMGetArrayItemCount(WMGetListSelectedItems(lPtr)));
|
||||
sprintf(buf, "Selected items: %d", WMGetArrayItemCount(WMGetListSelectedItems(lPtr)));
|
||||
WMSetLabelText(label, buf);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testList(WMScreen *scr)
|
||||
void testList(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMList *list;
|
||||
@@ -271,20 +246,15 @@ testList(WMScreen *scr)
|
||||
WMSetListAction(mlist, singleClick, mlabel);
|
||||
WMSetListDoubleAction(mlist, doubleClick, mlabel);
|
||||
|
||||
WMAddNotificationObserver(listSelectionObserver, label,
|
||||
WMListSelectionDidChangeNotification, list);
|
||||
WMAddNotificationObserver(listSelectionObserver, mlabel,
|
||||
WMListSelectionDidChangeNotification, mlist);
|
||||
|
||||
WMAddNotificationObserver(listSelectionObserver, label, WMListSelectionDidChangeNotification, list);
|
||||
WMAddNotificationObserver(listSelectionObserver, mlabel, WMListSelectionDidChangeNotification, mlist);
|
||||
|
||||
WMRealizeWidget(win);
|
||||
WMMapSubwidgets(win);
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testButton(WMScreen *scr)
|
||||
void testButton(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
int i;
|
||||
@@ -320,9 +290,7 @@ testButton(WMScreen *scr)
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testGradientButtons(WMScreen *scr)
|
||||
void testGradientButtons(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMButton *btn;
|
||||
@@ -340,7 +308,6 @@ testGradientButtons(WMScreen *scr)
|
||||
|
||||
WMSetWindowCloseAction(win, closeAction, NULL);
|
||||
|
||||
|
||||
light.red = 0x90;
|
||||
light.green = 0x85;
|
||||
light.blue = 0x90;
|
||||
@@ -414,9 +381,7 @@ testGradientButtons(WMScreen *scr)
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testScrollView(WMScreen *scr)
|
||||
void testScrollView(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMScrollView *sview;
|
||||
@@ -475,9 +440,7 @@ testScrollView(WMScreen *scr)
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testColorWell(WMScreen *scr)
|
||||
void testColorWell(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMColorWell *well1, *well2;
|
||||
@@ -502,9 +465,7 @@ testColorWell(WMScreen *scr)
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testColorPanel(WMScreen *scr)
|
||||
void testColorPanel(WMScreen * scr)
|
||||
{
|
||||
WMColorPanel *panel = WMGetColorPanel(scr);
|
||||
|
||||
@@ -517,15 +478,12 @@ testColorPanel(WMScreen *scr)
|
||||
WMShowColorPanel(panel);
|
||||
}
|
||||
|
||||
void
|
||||
sliderCallback(WMWidget *w, void *data)
|
||||
void sliderCallback(WMWidget * w, void *data)
|
||||
{
|
||||
printf("SLIDER == %i\n", WMGetSliderValue(w));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testSlider(WMScreen *scr)
|
||||
void testSlider(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMSlider *s;
|
||||
@@ -555,9 +513,7 @@ testSlider(WMScreen *scr)
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testTextField(WMScreen *scr)
|
||||
void testTextField(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMTextField *field, *field2;
|
||||
@@ -572,6 +528,7 @@ testTextField(WMScreen *scr)
|
||||
field = WMCreateTextField(win);
|
||||
WMResizeWidget(field, 200, 20);
|
||||
WMMoveWidget(field, 20, 20);
|
||||
WMSetTextFieldText(field, "the little \xc2\xa9 sign");
|
||||
|
||||
field2 = WMCreateTextField(win);
|
||||
WMResizeWidget(field2, 200, 20);
|
||||
@@ -584,12 +541,12 @@ testTextField(WMScreen *scr)
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testText(WMScreen *scr)
|
||||
void testText(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMText *text;
|
||||
WMFont *font;
|
||||
void *tb;
|
||||
FILE *file = fopen("wm.html", "rb");
|
||||
|
||||
windowCount++;
|
||||
@@ -604,22 +561,22 @@ testText(WMScreen *scr)
|
||||
WMMoveWidget(text, 10, 10);
|
||||
WMSetTextHasVerticalScroller(text, True);
|
||||
WMSetTextEditable(text, False);
|
||||
WMSetTextIgnoresNewline(text, False);
|
||||
|
||||
{
|
||||
WMFont *font, *ifont;
|
||||
#define FNAME "Verdana,Luxi Sans:pixelsize=12"
|
||||
#define MSG \
|
||||
"Window Maker is the GNU window manager for the " \
|
||||
"X Window System. It was designed to emulate the " \
|
||||
"look and feel of part of the NEXTSTEP(tm) GUI. It's " \
|
||||
"supposed to be relatively fast and small, feature " \
|
||||
"rich, easy to configure and easy to use, with a simple " \
|
||||
"and elegant appearance borrowed from NEXTSTEP(tm)."
|
||||
|
||||
font = WMDefaultSystemFont(scr);
|
||||
ifont = WMCopyFontWithChanges(scr, font, WFAEmphasized);
|
||||
if (ifont) {
|
||||
WMSetTextDefaultFont(text, ifont);
|
||||
WMReleaseFont(ifont);
|
||||
} else {
|
||||
font = WMCreateFont(scr, FNAME ":autohint=false");
|
||||
WMSetTextDefaultFont(text, font);
|
||||
}
|
||||
WMReleaseFont(font);
|
||||
}
|
||||
|
||||
if(file) {
|
||||
if (0 && file) {
|
||||
char buf[1024];
|
||||
|
||||
WMFreezeText(text);
|
||||
@@ -629,13 +586,15 @@ testText(WMScreen *scr)
|
||||
fclose(file);
|
||||
WMThawText(text);
|
||||
} else {
|
||||
WMAppendTextStream(text,
|
||||
"Window Maker is the GNU window manager for the "
|
||||
"X Window System. It was designed to emulate the "
|
||||
"look and feel of part of the NEXTSTEP(tm) GUI. Its "
|
||||
"supposed to be relatively fast and small, feature "
|
||||
"rich, easy to configure and easy to use, with a simple "
|
||||
"and elegant appearance borrowed from NEXTSTEP(tm).");
|
||||
WMAppendTextStream(text, "First paragraph has autohinting turned off, "
|
||||
"while the second has it turned on:");
|
||||
WMAppendTextStream(text, "\n\n\n");
|
||||
WMAppendTextStream(text, MSG);
|
||||
WMAppendTextStream(text, "\n\n\n");
|
||||
font = WMCreateFont(scr, FNAME ":autohint=true");
|
||||
tb = WMCreateTextBlockWithText(text, MSG, font, WMBlackColor(scr), 0, strlen(MSG));
|
||||
WMAppendTextBlock(text, tb);
|
||||
WMReleaseFont(font);
|
||||
}
|
||||
|
||||
WMRealizeWidget(win);
|
||||
@@ -643,9 +602,7 @@ testText(WMScreen *scr)
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testProgressIndicator(WMScreen *scr)
|
||||
void testProgressIndicator(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMProgressIndicator *pPtr;
|
||||
@@ -667,9 +624,7 @@ testProgressIndicator(WMScreen *scr)
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testPullDown(WMScreen *scr)
|
||||
void testPullDown(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMPopUpButton *pop, *pop2;
|
||||
@@ -706,9 +661,7 @@ testPullDown(WMScreen *scr)
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
testTabView(WMScreen *scr)
|
||||
void testTabView(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMTabView *tabv;
|
||||
@@ -734,7 +687,6 @@ testTabView(WMScreen *scr)
|
||||
WMSetLabelText(label, "Label 1");
|
||||
WMMapWidget(label);
|
||||
|
||||
|
||||
tab = WMCreateTabViewItemWithIdentifier(0);
|
||||
WMSetTabViewItemView(tab, WMWidgetView(frame));
|
||||
WMAddItemInTabView(tabv, tab);
|
||||
@@ -747,13 +699,11 @@ testTabView(WMScreen *scr)
|
||||
WMSetLabelText(label, "Label 2");
|
||||
WMMapWidget(label);
|
||||
|
||||
|
||||
tab = WMCreateTabViewItemWithIdentifier(0);
|
||||
WMSetTabViewItemView(tab, WMWidgetView(frame));
|
||||
WMAddItemInTabView(tabv, tab);
|
||||
WMSetTabViewItemLabel(tab, "Classes");
|
||||
|
||||
|
||||
frame = WMCreateFrame(win);
|
||||
WMSetFrameRelief(frame, WRFlat);
|
||||
label = WMCreateLabel(frame);
|
||||
@@ -767,7 +717,6 @@ testTabView(WMScreen *scr)
|
||||
WMAddItemInTabView(tabv, tab);
|
||||
WMSetTabViewItemLabel(tab, "Something");
|
||||
|
||||
|
||||
frame = WMCreateFrame(win);
|
||||
WMSetFrameRelief(frame, WRFlat);
|
||||
label = WMCreateLabel(frame);
|
||||
@@ -781,8 +730,6 @@ testTabView(WMScreen *scr)
|
||||
WMAddItemInTabView(tabv, tab);
|
||||
WMSetTabViewItemLabel(tab, "Bla!");
|
||||
|
||||
|
||||
|
||||
frame = WMCreateFrame(win);
|
||||
WMSetFrameRelief(frame, WRFlat);
|
||||
label = WMCreateLabel(frame);
|
||||
@@ -795,16 +742,12 @@ testTabView(WMScreen *scr)
|
||||
WMAddItemInTabView(tabv, tab);
|
||||
WMSetTabViewItemLabel(tab, "Weee!");
|
||||
|
||||
|
||||
WMRealizeWidget(win);
|
||||
WMMapSubwidgets(win);
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
splitViewConstrainProc(WMSplitView *sPtr, int indView,
|
||||
int *minSize, int *maxSize)
|
||||
void splitViewConstrainProc(WMSplitView * sPtr, int indView, int *minSize, int *maxSize)
|
||||
{
|
||||
switch (indView) {
|
||||
case 0:
|
||||
@@ -822,9 +765,7 @@ splitViewConstrainProc(WMSplitView *sPtr, int indView,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
resizeSplitView(XEvent *event, void *data)
|
||||
static void resizeSplitView(XEvent * event, void *data)
|
||||
{
|
||||
WMSplitView *sPtr = (WMSplitView *) data;
|
||||
|
||||
@@ -834,14 +775,12 @@ resizeSplitView(XEvent *event, void *data)
|
||||
if (width < WMGetSplitViewDividerThickness(sPtr))
|
||||
width = WMGetSplitViewDividerThickness(sPtr);
|
||||
|
||||
if (width != WMWidgetWidth(sPtr) ||
|
||||
event->xconfigure.height != WMWidgetHeight(sPtr))
|
||||
if (width != WMWidgetWidth(sPtr) || event->xconfigure.height != WMWidgetHeight(sPtr))
|
||||
WMResizeWidget(sPtr, width, event->xconfigure.height - 55);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
appendSubviewButtonAction(WMWidget *self, void *data)
|
||||
void appendSubviewButtonAction(WMWidget * self, void *data)
|
||||
{
|
||||
WMSplitView *sPtr = (WMSplitView *) data;
|
||||
char buf[64];
|
||||
@@ -855,8 +794,7 @@ appendSubviewButtonAction(WMWidget *self, void *data)
|
||||
WMMapWidget(label);
|
||||
}
|
||||
|
||||
void
|
||||
removeSubviewButtonAction(WMWidget *self, void *data)
|
||||
void removeSubviewButtonAction(WMWidget * self, void *data)
|
||||
{
|
||||
WMSplitView *sPtr = (WMSplitView *) data;
|
||||
int count = WMGetSplitViewSubviewsCount(sPtr);
|
||||
@@ -868,21 +806,18 @@ removeSubviewButtonAction(WMWidget *self, void *data)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
orientationButtonAction(WMWidget *self, void *data)
|
||||
void orientationButtonAction(WMWidget * self, void *data)
|
||||
{
|
||||
WMSplitView *sPtr = (WMSplitView *) data;
|
||||
WMSetSplitViewVertical(sPtr, !WMGetSplitViewVertical(sPtr));
|
||||
}
|
||||
|
||||
void
|
||||
adjustSubviewsButtonAction(WMWidget *self, void *data)
|
||||
void adjustSubviewsButtonAction(WMWidget * self, void *data)
|
||||
{
|
||||
WMAdjustSplitViewSubviews((WMSplitView *) data);
|
||||
}
|
||||
|
||||
void
|
||||
testSplitView(WMScreen *scr)
|
||||
void testSplitView(WMScreen * scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMSplitView *splitv1, *splitv2;
|
||||
@@ -905,8 +840,7 @@ testSplitView(WMScreen *scr)
|
||||
WMMoveWidget(splitv1, 5, 50);
|
||||
WMResizeWidget(splitv1, 290, 345);
|
||||
WMSetSplitViewConstrainProc(splitv1, splitViewConstrainProc);
|
||||
WMCreateEventHandler(WMWidgetView(win), StructureNotifyMask,
|
||||
resizeSplitView, splitv1);
|
||||
WMCreateEventHandler(WMWidgetView(win), StructureNotifyMask, resizeSplitView, splitv1);
|
||||
|
||||
button = WMCreateCommandButton(frame);
|
||||
WMSetButtonText(button, "+");
|
||||
@@ -968,278 +902,7 @@ testSplitView(WMScreen *scr)
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
typedef struct {
|
||||
int x, y;
|
||||
Bool mouseDown;
|
||||
char *filename;
|
||||
} DNDStuff;
|
||||
|
||||
WMPixmap*
|
||||
getImage(WMScreen *scr, char *file)
|
||||
{
|
||||
char buffer[1000];
|
||||
WMPixmap *pix;
|
||||
|
||||
sprintf(buffer, "../../WindowMaker/Icons/%s", file);
|
||||
pix = WMCreatePixmapFromFile(scr, buffer);
|
||||
|
||||
return pix;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void
|
||||
iconMouseStuff(XEvent *event, void *cdata)
|
||||
{
|
||||
WMLabel *label = (WMLabel*)cdata;
|
||||
DNDStuff *stuff = WMGetHangedData(label);
|
||||
WMPoint where;
|
||||
|
||||
switch (event->type) {
|
||||
case ButtonPress:
|
||||
stuff->x = event->xbutton.x;
|
||||
stuff->y = event->xbutton.y;
|
||||
stuff->mouseDown = True;
|
||||
break;
|
||||
case ButtonRelease:
|
||||
stuff->mouseDown = False;
|
||||
break;
|
||||
case MotionNotify:
|
||||
if (!stuff->mouseDown)
|
||||
break;
|
||||
|
||||
if (abs(stuff->x - event->xmotion.x)>4
|
||||
|| abs(stuff->y - event->xmotion.y)>4) {
|
||||
|
||||
where = WMGetViewScreenPosition(WMWidgetView(label));
|
||||
|
||||
WMDragImageFromView(WMWidgetView(label),
|
||||
WMGetLabelImage(label),
|
||||
NULL, /* XXX */
|
||||
where,
|
||||
wmksize(stuff->x, stuff->y),
|
||||
event, True);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
endedDragImage(WMView *self, WMPixmap *image, WMPoint point, Bool deposited)
|
||||
{
|
||||
DNDStuff *stuff = WMGetHangedData(WMWidgetOfView(self));
|
||||
|
||||
if (deposited) {
|
||||
WMDestroyWidget(WMWidgetOfView(self));
|
||||
}
|
||||
|
||||
stuff->mouseDown = False;
|
||||
}
|
||||
|
||||
|
||||
static WMData*
|
||||
fetchDragData(WMView *self, char *type)
|
||||
{
|
||||
DNDStuff *stuff = WMGetHangedData(WMWidgetOfView(self));
|
||||
|
||||
return WMCreateDataWithBytes(stuff->filename, strlen(stuff->filename)+1);
|
||||
}
|
||||
|
||||
|
||||
WMDragSourceProcs dragSourceProcs = {
|
||||
NULL,
|
||||
NULL,
|
||||
endedDragImage,
|
||||
fetchDragData
|
||||
};
|
||||
|
||||
|
||||
/************************/
|
||||
|
||||
|
||||
unsigned
|
||||
draggingEntered(WMView *self, WMDraggingInfo *info)
|
||||
{
|
||||
return WDOperationCopy;
|
||||
}
|
||||
|
||||
|
||||
unsigned
|
||||
draggingUpdated(WMView *self, WMDraggingInfo *info)
|
||||
{
|
||||
return WDOperationCopy;
|
||||
}
|
||||
|
||||
/*
|
||||
void (*draggingExited)(WMView *self, WMDraggingInfo *info);
|
||||
*/
|
||||
char*
|
||||
prepareForDragOperation(WMView *self, WMDraggingInfo *info)
|
||||
{
|
||||
return "application/X-WINGs-Bla";
|
||||
}
|
||||
|
||||
|
||||
WMLabel* makeDraggableLabel(WMWidget *w, char *file, int x, int y);
|
||||
|
||||
Bool
|
||||
performDragOperation(WMView *self, WMDraggingInfo *info, WMData *data)
|
||||
{
|
||||
char *file = (char*)WMDataBytes(data);
|
||||
WMPoint pos;
|
||||
|
||||
pos = WMGetDraggingInfoImageLocation(info);
|
||||
|
||||
if (file!=NULL) {
|
||||
WMLabel *label;
|
||||
WMPoint pos2 = WMGetViewScreenPosition(self);
|
||||
|
||||
|
||||
label = makeDraggableLabel(WMWidgetOfView(self), file,
|
||||
pos.x-pos2.x, pos.y-pos2.y);
|
||||
WMRealizeWidget(label);
|
||||
WMMapWidget(label);
|
||||
}
|
||||
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
concludeDragOperation(WMView *self, WMDraggingInfo *info)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
WMDragDestinationProcs dragDestProcs = {
|
||||
draggingEntered,
|
||||
draggingUpdated,
|
||||
NULL,
|
||||
prepareForDragOperation,
|
||||
performDragOperation,
|
||||
concludeDragOperation
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
WMLabel*
|
||||
makeDraggableLabel(WMWidget *w, char *file, int x, int y)
|
||||
{
|
||||
DNDStuff *stuff;
|
||||
WMLabel *label;
|
||||
WMPixmap *image = getImage(WMWidgetScreen(w), file);
|
||||
|
||||
stuff = wmalloc(sizeof(DNDStuff));
|
||||
stuff->mouseDown = False;
|
||||
|
||||
stuff->filename = wstrdup(file);
|
||||
|
||||
label = WMCreateLabel(w);
|
||||
WMResizeWidget(label, 48, 48);
|
||||
WMMoveWidget(label, x, y);
|
||||
|
||||
WMSetViewDragSourceProcs(WMWidgetView(label), &dragSourceProcs);
|
||||
|
||||
WMHangData(label, stuff);
|
||||
|
||||
WMCreateEventHandler(WMWidgetView(label),
|
||||
ButtonPressMask|ButtonReleaseMask|ButtonMotionMask,
|
||||
iconMouseStuff, label);
|
||||
|
||||
|
||||
if (image != NULL) {
|
||||
WMSetLabelImagePosition(label, WIPImageOnly);
|
||||
WMSetLabelImage(label, image);
|
||||
WMReleasePixmap(image);
|
||||
} else puts(file);
|
||||
|
||||
return label;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
testDragAndDrop(WMScreen *scr)
|
||||
{
|
||||
WMWindow *win;
|
||||
WMFrame *frame;
|
||||
WMLabel *label;
|
||||
int i, j;
|
||||
DIR *dir;
|
||||
struct dirent *ent;
|
||||
char *types[] = {
|
||||
"application/X-WINGs-Bla",
|
||||
NULL
|
||||
};
|
||||
|
||||
windowCount++;
|
||||
|
||||
win = WMCreateWindow(scr, "dragDrop");
|
||||
WMResizeWidget(win, 300, 300);
|
||||
WMSetWindowCloseAction(win, closeAction, NULL);
|
||||
WMSetWindowTitle(win, "Drag and Drop");
|
||||
|
||||
|
||||
frame = WMCreateFrame(win);
|
||||
WMSetFrameRelief(frame, WRSunken);
|
||||
WMResizeWidget(frame, 250, 250);
|
||||
WMMoveWidget(frame, 25, 25);
|
||||
|
||||
WMRegisterViewForDraggedTypes(WMWidgetView(frame), types);
|
||||
WMSetViewDragDestinationProcs(WMWidgetView(frame), &dragDestProcs);
|
||||
|
||||
dir = opendir("../../WindowMaker/Icons");
|
||||
if (!dir) {
|
||||
perror("../../WindowMaker/Icons");
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0, j=0; j < 8; i++) {
|
||||
ent = readdir(dir);
|
||||
if (!ent)
|
||||
break;
|
||||
|
||||
if (strstr(ent->d_name, ".xpm")==NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
label = makeDraggableLabel(frame, ent->d_name,4+(j/4)*64, 4+(j%4)*64);
|
||||
|
||||
j++;
|
||||
}
|
||||
|
||||
closedir(dir);
|
||||
|
||||
WMMapSubwidgets(frame);
|
||||
|
||||
WMMapSubwidgets(win);
|
||||
WMRealizeWidget(win);
|
||||
WMMapWidget(win);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
void
|
||||
testUD()
|
||||
void testUD()
|
||||
{
|
||||
WMUserDefaults *defs;
|
||||
char str[32];
|
||||
@@ -1252,14 +915,11 @@ testUD()
|
||||
puts(str);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
WMScreen *scr;
|
||||
WMPixmap *pixmap;
|
||||
|
||||
|
||||
/* Initialize the application */
|
||||
WMInitializeApplication("Test@eqweq_ewq$eqw", &argc, argv);
|
||||
|
||||
@@ -1295,7 +955,10 @@ main(int argc, char **argv)
|
||||
/*
|
||||
* Makes the logo be used in standard dialog panels.
|
||||
*/
|
||||
WMSetApplicationIconPixmap(scr, pixmap); WMReleasePixmap(pixmap);
|
||||
if (pixmap) {
|
||||
WMSetApplicationIconPixmap(scr, pixmap);
|
||||
WMReleasePixmap(pixmap);
|
||||
}
|
||||
|
||||
/*
|
||||
* Do some test stuff.
|
||||
@@ -1303,12 +966,15 @@ main(int argc, char **argv)
|
||||
* Put the testSomething() function you want to test here.
|
||||
*/
|
||||
|
||||
|
||||
testText(scr);
|
||||
testFontPanel(scr);
|
||||
|
||||
testColorPanel(scr);
|
||||
|
||||
testTextField(scr);
|
||||
|
||||
#if 0
|
||||
|
||||
testBox(scr);
|
||||
testButton(scr);
|
||||
testColorPanel(scr);
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
@@ -7,3 +7,11 @@ includedir = @includedir@/WINGs
|
||||
|
||||
include_HEADERS = WINGs.h WUtil.h WINGsP.h proplist-compat.h
|
||||
|
||||
.c.o:
|
||||
$(QUIET)$(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(QUIET)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(QUIET)$(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include <WINGs/WUtil.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
#define WINGS_H_VERSION 20021124
|
||||
#define WINGS_H_VERSION 20041030
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -107,22 +107,6 @@ enum {
|
||||
};
|
||||
|
||||
|
||||
/* Font flags */
|
||||
typedef enum {
|
||||
WFDefaultFont = 0,
|
||||
WFNormalFont = (1<<0),
|
||||
WFFontSet = (1<<1),
|
||||
WFAntialiased = (1<<2),
|
||||
WFNotAntialiased = (1<<3)
|
||||
} WMFontFlags;
|
||||
|
||||
|
||||
/* Use default system font size in system font name */
|
||||
enum {
|
||||
WFDefaultSize = -1
|
||||
};
|
||||
|
||||
|
||||
/* frame title positions */
|
||||
typedef enum {
|
||||
WTPNoTitle,
|
||||
@@ -239,7 +223,7 @@ enum {
|
||||
|
||||
/* drag operations */
|
||||
typedef enum {
|
||||
WDOperationNone,
|
||||
WDOperationNone = 0,
|
||||
WDOperationCopy,
|
||||
WDOperationMove,
|
||||
WDOperationLink,
|
||||
@@ -443,33 +427,13 @@ typedef struct WMInputPanel {
|
||||
} WMInputPanel;
|
||||
|
||||
|
||||
|
||||
#define WFAUnchanged (NULL)
|
||||
/* Struct for font change operations */
|
||||
typedef struct WMFontAttributes {
|
||||
char *foundry;
|
||||
char *family;
|
||||
char *weight;
|
||||
char *slant;
|
||||
char *setWidth;
|
||||
char *addStyle;
|
||||
char *pixelSize;
|
||||
char *pointSize;
|
||||
char *resolutionX;
|
||||
char *resolutionY;
|
||||
char *spacing;
|
||||
char *averageWidth;
|
||||
char *registry;
|
||||
char *encoding;
|
||||
} WMFontAttributes;
|
||||
|
||||
/* A few useful constant font attributes masks */
|
||||
extern const WMFontAttributes *WFANormal;
|
||||
extern const WMFontAttributes *WFABold;
|
||||
extern const WMFontAttributes *WFANotBold;
|
||||
extern const WMFontAttributes *WFAEmphasized;
|
||||
extern const WMFontAttributes *WFANotEmphasized;
|
||||
extern const WMFontAttributes *WFABoldEmphasized;
|
||||
/* Basic font styles. Used to easily get one style from another */
|
||||
typedef enum WMFontStyle {
|
||||
WFSNormal = 0,
|
||||
WFSBold = 1,
|
||||
WFSItalic = 2,
|
||||
WFSBoldItalic = 3
|
||||
} WMFontStyle;
|
||||
|
||||
|
||||
/* WMRuler: */
|
||||
@@ -496,12 +460,11 @@ typedef void WMAction(WMWidget *self, void *clientData);
|
||||
typedef void WMAction2(void *self, void *clientData);
|
||||
|
||||
|
||||
typedef void WMDropDataCallback(WMView *view, WMData *data);
|
||||
|
||||
/* delegate method like stuff */
|
||||
typedef void WMListDrawProc(WMList *lPtr, int index, Drawable d, char *text,
|
||||
int state, WMRect *rect);
|
||||
|
||||
|
||||
/*
|
||||
typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
|
||||
unsigned int oldWidth,
|
||||
@@ -596,11 +559,17 @@ typedef struct WMSelectionProcs {
|
||||
typedef struct W_DraggingInfo WMDraggingInfo;
|
||||
|
||||
|
||||
/* links a label to a dnd operation. */
|
||||
typedef struct W_DragOperationtItem WMDragOperationItem;
|
||||
|
||||
|
||||
typedef struct W_DragSourceProcs {
|
||||
unsigned (*draggingSourceOperation)(WMView *self, Bool local);
|
||||
void (*beganDragImage)(WMView *self, WMPixmap *image, WMPoint point);
|
||||
void (*endedDragImage)(WMView *self, WMPixmap *image, WMPoint point,
|
||||
Bool deposited);
|
||||
WMArray* (*dropDataTypes)(WMView *self);
|
||||
WMDragOperationType (*wantedDropOperation)(WMView *self);
|
||||
WMArray* (*askedOperations)(WMView *self);
|
||||
Bool (*acceptDropOperation)(WMView *self, WMDragOperationType operation);
|
||||
void (*beganDrag)(WMView *self, WMPoint *point);
|
||||
void (*endedDrag)(WMView *self, WMPoint *point, Bool deposited);
|
||||
WMData* (*fetchDragData)(WMView *self, char *type);
|
||||
/*Bool (*ignoreModifierKeysWhileDragging)(WMView *view);*/
|
||||
} WMDragSourceProcs;
|
||||
@@ -608,16 +577,19 @@ typedef struct W_DragSourceProcs {
|
||||
|
||||
|
||||
typedef struct W_DragDestinationProcs {
|
||||
unsigned (*draggingEntered)(WMView *self, WMDraggingInfo *info);
|
||||
unsigned (*draggingUpdated)(WMView *self, WMDraggingInfo *info);
|
||||
void (*draggingExited)(WMView *self, WMDraggingInfo *info);
|
||||
Bool (*prepareForDragOperation)(WMView *self, WMDraggingInfo *info);
|
||||
Bool (*performDragOperation)(WMView *self, WMDraggingInfo *info);
|
||||
void (*concludeDragOperation)(WMView *self, WMDraggingInfo *info);
|
||||
void (*prepareForDragOperation)(WMView *self);
|
||||
WMArray* (*requiredDataTypes)(WMView *self, WMDragOperationType request,
|
||||
WMArray *sourceDataTypes);
|
||||
WMDragOperationType (*allowedOperation)(WMView *self,
|
||||
WMDragOperationType request,
|
||||
WMArray *sourceDataTypes);
|
||||
Bool (*inspectDropData)(WMView *self, WMArray *dropData);
|
||||
void (*performDragOperation)(WMView *self, WMArray *dropData,
|
||||
WMArray *operations, WMPoint *dropLocation);
|
||||
void (*concludeDragOperation)(WMView *self);
|
||||
} WMDragDestinationProcs;
|
||||
|
||||
|
||||
|
||||
/* ...................................................................... */
|
||||
|
||||
|
||||
@@ -723,44 +695,50 @@ extern char *WMSelectionOwnerDidChangeNotification;
|
||||
|
||||
/* ....................................................................... */
|
||||
|
||||
WMArray* WMCreateDragOperationArray(int initialSize);
|
||||
|
||||
WMDragOperationItem* WMCreateDragOperationItem(WMDragOperationType type,
|
||||
char* text);
|
||||
|
||||
WMDragOperationType WMGetDragOperationItemType(WMDragOperationItem* item);
|
||||
|
||||
char* WMGetDragOperationItemText(WMDragOperationItem* item);
|
||||
|
||||
void WMSetViewDragImage(WMView* view, WMPixmap *dragImage);
|
||||
|
||||
void WMReleaseViewDragImage(WMView* view);
|
||||
|
||||
void WMSetViewDragSourceProcs(WMView *view, WMDragSourceProcs *procs);
|
||||
|
||||
void WMDragImageFromView(WMView *view, WMPixmap *image, char *dataTypes[],
|
||||
WMPoint atLocation, WMSize mouseOffset, XEvent *event,
|
||||
Bool slideBack);
|
||||
Bool WMIsDraggingFromView(WMView *view);
|
||||
|
||||
void WMRegisterViewForDraggedTypes(WMView *view, char *acceptedTypes[]);
|
||||
void WMDragImageFromView(WMView *view, XEvent *event);
|
||||
|
||||
/* Create a drag handler, associating drag event masks with dragEventProc */
|
||||
void WMCreateDragHandler(WMView *view, WMEventProc *dragEventProc, void *clientData);
|
||||
|
||||
void WMDeleteDragHandler(WMView *view, WMEventProc *dragEventProc, void *clientData);
|
||||
|
||||
/* set default drag handler for view */
|
||||
void WMSetViewDraggable(WMView *view, WMDragSourceProcs *procs, WMPixmap *dragImage);
|
||||
|
||||
void WMUnsetViewDraggable(WMView *view);
|
||||
|
||||
void WMRegisterViewForDraggedTypes(WMView *view, WMArray *acceptedTypes);
|
||||
|
||||
void WMUnregisterViewDraggedTypes(WMView *view);
|
||||
|
||||
void WMSetViewDragDestinationProcs(WMView *view, WMDragDestinationProcs *procs);
|
||||
|
||||
|
||||
WMPoint WMGetDraggingInfoImageLocation(WMDraggingInfo *info);
|
||||
|
||||
/* ....................................................................... */
|
||||
|
||||
Bool WMHasAntialiasingSupport(WMScreen *scrPtr);
|
||||
|
||||
Bool WMIsAntialiasingEnabled(WMScreen *scrPtr);
|
||||
|
||||
/* ....................................................................... */
|
||||
|
||||
WMFont* WMCreateNormalFont(WMScreen *scrPtr, char *fontName);
|
||||
|
||||
WMFont* WMCreateFontSet(WMScreen *scrPtr, char *fontName);
|
||||
|
||||
WMFont* WMCreateAntialiasedFont(WMScreen *scrPtr, char *fontName);
|
||||
|
||||
WMFont* WMCreateAntialiasedFontSet(WMScreen *scrPtr, char *fontName);
|
||||
|
||||
WMFont* WMCreateFont(WMScreen *scrPtr, char *fontName);
|
||||
|
||||
WMFont* WMCreateFontWithFlags(WMScreen *scrPtr, char *fontName,
|
||||
WMFontFlags flags);
|
||||
|
||||
WMFont* WMCopyFontWithChanges(WMScreen *scrPtr, WMFont *font,
|
||||
const WMFontAttributes *changes);
|
||||
WMFont* WMCopyFontWithStyle(WMScreen *scrPtr, WMFont *font, WMFontStyle style);
|
||||
|
||||
WMFont* WMRetainFont(WMFont *font);
|
||||
|
||||
@@ -770,15 +748,6 @@ char* WMGetFontName(WMFont *font);
|
||||
|
||||
unsigned int WMFontHeight(WMFont *font);
|
||||
|
||||
Bool WMIsAntialiasedFont(WMFont *font);
|
||||
|
||||
/*
|
||||
WMFont* WMUserFontOfSize(WMScreen *scrPtr, int size);
|
||||
|
||||
WMFont* WMUserFixedPitchFontOfSize(WMScreen *scrPtr, int size);
|
||||
*/
|
||||
|
||||
|
||||
void WMSetWidgetDefaultFont(WMScreen *scr, WMFont *font);
|
||||
|
||||
void WMSetWidgetDefaultBoldFont(WMScreen *scr, WMFont *font);
|
||||
@@ -791,8 +760,6 @@ WMFont* WMSystemFontOfSize(WMScreen *scrPtr, int size);
|
||||
|
||||
WMFont* WMBoldSystemFontOfSize(WMScreen *scrPtr, int size);
|
||||
|
||||
XFontSet WMGetFontFontSet(WMFont *font);
|
||||
|
||||
/* ....................................................................... */
|
||||
|
||||
WMPixmap* WMRetainPixmap(WMPixmap *pixmap);
|
||||
@@ -863,6 +830,8 @@ WMColor* WMCreateRGBAColor(WMScreen *scr, unsigned short red,
|
||||
|
||||
WMColor* WMCreateNamedColor(WMScreen *scr, char *name, Bool exact);
|
||||
|
||||
RColor WMGetRColorFromColor(WMColor *color);
|
||||
|
||||
void WMSetColorAlpha(WMColor *color, unsigned short alpha);
|
||||
|
||||
unsigned short WMRedComponentOfColor(WMColor *color);
|
||||
@@ -996,6 +965,8 @@ void WMSetWindowTitle(WMWindow *wPtr, char *title);
|
||||
|
||||
void WMSetWindowMiniwindowTitle(WMWindow *win, char *title);
|
||||
|
||||
void WMSetWindowMiniwindowImage(WMWindow *win, RImage *image);
|
||||
|
||||
void WMSetWindowMiniwindowPixmap(WMWindow *win, WMPixmap *pixmap);
|
||||
|
||||
void WMSetWindowCloseAction(WMWindow *win, WMAction *action, void *clientData);
|
||||
@@ -1154,6 +1125,8 @@ void WMSelectTextFieldRange(WMTextField *tPtr, WMRange range);
|
||||
|
||||
void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position);
|
||||
|
||||
unsigned WMGetTextFieldCursorPosition(WMTextField *tPtr);
|
||||
|
||||
void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next);
|
||||
|
||||
void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev);
|
||||
@@ -1428,7 +1401,6 @@ char* WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
|
||||
|
||||
WMMenuItem* WMGetPopUpButtonMenuItem(WMPopUpButton *bPtr, int index);
|
||||
|
||||
|
||||
int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
|
||||
|
||||
void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
|
||||
@@ -1867,12 +1839,11 @@ void WMShowFontPanel(WMFontPanel *panel);
|
||||
|
||||
void WMHideFontPanel(WMFontPanel *panel);
|
||||
|
||||
void WMFreeFontPanel(WMFontPanel *panel);
|
||||
|
||||
void WMSetFontPanelAction(WMFontPanel *panel, WMAction2 *action, void *data);
|
||||
|
||||
void WMSetFontPanelFont(WMFontPanel *panel, WMFont *font);
|
||||
|
||||
/* you can free the returned string */
|
||||
char* WMGetFontPanelFontName(WMFontPanel *panel);
|
||||
void WMSetFontPanelFont(WMFontPanel *panel, char *fontName);
|
||||
|
||||
WMFont* WMGetFontPanelFont(WMFontPanel *panel);
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#include <WINGs/WINGs.h>
|
||||
|
||||
#if WINGS_H_VERSION < 20021124
|
||||
#if WINGS_H_VERSION < 20041030
|
||||
#error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it.
|
||||
#endif
|
||||
|
||||
@@ -22,19 +22,14 @@
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#define DOUBLE_BUFFER
|
||||
|
||||
|
||||
#define DOUBLE_BUFFER 1
|
||||
|
||||
#define WC_UserWidget 128
|
||||
|
||||
|
||||
|
||||
#define SCROLLER_WIDTH 20
|
||||
|
||||
|
||||
|
||||
#define XDND_VERSION 4
|
||||
#define XDND_VERSION 3
|
||||
|
||||
|
||||
typedef struct W_Application {
|
||||
@@ -48,17 +43,12 @@ typedef struct W_Application {
|
||||
typedef struct W_Font {
|
||||
struct W_Screen *screen;
|
||||
|
||||
union {
|
||||
XFontSet set;
|
||||
XFontStruct *normal;
|
||||
struct _XftFont *xft;
|
||||
} font;
|
||||
struct _XftFont *font;
|
||||
|
||||
short height;
|
||||
short y;
|
||||
short refCount;
|
||||
char *name;
|
||||
unsigned int notFontSet:1;
|
||||
unsigned int antialiased:1;
|
||||
} W_Font;
|
||||
|
||||
|
||||
@@ -94,28 +84,53 @@ typedef struct W_FocusInfo {
|
||||
|
||||
|
||||
|
||||
struct W_DraggingInfo {
|
||||
typedef void* W_DndState(WMView *destView, XClientMessageEvent *event,
|
||||
WMDraggingInfo *info);
|
||||
|
||||
|
||||
typedef struct W_DragOperationItem {
|
||||
WMDragOperationType type;
|
||||
char* text;
|
||||
} W_DragOperationItem;
|
||||
|
||||
|
||||
typedef struct W_DragSourceInfo {
|
||||
WMView *sourceView;
|
||||
Window destinationWindow;
|
||||
Window sourceWindow;
|
||||
|
||||
WMPoint location;
|
||||
|
||||
unsigned sourceOperation;
|
||||
WMPixmap *image;
|
||||
W_DndState *state;
|
||||
WMSelectionProcs *selectionProcs;
|
||||
Window icon;
|
||||
WMPoint imageLocation;
|
||||
WMPoint mouseOffset; /* mouse pos in icon */
|
||||
Cursor dragCursor;
|
||||
WMRect noPositionMessageZone;
|
||||
Atom firstThreeTypes[3];
|
||||
} W_DragSourceInfo;
|
||||
|
||||
char **types;
|
||||
|
||||
typedef struct W_DragDestinationInfo {
|
||||
WMView *destView;
|
||||
WMView *xdndAwareView;
|
||||
Window sourceWindow;
|
||||
W_DndState *state;
|
||||
Bool sourceActionChanged;
|
||||
WMArray *sourceTypes;
|
||||
WMArray *requiredTypes;
|
||||
Bool typeListAvailable;
|
||||
WMArray *dropDatas;
|
||||
} W_DragDestinationInfo;
|
||||
|
||||
|
||||
struct W_DraggingInfo {
|
||||
unsigned char protocolVersion; /* version supported on the other side */
|
||||
Time timestamp;
|
||||
|
||||
int protocolVersion;
|
||||
Atom sourceAction;
|
||||
Atom destinationAction;
|
||||
|
||||
/* should be treated as internal data */
|
||||
WMView *sourceView;
|
||||
WMView *destView;
|
||||
WMSize mouseOffset;
|
||||
unsigned finished:1;
|
||||
};
|
||||
W_DragSourceInfo* sourceInfo; /* infos needed by source */
|
||||
W_DragDestinationInfo* destInfo; /* infos needed by destination */
|
||||
} W_DraggingInfo;
|
||||
|
||||
|
||||
typedef struct W_Screen {
|
||||
@@ -139,8 +154,6 @@ typedef struct W_Screen {
|
||||
|
||||
struct _XftDraw *xftdraw; /* shared XftDraw */
|
||||
|
||||
Bool hasXftSupport; /* if it can antialias text */
|
||||
|
||||
/* application related */
|
||||
|
||||
W_FocusInfo *focusInfo;
|
||||
@@ -200,14 +213,6 @@ typedef struct W_Screen {
|
||||
|
||||
WMHashTable *fontCache;
|
||||
|
||||
WMHashTable *xftFontCache;
|
||||
|
||||
WMHashTable *fontSetCache;
|
||||
|
||||
WMHashTable *xftFontSetCache;
|
||||
|
||||
Bool useMultiByte;
|
||||
|
||||
Bool antialiasedText;
|
||||
|
||||
unsigned int ignoredModifierMask; /* modifiers to ignore when typing txt */
|
||||
@@ -289,6 +294,8 @@ typedef struct W_Screen {
|
||||
Atom xdndDropAtom;
|
||||
Atom xdndFinishedAtom;
|
||||
Atom xdndTypeListAtom;
|
||||
Atom xdndActionListAtom;
|
||||
Atom xdndActionDescriptionAtom;
|
||||
Atom xdndStatusAtom;
|
||||
|
||||
Atom xdndActionCopy;
|
||||
@@ -301,6 +308,12 @@ typedef struct W_Screen {
|
||||
|
||||
Atom wmStateAtom; /* WM_STATE */
|
||||
|
||||
Atom utf8String;
|
||||
|
||||
Atom netwmName;
|
||||
Atom netwmIconName;
|
||||
Atom netwmIcon;
|
||||
|
||||
/* stuff for detecting double-clicks */
|
||||
Time lastClickTime; /* time of last mousedown event */
|
||||
Window lastClickWindow; /* window of the last mousedown */
|
||||
@@ -330,8 +343,7 @@ typedef struct W_ViewDelegate {
|
||||
typedef struct W_View {
|
||||
struct W_Screen *screen;
|
||||
|
||||
WMWidget *self; /* must point to the widget the
|
||||
* view belongs to */
|
||||
WMWidget *self; /* must point to the widget the view belongs to */
|
||||
|
||||
W_ViewDelegate *delegate;
|
||||
|
||||
@@ -371,8 +383,10 @@ typedef struct W_View {
|
||||
Atom *droppableTypes;
|
||||
struct W_DragSourceProcs *dragSourceProcs;
|
||||
struct W_DragDestinationProcs *dragDestinationProcs;
|
||||
WMPixmap *dragImage;
|
||||
int helpContext;
|
||||
|
||||
XIC xic;
|
||||
|
||||
struct {
|
||||
unsigned int realized:1;
|
||||
@@ -386,8 +400,8 @@ typedef struct W_View {
|
||||
|
||||
unsigned int dontCompressMotion:1; /* motion notify event compress */
|
||||
unsigned int notifySizeChanged:1;
|
||||
unsigned int dontCompressExpose:1; /* will compress all expose
|
||||
events into one */
|
||||
unsigned int dontCompressExpose:1; /* expose event compress */
|
||||
|
||||
/* toplevel only */
|
||||
unsigned int worksWhenModal:1;
|
||||
unsigned int pendingRelease1:1;
|
||||
@@ -416,11 +430,8 @@ typedef struct W_EventHandler {
|
||||
typedef struct _WINGsConfiguration {
|
||||
char *systemFont;
|
||||
char *boldSystemFont;
|
||||
char *antialiasedSystemFont;
|
||||
char *antialiasedBoldSystemFont;
|
||||
int defaultFontSize;
|
||||
Bool antialiasedText;
|
||||
Bool useMultiByte;
|
||||
char *floppyPath;
|
||||
unsigned doubleClickDelay;
|
||||
unsigned mouseWheelUp;
|
||||
@@ -565,8 +576,63 @@ void W_CheckTimerHandlers(void);
|
||||
|
||||
Bool W_HandleInputEvents(Bool waitForInput, int inputfd);
|
||||
|
||||
/* XDnD */
|
||||
Atom W_OperationToAction(WMScreen *scr, WMDragOperationType operation);
|
||||
|
||||
WMDragOperationType W_ActionToOperation(WMScreen *scr, Atom action);
|
||||
|
||||
void W_FreeDragOperationItem(void* item);
|
||||
|
||||
Bool W_SendDnDClientMessage(Display *dpy, Window win, Atom message,
|
||||
unsigned long data1, unsigned long data2,
|
||||
unsigned long data3, unsigned long data4,
|
||||
unsigned long data5);
|
||||
|
||||
void W_DragSourceStartTimer(WMDraggingInfo *info);
|
||||
|
||||
void W_DragSourceStopTimer();
|
||||
|
||||
void W_DragSourceStateHandler(WMDraggingInfo *info, XClientMessageEvent *event);
|
||||
|
||||
void W_DragDestinationStartTimer(WMDraggingInfo *info);
|
||||
|
||||
void W_DragDestinationStopTimer();
|
||||
|
||||
void W_DragDestinationStoreEnterMsgInfo(WMDraggingInfo *info, WMView *toplevel,
|
||||
XClientMessageEvent *event);
|
||||
|
||||
void W_DragDestinationStorePositionMsgInfo(WMDraggingInfo *info,
|
||||
WMView *toplevel,
|
||||
XClientMessageEvent *event);
|
||||
|
||||
void W_DragDestinationCancelDropOnEnter(WMView *toplevel, WMDraggingInfo *info);
|
||||
|
||||
void W_DragDestinationStateHandler(WMDraggingInfo *info,
|
||||
XClientMessageEvent *event);
|
||||
|
||||
void W_DragDestinationInfoClear(WMDraggingInfo *info);
|
||||
|
||||
void W_FreeViewXdndPart(WMView *view);
|
||||
|
||||
/* XIM */
|
||||
void W_InitIM(WMScreen *scr);
|
||||
|
||||
void W_CreateIC(WMView *view);
|
||||
|
||||
void W_DestroyIC(WMView *view);
|
||||
|
||||
void W_FocusIC(WMView *view);
|
||||
|
||||
void W_UnFocusIC(WMView *view);
|
||||
|
||||
void W_SetPreeditPositon(W_View *view, int x, int y);
|
||||
|
||||
int W_LookupString(W_View *view, XKeyPressedEvent *event, char *buffer,
|
||||
int buflen, KeySym *keysym, Status *status);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* _WINGSP_H_ */
|
||||
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __GNUC__
|
||||
#define __attribute__(x) /*NOTHING*/
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
|
||||
@@ -216,11 +219,11 @@ waborthandler* wsetabort(waborthandler* handler);
|
||||
/* don't free the returned string */
|
||||
char* wstrerror(int errnum);
|
||||
|
||||
void wmessage(const char *msg, ...);
|
||||
void wwarning(const char *msg, ...);
|
||||
void wfatal(const char *msg, ...);
|
||||
void wsyserror(const char *msg, ...);
|
||||
void wsyserrorwithcode(int error, const char *msg, ...);
|
||||
void wmessage(const char *msg, ...) __attribute__((__format__(printf,1,2)));
|
||||
void wwarning(const char *msg, ...) __attribute__((__format__(printf,1,2)));
|
||||
void wfatal(const char *msg, ...) __attribute__((__format__(printf,1,2)));
|
||||
void wsyserror(const char *msg, ...) __attribute__((__format__(printf,1,2)));
|
||||
void wsyserrorwithcode(int error, const char *msg, ...) __attribute__((__format__(printf,2,3)));
|
||||
|
||||
char* wfindfile(char *paths, char *file);
|
||||
|
||||
@@ -234,9 +237,12 @@ char* wexpandpath(char *path);
|
||||
char* wgethomedir();
|
||||
|
||||
void* wmalloc(size_t size);
|
||||
void* wmalloc0(size_t size);
|
||||
void* wrealloc(void *ptr, size_t newsize);
|
||||
void wfree(void *ptr);
|
||||
|
||||
#define wnew(type, count) wmalloc(sizeof(type)*count)
|
||||
#define wnew0(type, count) wmalloc0(sizeof(type)*count)
|
||||
|
||||
void wrelease(void *ptr);
|
||||
void* wretain(void *ptr);
|
||||
|
||||
108
WINGs/array.c
108
WINGs/array.c
@@ -1,24 +1,21 @@
|
||||
/*
|
||||
* Dynamically Resized Array
|
||||
*
|
||||
* Authors: Alfredo K. Kojima <kojima@windowmaker.org>
|
||||
* Dan Pascu <dan@windowmaker.org>
|
||||
* Authors: Alfredo K. Kojima <kojima@windowmaker.info>
|
||||
* Dan Pascu <dan@windowmaker.info>
|
||||
*
|
||||
* This code is released to the Public Domain, but
|
||||
* proper credit is always appreciated :)
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
#define INITIAL_SIZE 8
|
||||
#define RESIZE_INCREMENT 8
|
||||
|
||||
|
||||
typedef struct W_Array {
|
||||
void **items; /* the array data */
|
||||
int itemCount; /* # of items in array */
|
||||
@@ -26,16 +23,12 @@ typedef struct W_Array {
|
||||
WMFreeDataProc *destructor; /* the destructor to free elements */
|
||||
} W_Array;
|
||||
|
||||
|
||||
WMArray*
|
||||
WMCreateArray(int initialSize)
|
||||
WMArray *WMCreateArray(int initialSize)
|
||||
{
|
||||
return WMCreateArrayWithDestructor(initialSize, NULL);
|
||||
}
|
||||
|
||||
|
||||
WMArray*
|
||||
WMCreateArrayWithDestructor(int initialSize, WMFreeDataProc *destructor)
|
||||
WMArray *WMCreateArrayWithDestructor(int initialSize, WMFreeDataProc * destructor)
|
||||
{
|
||||
WMArray *array;
|
||||
|
||||
@@ -54,9 +47,7 @@ WMCreateArrayWithDestructor(int initialSize, WMFreeDataProc *destructor)
|
||||
return array;
|
||||
}
|
||||
|
||||
|
||||
WMArray*
|
||||
WMCreateArrayWithArray(WMArray *array)
|
||||
WMArray *WMCreateArrayWithArray(WMArray * array)
|
||||
{
|
||||
WMArray *newArray;
|
||||
|
||||
@@ -72,9 +63,7 @@ WMCreateArrayWithArray(WMArray *array)
|
||||
return newArray;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMEmptyArray(WMArray *array)
|
||||
void WMEmptyArray(WMArray * array)
|
||||
{
|
||||
if (array->destructor) {
|
||||
while (array->itemCount > 0) {
|
||||
@@ -86,25 +75,19 @@ WMEmptyArray(WMArray *array)
|
||||
array->itemCount = 0;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMFreeArray(WMArray *array)
|
||||
void WMFreeArray(WMArray * array)
|
||||
{
|
||||
WMEmptyArray(array);
|
||||
wfree(array->items);
|
||||
wfree(array);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetArrayItemCount(WMArray *array)
|
||||
int WMGetArrayItemCount(WMArray * array)
|
||||
{
|
||||
return array->itemCount;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMAppendArray(WMArray *array, WMArray *other)
|
||||
void WMAppendArray(WMArray * array, WMArray * other)
|
||||
{
|
||||
if (other->itemCount == 0)
|
||||
return;
|
||||
@@ -114,14 +97,11 @@ WMAppendArray(WMArray *array, WMArray *other)
|
||||
array->items = wrealloc(array->items, sizeof(void *) * array->allocSize);
|
||||
}
|
||||
|
||||
memcpy(array->items+array->itemCount, other->items,
|
||||
sizeof(void*)*other->itemCount);
|
||||
memcpy(array->items + array->itemCount, other->items, sizeof(void *) * other->itemCount);
|
||||
array->itemCount += other->itemCount;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMAddToArray(WMArray *array, void *item)
|
||||
void WMAddToArray(WMArray * array, void *item)
|
||||
{
|
||||
if (array->itemCount >= array->allocSize) {
|
||||
array->allocSize += RESIZE_INCREMENT;
|
||||
@@ -132,9 +112,7 @@ WMAddToArray(WMArray *array, void *item)
|
||||
array->itemCount++;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMInsertInArray(WMArray *array, int index, void *item)
|
||||
void WMInsertInArray(WMArray * array, int index, void *item)
|
||||
{
|
||||
wassertr(index >= 0 && index <= array->itemCount);
|
||||
|
||||
@@ -151,9 +129,7 @@ WMInsertInArray(WMArray *array, int index, void *item)
|
||||
array->itemCount++;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMReplaceInArray(WMArray *array, int index, void *item)
|
||||
void *WMReplaceInArray(WMArray * array, int index, void *item)
|
||||
{
|
||||
void *old;
|
||||
|
||||
@@ -171,9 +147,7 @@ WMReplaceInArray(WMArray *array, int index, void *item)
|
||||
return old;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMDeleteFromArray(WMArray *array, int index)
|
||||
int WMDeleteFromArray(WMArray * array, int index)
|
||||
{
|
||||
wassertrv(index >= 0 && index < array->itemCount, 0);
|
||||
|
||||
@@ -191,9 +165,7 @@ WMDeleteFromArray(WMArray *array, int index)
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMRemoveFromArrayMatching(WMArray *array, WMMatchDataProc *match, void *cdata)
|
||||
int WMRemoveFromArrayMatching(WMArray * array, WMMatchDataProc * match, void *cdata)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -216,9 +188,7 @@ WMRemoveFromArrayMatching(WMArray *array, WMMatchDataProc *match, void *cdata)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMGetFromArray(WMArray *array, int index)
|
||||
void *WMGetFromArray(WMArray * array, int index)
|
||||
{
|
||||
if (index < 0 || index >= array->itemCount)
|
||||
return NULL;
|
||||
@@ -226,18 +196,14 @@ WMGetFromArray(WMArray *array, int index)
|
||||
return array->items[index];
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMPopFromArray(WMArray *array)
|
||||
void *WMPopFromArray(WMArray * array)
|
||||
{
|
||||
array->itemCount--;
|
||||
|
||||
return array->items[array->itemCount];
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMFindInArray(WMArray *array, WMMatchDataProc *match, void *cdata)
|
||||
int WMFindInArray(WMArray * array, WMMatchDataProc * match, void *cdata)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -256,9 +222,7 @@ WMFindInArray(WMArray *array, WMMatchDataProc *match, void *cdata)
|
||||
return WANotFound;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMCountInArray(WMArray *array, void *item)
|
||||
int WMCountInArray(WMArray * array, void *item)
|
||||
{
|
||||
int i, count;
|
||||
|
||||
@@ -270,18 +234,14 @@ WMCountInArray(WMArray *array, void *item)
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSortArray(WMArray *array, WMCompareDataProc *comparer)
|
||||
void WMSortArray(WMArray * array, WMCompareDataProc * comparer)
|
||||
{
|
||||
if (array->itemCount > 1) { /* Don't sort empty or single element arrays */
|
||||
qsort(array->items, array->itemCount, sizeof(void *), comparer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMMapArray(WMArray *array, void (*function)(void*, void*), void *data)
|
||||
void WMMapArray(WMArray * array, void (*function) (void *, void *), void *data)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -290,9 +250,7 @@ WMMapArray(WMArray *array, void (*function)(void*, void*), void *data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WMArray*
|
||||
WMGetSubarrayWithRange(WMArray* array, WMRange aRange)
|
||||
WMArray *WMGetSubarrayWithRange(WMArray * array, WMRange aRange)
|
||||
{
|
||||
WMArray *newArray;
|
||||
|
||||
@@ -307,16 +265,13 @@ WMGetSubarrayWithRange(WMArray* array, WMRange aRange)
|
||||
aRange.count = array->itemCount - aRange.position;
|
||||
|
||||
newArray = WMCreateArray(aRange.count);
|
||||
memcpy(newArray->items, array->items+aRange.position,
|
||||
sizeof(void*)*aRange.count);
|
||||
memcpy(newArray->items, array->items + aRange.position, sizeof(void *) * aRange.count);
|
||||
newArray->itemCount = aRange.count;
|
||||
|
||||
return newArray;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMArrayFirst(WMArray *array, WMArrayIterator *iter)
|
||||
void *WMArrayFirst(WMArray * array, WMArrayIterator * iter)
|
||||
{
|
||||
if (array->itemCount == 0) {
|
||||
*iter = WANotFound;
|
||||
@@ -327,9 +282,7 @@ WMArrayFirst(WMArray *array, WMArrayIterator *iter)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMArrayLast(WMArray *array, WMArrayIterator *iter)
|
||||
void *WMArrayLast(WMArray * array, WMArrayIterator * iter)
|
||||
{
|
||||
if (array->itemCount == 0) {
|
||||
*iter = WANotFound;
|
||||
@@ -340,9 +293,7 @@ WMArrayLast(WMArray *array, WMArrayIterator *iter)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMArrayNext(WMArray *array, WMArrayIterator *iter)
|
||||
void *WMArrayNext(WMArray * array, WMArrayIterator * iter)
|
||||
{
|
||||
if (*iter >= 0 && *iter < array->itemCount - 1) {
|
||||
return array->items[++(*iter)];
|
||||
@@ -352,9 +303,7 @@ WMArrayNext(WMArray *array, WMArrayIterator *iter)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMArrayPrevious(WMArray *array, WMArrayIterator *iter)
|
||||
void *WMArrayPrevious(WMArray * array, WMArrayIterator * iter)
|
||||
{
|
||||
if (*iter > 0 && *iter < array->itemCount) {
|
||||
return array->items[--(*iter)];
|
||||
@@ -363,6 +312,3 @@ WMArrayPrevious(WMArray *array, WMArrayIterator *iter)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
184
WINGs/bagtree.c
184
WINGs/bagtree.c
@@ -1,13 +1,9 @@
|
||||
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
typedef struct W_Node {
|
||||
struct W_Node *parent;
|
||||
struct W_Node *left;
|
||||
@@ -18,7 +14,6 @@ typedef struct W_Node {
|
||||
int index;
|
||||
} W_Node;
|
||||
|
||||
|
||||
typedef struct W_Bag {
|
||||
W_Node *root;
|
||||
|
||||
@@ -29,15 +24,10 @@ typedef struct W_Bag {
|
||||
void (*destructor) (void *item);
|
||||
} W_Bag;
|
||||
|
||||
|
||||
|
||||
#define IS_LEFT(node) (node == node->parent->left)
|
||||
#define IS_RIGHT(node) (node == node->parent->right)
|
||||
|
||||
|
||||
|
||||
static void
|
||||
leftRotate(W_Bag *tree, W_Node *node)
|
||||
static void leftRotate(W_Bag * tree, W_Node * node)
|
||||
{
|
||||
W_Node *node2;
|
||||
|
||||
@@ -61,10 +51,7 @@ leftRotate(W_Bag *tree, W_Node *node)
|
||||
node->parent = node2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
rightRotate(W_Bag *tree, W_Node *node)
|
||||
static void rightRotate(W_Bag * tree, W_Node * node)
|
||||
{
|
||||
W_Node *node2;
|
||||
|
||||
@@ -88,9 +75,7 @@ rightRotate(W_Bag *tree, W_Node *node)
|
||||
node->parent = node2;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
treeInsert(W_Bag *tree, W_Node *node)
|
||||
static void treeInsert(W_Bag * tree, W_Node * node)
|
||||
{
|
||||
W_Node *y = tree->nil;
|
||||
W_Node *x = tree->root;
|
||||
@@ -111,9 +96,7 @@ treeInsert(W_Bag *tree, W_Node *node)
|
||||
y->right = node;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
rbTreeInsert(W_Bag *tree, W_Node *node)
|
||||
static void rbTreeInsert(W_Bag * tree, W_Node * node)
|
||||
{
|
||||
W_Node *y;
|
||||
|
||||
@@ -165,9 +148,7 @@ rbTreeInsert(W_Bag *tree, W_Node *node)
|
||||
tree->root->color = 'B';
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
rbDeleteFixup(W_Bag *tree, W_Node *node)
|
||||
static void rbDeleteFixup(W_Bag * tree, W_Node * node)
|
||||
{
|
||||
W_Node *w;
|
||||
|
||||
@@ -226,27 +207,21 @@ rbDeleteFixup(W_Bag *tree, W_Node *node)
|
||||
|
||||
}
|
||||
|
||||
|
||||
static W_Node*
|
||||
treeMinimum(W_Node *node, W_Node *nil)
|
||||
static W_Node *treeMinimum(W_Node * node, W_Node * nil)
|
||||
{
|
||||
while (node->left != nil)
|
||||
node = node->left;
|
||||
return node;
|
||||
}
|
||||
|
||||
|
||||
static W_Node*
|
||||
treeMaximum(W_Node *node, W_Node *nil)
|
||||
static W_Node *treeMaximum(W_Node * node, W_Node * nil)
|
||||
{
|
||||
while (node->right != nil)
|
||||
node = node->right;
|
||||
return node;
|
||||
}
|
||||
|
||||
|
||||
static W_Node*
|
||||
treeSuccessor(W_Node *node, W_Node *nil)
|
||||
static W_Node *treeSuccessor(W_Node * node, W_Node * nil)
|
||||
{
|
||||
W_Node *y;
|
||||
|
||||
@@ -261,9 +236,7 @@ treeSuccessor(W_Node *node, W_Node *nil)
|
||||
return y;
|
||||
}
|
||||
|
||||
|
||||
static W_Node*
|
||||
treePredecessor(W_Node *node, W_Node *nil)
|
||||
static W_Node *treePredecessor(W_Node * node, W_Node * nil)
|
||||
{
|
||||
W_Node *y;
|
||||
|
||||
@@ -278,9 +251,7 @@ treePredecessor(W_Node *node, W_Node *nil)
|
||||
return y;
|
||||
}
|
||||
|
||||
|
||||
static W_Node*
|
||||
rbTreeDelete(W_Bag *tree, W_Node *node)
|
||||
static W_Node *rbTreeDelete(W_Bag * tree, W_Node * node)
|
||||
{
|
||||
W_Node *nil = tree->nil;
|
||||
W_Node *x, *y;
|
||||
@@ -319,9 +290,7 @@ rbTreeDelete(W_Bag *tree, W_Node *node)
|
||||
return y;
|
||||
}
|
||||
|
||||
|
||||
static W_Node*
|
||||
treeSearch(W_Node *root, W_Node *nil, int index)
|
||||
static W_Node *treeSearch(W_Node * root, W_Node * nil, int index)
|
||||
{
|
||||
if (root == nil || root->index == index) {
|
||||
return root;
|
||||
@@ -334,9 +303,7 @@ treeSearch(W_Node *root, W_Node *nil, int index)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static W_Node*
|
||||
treeFind(W_Node *root, W_Node *nil, void *data)
|
||||
static W_Node *treeFind(W_Node * root, W_Node * nil, void *data)
|
||||
{
|
||||
W_Node *tmp;
|
||||
|
||||
@@ -352,13 +319,10 @@ treeFind(W_Node *root, W_Node *nil, void *data)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
static char buf[512];
|
||||
|
||||
static void
|
||||
printNodes(W_Node *node, W_Node *nil, int depth)
|
||||
static void printNodes(W_Node * node, W_Node * nil, int depth)
|
||||
{
|
||||
if (node == nil) {
|
||||
return;
|
||||
@@ -376,9 +340,7 @@ printNodes(W_Node *node, W_Node *nil, int depth)
|
||||
printNodes(node->right, nil, depth + 1);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
PrintTree(WMBag *bag)
|
||||
void PrintTree(WMBag * bag)
|
||||
{
|
||||
W_TreeBag *tree = (W_TreeBag *) bag->data;
|
||||
|
||||
@@ -386,16 +348,12 @@ PrintTree(WMBag *bag)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
WMBag*
|
||||
WMCreateTreeBag(void)
|
||||
WMBag *WMCreateTreeBag(void)
|
||||
{
|
||||
return WMCreateTreeBagWithDestructor(NULL);
|
||||
}
|
||||
|
||||
|
||||
WMBag*
|
||||
WMCreateTreeBagWithDestructor(WMFreeDataProc *destructor)
|
||||
WMBag *WMCreateTreeBagWithDestructor(WMFreeDataProc * destructor)
|
||||
{
|
||||
WMBag *bag;
|
||||
|
||||
@@ -415,16 +373,12 @@ WMCreateTreeBagWithDestructor(WMFreeDataProc *destructor)
|
||||
return bag;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetBagItemCount(WMBag *self)
|
||||
int WMGetBagItemCount(WMBag * self)
|
||||
{
|
||||
return self->count;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMAppendBag(WMBag *self, WMBag *bag)
|
||||
void WMAppendBag(WMBag * self, WMBag * bag)
|
||||
{
|
||||
WMBagIterator ptr;
|
||||
void *data;
|
||||
@@ -434,9 +388,7 @@ WMAppendBag(WMBag *self, WMBag *bag)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMPutInBag(WMBag *self, void *item)
|
||||
void WMPutInBag(WMBag * self, void *item)
|
||||
{
|
||||
W_Node *ptr;
|
||||
|
||||
@@ -453,9 +405,7 @@ WMPutInBag(WMBag *self, void *item)
|
||||
self->count++;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMInsertInBag(WMBag *self, int index, void *item)
|
||||
void WMInsertInBag(WMBag * self, int index, void *item)
|
||||
{
|
||||
W_Node *ptr;
|
||||
|
||||
@@ -473,13 +423,10 @@ WMInsertInBag(WMBag *self, int index, void *item)
|
||||
ptr->index++;
|
||||
}
|
||||
|
||||
|
||||
self->count++;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMRemoveFromBag(WMBag *self, void *item)
|
||||
int WMRemoveFromBag(WMBag * self, void *item)
|
||||
{
|
||||
W_Node *ptr = treeFind(self->root, self->nil, item);
|
||||
|
||||
@@ -505,9 +452,7 @@ WMRemoveFromBag(WMBag *self, void *item)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMEraseFromBag(WMBag *self, int index)
|
||||
int WMEraseFromBag(WMBag * self, int index)
|
||||
{
|
||||
W_Node *ptr = treeSearch(self->root, self->nil, index);
|
||||
|
||||
@@ -528,9 +473,7 @@ WMEraseFromBag(WMBag *self, int index)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMDeleteFromBag(WMBag *self, int index)
|
||||
int WMDeleteFromBag(WMBag * self, int index)
|
||||
{
|
||||
W_Node *ptr = treeSearch(self->root, self->nil, index);
|
||||
|
||||
@@ -558,9 +501,7 @@ WMDeleteFromBag(WMBag *self, int index)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMGetFromBag(WMBag *self, int index)
|
||||
void *WMGetFromBag(WMBag * self, int index)
|
||||
{
|
||||
W_Node *node;
|
||||
|
||||
@@ -571,9 +512,7 @@ WMGetFromBag(WMBag *self, int index)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetFirstInBag(WMBag *self, void *item)
|
||||
int WMGetFirstInBag(WMBag * self, void *item)
|
||||
{
|
||||
W_Node *node;
|
||||
|
||||
@@ -584,10 +523,7 @@ WMGetFirstInBag(WMBag *self, void *item)
|
||||
return WBNotFound;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
treeCount(W_Node *root, W_Node *nil, void *item)
|
||||
static int treeCount(W_Node * root, W_Node * nil, void *item)
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
@@ -606,17 +542,12 @@ treeCount(W_Node *root, W_Node *nil, void *item)
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int
|
||||
WMCountInBag(WMBag *self, void *item)
|
||||
int WMCountInBag(WMBag * self, void *item)
|
||||
{
|
||||
return treeCount(self->root, self->nil, item);
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMReplaceInBag(WMBag *self, int index, void *item)
|
||||
void *WMReplaceInBag(WMBag * self, int index, void *item)
|
||||
{
|
||||
W_Node *ptr = treeSearch(self->root, self->nil, index);
|
||||
void *old = NULL;
|
||||
@@ -649,9 +580,7 @@ WMReplaceInBag(WMBag *self, int index, void *item)
|
||||
return old;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSortBag(WMBag *self, WMCompareDataProc *comparer)
|
||||
void WMSortBag(WMBag * self, WMCompareDataProc * comparer)
|
||||
{
|
||||
void **items;
|
||||
W_Node *tmp;
|
||||
@@ -682,9 +611,7 @@ WMSortBag(WMBag *self, WMCompareDataProc *comparer)
|
||||
wfree(items);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
deleteTree(WMBag *self, W_Node *node)
|
||||
static void deleteTree(WMBag * self, W_Node * node)
|
||||
{
|
||||
if (node == self->nil)
|
||||
return;
|
||||
@@ -699,27 +626,21 @@ deleteTree(WMBag *self, W_Node *node)
|
||||
wfree(node);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMEmptyBag(WMBag *self)
|
||||
void WMEmptyBag(WMBag * self)
|
||||
{
|
||||
deleteTree(self, self->root);
|
||||
self->root = self->nil;
|
||||
self->count = 0;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMFreeBag(WMBag *self)
|
||||
void WMFreeBag(WMBag * self)
|
||||
{
|
||||
WMEmptyBag(self);
|
||||
wfree(self->nil);
|
||||
wfree(self);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
mapTree(W_Bag *tree, W_Node *node, void (*function)(void*, void*), void *data)
|
||||
static void mapTree(W_Bag * tree, W_Node * node, void (*function) (void *, void *), void *data)
|
||||
{
|
||||
if (node == tree->nil)
|
||||
return;
|
||||
@@ -731,17 +652,12 @@ mapTree(W_Bag *tree, W_Node *node, void (*function)(void*, void*), void *data)
|
||||
mapTree(tree, node->right, function, data);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMMapBag(WMBag *self, void (*function)(void*, void*), void *data)
|
||||
void WMMapBag(WMBag * self, void (*function) (void *, void *), void *data)
|
||||
{
|
||||
mapTree(self, self->root, function, data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
findInTree(W_Bag *tree, W_Node *node, WMMatchDataProc *function, void *cdata)
|
||||
static int findInTree(W_Bag * tree, W_Node * node, WMMatchDataProc * function, void *cdata)
|
||||
{
|
||||
int index;
|
||||
|
||||
@@ -759,16 +675,12 @@ findInTree(W_Bag *tree, W_Node *node, WMMatchDataProc *function, void *cdata)
|
||||
return findInTree(tree, node->right, function, cdata);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMFindInBag(WMBag *self, WMMatchDataProc *match, void *cdata)
|
||||
int WMFindInBag(WMBag * self, WMMatchDataProc * match, void *cdata)
|
||||
{
|
||||
return findInTree(self, self->root, match, cdata);
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMBagFirst(WMBag *self, WMBagIterator *ptr)
|
||||
void *WMBagFirst(WMBag * self, WMBagIterator * ptr)
|
||||
{
|
||||
W_Node *node;
|
||||
|
||||
@@ -783,9 +695,7 @@ WMBagFirst(WMBag *self, WMBagIterator *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMBagLast(WMBag *self, WMBagIterator *ptr)
|
||||
void *WMBagLast(WMBag * self, WMBagIterator * ptr)
|
||||
{
|
||||
|
||||
W_Node *node;
|
||||
@@ -801,9 +711,7 @@ WMBagLast(WMBag *self, WMBagIterator *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMBagNext(WMBag *self, WMBagIterator *ptr)
|
||||
void *WMBagNext(WMBag * self, WMBagIterator * ptr)
|
||||
{
|
||||
W_Node *node;
|
||||
|
||||
@@ -821,9 +729,7 @@ WMBagNext(WMBag *self, WMBagIterator *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMBagPrevious(WMBag *self, WMBagIterator *ptr)
|
||||
void *WMBagPrevious(WMBag * self, WMBagIterator * ptr)
|
||||
{
|
||||
W_Node *node;
|
||||
|
||||
@@ -841,9 +747,7 @@ WMBagPrevious(WMBag *self, WMBagIterator *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMBagIteratorAtIndex(WMBag *self, int index, WMBagIterator *ptr)
|
||||
void *WMBagIteratorAtIndex(WMBag * self, int index, WMBagIterator * ptr)
|
||||
{
|
||||
W_Node *node;
|
||||
|
||||
@@ -858,11 +762,7 @@ WMBagIteratorAtIndex(WMBag *self, int index, WMBagIterator *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMBagIndexForIterator(WMBag *bag, WMBagIterator ptr)
|
||||
int WMBagIndexForIterator(WMBag * bag, WMBagIterator ptr)
|
||||
{
|
||||
return ((W_Node *) ptr)->index;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +1,18 @@
|
||||
|
||||
|
||||
#include "WINGsP.h"
|
||||
#include "wconfig.h"
|
||||
|
||||
#include <X11/Xlocale.h>
|
||||
|
||||
|
||||
_WINGsConfiguration WINGsConfiguration;
|
||||
|
||||
|
||||
|
||||
#define SYSTEM_FONT "-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-medium-r-*-*-%d-*-*-*-*-*-*-*"
|
||||
|
||||
#define BOLD_SYSTEM_FONT "-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-bold-r-*-*-%d-*-*-*-*-*-*-*"
|
||||
|
||||
#define XFTSYSTEM_FONT "-*-arial-medium-r-normal-*-%d-*-*-*-*-*-*-*"
|
||||
|
||||
#define XFTBOLD_SYSTEM_FONT "-*-arial-bold-r-normal-*-%d-*-*-*-*-*-*-*"
|
||||
#define SYSTEM_FONT "Trebuchet MS,Luxi Sans"
|
||||
#define BOLD_SYSTEM_FONT "Trebuchet MS,Luxi Sans:bold"
|
||||
#define DEFAULT_FONT_SIZE 12
|
||||
|
||||
#define FLOPPY_PATH "/floppy"
|
||||
|
||||
|
||||
static unsigned
|
||||
getButtonWithName(const char *name, unsigned defaultButton)
|
||||
static unsigned getButtonWithName(const char *name, unsigned defaultButton)
|
||||
{
|
||||
if (strncmp(name, "Button", 6) == 0 && strlen(name) == 7) {
|
||||
switch (name[6]) {
|
||||
@@ -44,54 +34,7 @@ getButtonWithName(const char *name, unsigned defaultButton)
|
||||
return defaultButton;
|
||||
}
|
||||
|
||||
|
||||
static Bool
|
||||
missingOrInvalidXLFD(char *xlfd)
|
||||
{
|
||||
char *ptr = xlfd;
|
||||
Bool broken = False;
|
||||
int count = 0;
|
||||
|
||||
if (!xlfd)
|
||||
return True;
|
||||
|
||||
while (*ptr) {
|
||||
if (*ptr=='%') {
|
||||
ptr++;
|
||||
if ((*ptr=='d' || *ptr=='i') && count==0) {
|
||||
count++;
|
||||
} else {
|
||||
broken = True;
|
||||
break;
|
||||
}
|
||||
} else if (*ptr==',') {
|
||||
count = 0;
|
||||
}
|
||||
ptr++;
|
||||
}
|
||||
|
||||
if (broken) {
|
||||
if (xlfd == WINGsConfiguration.systemFont) {
|
||||
ptr = "system font";
|
||||
} else if (xlfd == WINGsConfiguration.boldSystemFont) {
|
||||
ptr = "bold system font";
|
||||
} else if (xlfd == WINGsConfiguration.antialiasedSystemFont) {
|
||||
ptr = "antialiased system font";
|
||||
} else if (xlfd == WINGsConfiguration.antialiasedBoldSystemFont) {
|
||||
ptr = "antialiased bold system font";
|
||||
} else {
|
||||
ptr = "Unknown System Font";
|
||||
}
|
||||
wwarning(_("Invalid %s specification: '%s' (only %%d is allowed and "
|
||||
"at most once for each font in a fontset)."), ptr, xlfd);
|
||||
}
|
||||
|
||||
return broken;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
W_ReadConfigurations(void)
|
||||
void W_ReadConfigurations(void)
|
||||
{
|
||||
WMUserDefaults *defaults;
|
||||
|
||||
@@ -102,54 +45,16 @@ W_ReadConfigurations(void)
|
||||
if (defaults) {
|
||||
char *buttonName;
|
||||
unsigned button;
|
||||
char *str;
|
||||
|
||||
WINGsConfiguration.systemFont =
|
||||
WMGetUDStringForKey(defaults, "SystemFont");
|
||||
WINGsConfiguration.systemFont = WMGetUDStringForKey(defaults, "SystemFont");
|
||||
|
||||
WINGsConfiguration.boldSystemFont =
|
||||
WMGetUDStringForKey(defaults, "BoldSystemFont");
|
||||
WINGsConfiguration.boldSystemFont = WMGetUDStringForKey(defaults, "BoldSystemFont");
|
||||
|
||||
WINGsConfiguration.antialiasedSystemFont =
|
||||
WMGetUDStringForKey(defaults, "AntialiasedSystemFont");
|
||||
WINGsConfiguration.antialiasedText = WMGetUDBoolForKey(defaults, "AntialiasedText");
|
||||
|
||||
WINGsConfiguration.antialiasedBoldSystemFont =
|
||||
WMGetUDStringForKey(defaults, "AntialiasedBoldSystemFont");
|
||||
WINGsConfiguration.doubleClickDelay = WMGetUDIntegerForKey(defaults, "DoubleClickTime");
|
||||
|
||||
#ifdef XFT
|
||||
WINGsConfiguration.antialiasedText =
|
||||
WMGetUDBoolForKey(defaults, "AntialiasedText");
|
||||
#else
|
||||
WINGsConfiguration.antialiasedText = False;
|
||||
#endif
|
||||
|
||||
WINGsConfiguration.useMultiByte = False;
|
||||
str = WMGetUDStringForKey(defaults, "MultiByteText");
|
||||
if (str) {
|
||||
if (strcasecmp(str, "YES") == 0) {
|
||||
WINGsConfiguration.useMultiByte = True;
|
||||
} else if (strcasecmp(str, "AUTO") == 0) {
|
||||
char *locale;
|
||||
|
||||
/* if it's a multibyte language (japanese, chinese or korean)
|
||||
* then set it to True */
|
||||
locale = setlocale(LC_CTYPE, NULL);
|
||||
if (locale != NULL
|
||||
&& (strncmp(locale, "ja", 2) == 0
|
||||
|| strncmp(locale, "zh", 2) == 0
|
||||
|| strncmp(locale, "ru", 2) == 0
|
||||
|| strncmp(locale, "ko", 2) == 0)) {
|
||||
|
||||
WINGsConfiguration.useMultiByte = True;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
WINGsConfiguration.doubleClickDelay =
|
||||
WMGetUDIntegerForKey(defaults, "DoubleClickTime");
|
||||
|
||||
WINGsConfiguration.floppyPath =
|
||||
WMGetUDStringForKey(defaults, "FloppyPath");
|
||||
WINGsConfiguration.floppyPath = WMGetUDStringForKey(defaults, "FloppyPath");
|
||||
|
||||
buttonName = WMGetUDStringForKey(defaults, "MouseWheelUp");
|
||||
if (buttonName) {
|
||||
@@ -174,21 +79,17 @@ W_ReadConfigurations(void)
|
||||
WINGsConfiguration.mouseWheelDown = Button5;
|
||||
}
|
||||
|
||||
WINGsConfiguration.defaultFontSize =
|
||||
WMGetUDIntegerForKey(defaults, "DefaultFontSize");
|
||||
WINGsConfiguration.defaultFontSize = WMGetUDIntegerForKey(defaults, "DefaultFontSize");
|
||||
}
|
||||
|
||||
if (missingOrInvalidXLFD(WINGsConfiguration.systemFont)) {
|
||||
if (!WINGsConfiguration.systemFont) {
|
||||
WINGsConfiguration.systemFont = SYSTEM_FONT;
|
||||
}
|
||||
if (missingOrInvalidXLFD(WINGsConfiguration.boldSystemFont)) {
|
||||
if (!WINGsConfiguration.boldSystemFont) {
|
||||
WINGsConfiguration.boldSystemFont = BOLD_SYSTEM_FONT;
|
||||
}
|
||||
if (missingOrInvalidXLFD(WINGsConfiguration.antialiasedSystemFont)) {
|
||||
WINGsConfiguration.antialiasedSystemFont = XFTSYSTEM_FONT;
|
||||
}
|
||||
if (missingOrInvalidXLFD(WINGsConfiguration.antialiasedBoldSystemFont)) {
|
||||
WINGsConfiguration.antialiasedBoldSystemFont = XFTBOLD_SYSTEM_FONT;
|
||||
if (WINGsConfiguration.defaultFontSize == 0) {
|
||||
WINGsConfiguration.defaultFontSize = DEFAULT_FONT_SIZE;
|
||||
}
|
||||
if (!WINGsConfiguration.floppyPath) {
|
||||
WINGsConfiguration.floppyPath = FLOPPY_PATH;
|
||||
@@ -202,9 +103,5 @@ W_ReadConfigurations(void)
|
||||
if (WINGsConfiguration.mouseWheelDown == 0) {
|
||||
WINGsConfiguration.mouseWheelDown = Button5;
|
||||
}
|
||||
if (WINGsConfiguration.defaultFontSize == 0) {
|
||||
WINGsConfiguration.defaultFontSize = 12;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
* - decide if we want to support connections with external sockets, else
|
||||
@@ -27,7 +26,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include "wconfig.h"
|
||||
|
||||
#include <unistd.h>
|
||||
@@ -48,7 +46,6 @@
|
||||
|
||||
#include "WINGs.h"
|
||||
|
||||
|
||||
/* Some older systems does not define this (linux libc5, maybe others too) */
|
||||
#ifndef SHUT_RDWR
|
||||
# define SHUT_RDWR 2
|
||||
@@ -65,11 +62,13 @@
|
||||
#endif
|
||||
|
||||
/* Stuff for setting the sockets into non-blocking mode. */
|
||||
/*#ifdef __POSIX_SOURCE
|
||||
/*
|
||||
#ifdef __POSIX_SOURCE
|
||||
# define NONBLOCK_OPT O_NONBLOCK
|
||||
#else
|
||||
# define NONBLOCK_OPT FNDELAY
|
||||
#endif*/
|
||||
#endif
|
||||
*/
|
||||
|
||||
#define NONBLOCK_OPT O_NONBLOCK
|
||||
|
||||
@@ -77,8 +76,6 @@
|
||||
|
||||
#define DEF_TIMEOUT 600 /* 600 seconds == 10 minutes */
|
||||
|
||||
|
||||
|
||||
int WCErrorCode = 0;
|
||||
|
||||
static Bool SigInitialized = False;
|
||||
@@ -86,14 +83,11 @@ static Bool SigInitialized = False;
|
||||
static unsigned int DefaultTimeout = DEF_TIMEOUT;
|
||||
static unsigned int OpenTimeout = DEF_TIMEOUT;
|
||||
|
||||
|
||||
|
||||
typedef struct TimeoutData {
|
||||
unsigned timeout;
|
||||
WMHandlerID *handler;
|
||||
} TimeoutData;
|
||||
|
||||
|
||||
typedef struct W_Connection {
|
||||
int sock; /* the socket we speak through */
|
||||
|
||||
@@ -127,18 +121,13 @@ typedef struct W_Connection {
|
||||
|
||||
} W_Connection;
|
||||
|
||||
|
||||
|
||||
static void
|
||||
clearOutputQueue(WMConnection *cPtr)
|
||||
static void clearOutputQueue(WMConnection * cPtr)
|
||||
{
|
||||
cPtr->bufPos = 0;
|
||||
WMEmptyArray(cPtr->outputQueue);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
openTimeout(void *cdata)
|
||||
static void openTimeout(void *cdata)
|
||||
{
|
||||
WMConnection *cPtr = (WMConnection *) cdata;
|
||||
|
||||
@@ -159,9 +148,7 @@ openTimeout(void *cdata)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
sendTimeout(void *cdata)
|
||||
static void sendTimeout(void *cdata)
|
||||
{
|
||||
WMConnection *cPtr = (WMConnection *) cdata;
|
||||
|
||||
@@ -174,6 +161,8 @@ sendTimeout(void *cdata)
|
||||
clearOutputQueue(cPtr);
|
||||
cPtr->state = WCTimedOut;
|
||||
cPtr->timeoutState = WCTWhileSending;
|
||||
/* // should we close it no matter what (after calling the didTimeout
|
||||
// delegate)? -Dan */
|
||||
if (cPtr->delegate && cPtr->delegate->didTimeout) {
|
||||
(*cPtr->delegate->didTimeout) (cPtr->delegate, cPtr);
|
||||
} else {
|
||||
@@ -183,9 +172,7 @@ sendTimeout(void *cdata)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
inputHandler(int fd, int mask, void *clientData)
|
||||
static void inputHandler(int fd, int mask, void *clientData)
|
||||
{
|
||||
WMConnection *cPtr = (WMConnection *) clientData;
|
||||
|
||||
@@ -197,7 +184,7 @@ inputHandler(int fd, int mask, void *clientData)
|
||||
|
||||
if (cPtr->state == WCInProgress) {
|
||||
Bool failed;
|
||||
int len = sizeof(result);
|
||||
socklen_t len = sizeof(result);
|
||||
|
||||
WCErrorCode = 0;
|
||||
if (getsockopt(cPtr->sock, SOL_SOCKET, SO_ERROR,
|
||||
@@ -252,9 +239,7 @@ inputHandler(int fd, int mask, void *clientData)
|
||||
wrelease(cPtr);
|
||||
}
|
||||
|
||||
|
||||
static Bool
|
||||
setSocketNonBlocking(int sock, Bool flag)
|
||||
static Bool setSocketNonBlocking(int sock, Bool flag)
|
||||
{
|
||||
int state;
|
||||
Bool isNonBlock;
|
||||
@@ -286,9 +271,7 @@ setSocketNonBlocking(int sock, Bool flag)
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
setConnectionAddress(WMConnection *cPtr, struct sockaddr_in *socketaddr)
|
||||
static void setConnectionAddress(WMConnection * cPtr, struct sockaddr_in *socketaddr)
|
||||
{
|
||||
wassertr(cPtr->address == NULL);
|
||||
|
||||
@@ -298,9 +281,7 @@ setConnectionAddress(WMConnection *cPtr, struct sockaddr_in *socketaddr)
|
||||
cPtr->protocol = wstrdup("tcp");
|
||||
}
|
||||
|
||||
|
||||
static struct sockaddr_in*
|
||||
getSocketAddress(char* name, char* service, char* protocol)
|
||||
static struct sockaddr_in *getSocketAddress(char *name, char *service, char *protocol)
|
||||
{
|
||||
static struct sockaddr_in socketaddr;
|
||||
struct servent *sp;
|
||||
@@ -356,15 +337,11 @@ getSocketAddress(char* name, char* service, char* protocol)
|
||||
return &socketaddr;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
dummyHandler(int signum)
|
||||
static void dummyHandler(int signum)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static WMConnection*
|
||||
createConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
static WMConnection *createConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
{
|
||||
WMConnection *cPtr;
|
||||
struct sigaction sig_action;
|
||||
@@ -382,8 +359,7 @@ createConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
cPtr->sendTimeout.handler = NULL;
|
||||
cPtr->closeOnRelease = closeOnRelease;
|
||||
cPtr->shutdownOnClose = 1;
|
||||
cPtr->outputQueue =
|
||||
WMCreateArrayWithDestructor(16, (WMFreeDataProc*)WMReleaseData);
|
||||
cPtr->outputQueue = WMCreateArrayWithDestructor(16, (WMFreeDataProc *) WMReleaseData);
|
||||
cPtr->state = WCNotConnected;
|
||||
cPtr->timeoutState = WCTNone;
|
||||
|
||||
@@ -402,10 +378,8 @@ createConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
return cPtr;
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
WMConnection*
|
||||
WMCreateConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
WMConnection *WMCreateConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
{
|
||||
WMConnection *cPtr;
|
||||
struct sockaddr_in clientname;
|
||||
@@ -442,7 +416,6 @@ WMCreateConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* host is the name on which we want to listen for incoming connections,
|
||||
* and it must be a name of this host, or NULL if we want to listen
|
||||
@@ -453,13 +426,12 @@ WMCreateConnectionWithSocket(int sock, Bool closeOnRelease)
|
||||
* protocol is one of "tcp" or "udp". If NULL, "tcp" will be used by default.
|
||||
* currently only "tcp" is supported.
|
||||
*/
|
||||
WMConnection*
|
||||
WMCreateConnectionAsServerAtAddress(char *host, char *service, char *protocol)
|
||||
WMConnection *WMCreateConnectionAsServerAtAddress(char *host, char *service, char *protocol)
|
||||
{
|
||||
WMConnection *cPtr;
|
||||
struct sockaddr_in *socketaddr;
|
||||
socklen_t size;
|
||||
int sock, on;
|
||||
int size;
|
||||
|
||||
WCErrorCode = 0;
|
||||
|
||||
@@ -513,9 +485,7 @@ WMCreateConnectionAsServerAtAddress(char *host, char *service, char *protocol)
|
||||
return cPtr;
|
||||
}
|
||||
|
||||
|
||||
WMConnection*
|
||||
WMCreateConnectionToAddress(char *host, char *service, char *protocol)
|
||||
WMConnection *WMCreateConnectionToAddress(char *host, char *service, char *protocol)
|
||||
{
|
||||
WMConnection *cPtr;
|
||||
struct sockaddr_in *socketaddr;
|
||||
@@ -555,9 +525,7 @@ WMCreateConnectionToAddress(char *host, char *service, char *protocol)
|
||||
return cPtr;
|
||||
}
|
||||
|
||||
|
||||
WMConnection*
|
||||
WMCreateConnectionToAddressAndNotify(char *host, char *service, char *protocol)
|
||||
WMConnection *WMCreateConnectionToAddressAndNotify(char *host, char *service, char *protocol)
|
||||
{
|
||||
WMConnection *cPtr;
|
||||
struct sockaddr_in *socketaddr;
|
||||
@@ -595,20 +563,16 @@ WMCreateConnectionToAddressAndNotify(char *host, char *service, char *protocol)
|
||||
cPtr->state = WCInProgress;
|
||||
cPtr->isNonBlocking = isNonBlocking;
|
||||
|
||||
cPtr->handler.write = WMAddInputHandler(cPtr->sock, WIWriteMask,
|
||||
inputHandler, cPtr);
|
||||
cPtr->handler.write = WMAddInputHandler(cPtr->sock, WIWriteMask, inputHandler, cPtr);
|
||||
|
||||
cPtr->openTimeout.handler =
|
||||
WMAddTimerHandler(cPtr->openTimeout.timeout*1000, openTimeout, cPtr);
|
||||
cPtr->openTimeout.handler = WMAddTimerHandler(cPtr->openTimeout.timeout * 1000, openTimeout, cPtr);
|
||||
|
||||
setConnectionAddress(cPtr, socketaddr);
|
||||
|
||||
return cPtr;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
removeAllHandlers(WMConnection *cPtr)
|
||||
static void removeAllHandlers(WMConnection * cPtr)
|
||||
{
|
||||
if (cPtr->handler.read)
|
||||
WMDeleteInputHandler(cPtr->handler.read);
|
||||
@@ -628,9 +592,7 @@ removeAllHandlers(WMConnection *cPtr)
|
||||
cPtr->sendTimeout.handler = NULL;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMDestroyConnection(WMConnection *cPtr)
|
||||
void WMDestroyConnection(WMConnection * cPtr)
|
||||
{
|
||||
if (cPtr->closeOnRelease && cPtr->sock >= 0) {
|
||||
if (cPtr->shutdownOnClose) {
|
||||
@@ -651,9 +613,7 @@ WMDestroyConnection(WMConnection *cPtr)
|
||||
wrelease(cPtr);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMCloseConnection(WMConnection *cPtr)
|
||||
void WMCloseConnection(WMConnection * cPtr)
|
||||
{
|
||||
if (cPtr->sock >= 0) {
|
||||
if (cPtr->shutdownOnClose) {
|
||||
@@ -669,12 +629,10 @@ WMCloseConnection(WMConnection *cPtr)
|
||||
cPtr->state = WCClosed;
|
||||
}
|
||||
|
||||
|
||||
WMConnection*
|
||||
WMAcceptConnection(WMConnection *listener)
|
||||
WMConnection *WMAcceptConnection(WMConnection * listener)
|
||||
{
|
||||
struct sockaddr_in clientname;
|
||||
int size;
|
||||
socklen_t size;
|
||||
int newSock;
|
||||
WMConnection *newConnection;
|
||||
|
||||
@@ -696,51 +654,37 @@ WMAcceptConnection(WMConnection *listener)
|
||||
return newConnection;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
WMGetConnectionAddress(WMConnection *cPtr)
|
||||
char *WMGetConnectionAddress(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->address;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
WMGetConnectionService(WMConnection *cPtr)
|
||||
char *WMGetConnectionService(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->service;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
WMGetConnectionProtocol(WMConnection *cPtr)
|
||||
char *WMGetConnectionProtocol(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->protocol;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetConnectionSocket(WMConnection *cPtr)
|
||||
int WMGetConnectionSocket(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->sock;
|
||||
}
|
||||
|
||||
|
||||
WMConnectionState
|
||||
WMGetConnectionState(WMConnection *cPtr)
|
||||
WMConnectionState WMGetConnectionState(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->state;
|
||||
}
|
||||
|
||||
|
||||
WMConnectionTimeoutState
|
||||
WMGetConnectionTimeoutState(WMConnection *cPtr)
|
||||
WMConnectionTimeoutState WMGetConnectionTimeoutState(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->timeoutState;
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMEnqueueConnectionData(WMConnection *cPtr, WMData *data)
|
||||
Bool WMEnqueueConnectionData(WMConnection * cPtr, WMData * data)
|
||||
{
|
||||
wassertrv(cPtr->state != WCNotConnected && cPtr->state != WCListening, False);
|
||||
wassertrv(cPtr->state != WCInProgress && cPtr->state != WCFailed, False);
|
||||
@@ -752,7 +696,6 @@ WMEnqueueConnectionData(WMConnection *cPtr, WMData *data)
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Return value:
|
||||
* -1 - not connected or connection died while sending
|
||||
@@ -761,8 +704,7 @@ WMEnqueueConnectionData(WMConnection *cPtr, WMData *data)
|
||||
* callback will be called.
|
||||
* 1 - data was succesfully sent
|
||||
*/
|
||||
int
|
||||
WMSendConnectionData(WMConnection *cPtr, WMData *data)
|
||||
int WMSendConnectionData(WMConnection * cPtr, WMData * data)
|
||||
{
|
||||
int bytes, pos, len;
|
||||
TimeoutData *tPtr = &cPtr->sendTimeout;
|
||||
@@ -806,8 +748,7 @@ WMSendConnectionData(WMConnection *cPtr, WMData *data)
|
||||
}
|
||||
if (!cPtr->handler.write) {
|
||||
cPtr->handler.write =
|
||||
WMAddInputHandler(cPtr->sock, WIWriteMask,
|
||||
inputHandler, cPtr);
|
||||
WMAddInputHandler(cPtr->sock, WIWriteMask, inputHandler, cPtr);
|
||||
}
|
||||
return 0;
|
||||
default:
|
||||
@@ -841,7 +782,6 @@ WMSendConnectionData(WMConnection *cPtr, WMData *data)
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* WMGetConnectionAvailableData(connection):
|
||||
*
|
||||
@@ -854,8 +794,7 @@ WMSendConnectionData(WMConnection *cPtr, WMData *data)
|
||||
* Also trying to read from an already died or closed connection is
|
||||
* considered to be an error condition, and will return NULL.
|
||||
*/
|
||||
WMData*
|
||||
WMGetConnectionAvailableData(WMConnection *cPtr)
|
||||
WMData *WMGetConnectionAvailableData(WMConnection * cPtr)
|
||||
{
|
||||
char buffer[NETBUF_SIZE];
|
||||
int nbytes;
|
||||
@@ -898,9 +837,7 @@ again:
|
||||
return aData;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetConnectionDelegate(WMConnection *cPtr, ConnectionDelegate *delegate)
|
||||
void WMSetConnectionDelegate(WMConnection * cPtr, ConnectionDelegate * delegate)
|
||||
{
|
||||
wassertr(cPtr->sock >= 0);
|
||||
/* Don't try to set the delegate multiple times */
|
||||
@@ -908,17 +845,13 @@ WMSetConnectionDelegate(WMConnection *cPtr, ConnectionDelegate *delegate)
|
||||
|
||||
cPtr->delegate = delegate;
|
||||
if (delegate && delegate->didReceiveInput && !cPtr->handler.read)
|
||||
cPtr->handler.read = WMAddInputHandler(cPtr->sock, WIReadMask,
|
||||
inputHandler, cPtr);
|
||||
cPtr->handler.read = WMAddInputHandler(cPtr->sock, WIReadMask, inputHandler, cPtr);
|
||||
if (delegate && delegate->didCatchException && !cPtr->handler.exception)
|
||||
cPtr->handler.exception = WMAddInputHandler(cPtr->sock, WIExceptMask,
|
||||
inputHandler, cPtr);
|
||||
cPtr->handler.exception = WMAddInputHandler(cPtr->sock, WIExceptMask, inputHandler, cPtr);
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
Bool
|
||||
WMIsConnectionNonBlocking(WMConnection *cPtr)
|
||||
Bool WMIsConnectionNonBlocking(WMConnection * cPtr)
|
||||
{
|
||||
#if 1
|
||||
int state;
|
||||
@@ -939,9 +872,7 @@ WMIsConnectionNonBlocking(WMConnection *cPtr)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Bool
|
||||
WMSetConnectionNonBlocking(WMConnection *cPtr, Bool flag)
|
||||
Bool WMSetConnectionNonBlocking(WMConnection * cPtr, Bool flag)
|
||||
{
|
||||
wassertrv(cPtr != NULL && cPtr->sock >= 0, False);
|
||||
|
||||
@@ -958,9 +889,7 @@ WMSetConnectionNonBlocking(WMConnection *cPtr, Bool flag)
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMSetConnectionCloseOnExec(WMConnection *cPtr, Bool flag)
|
||||
Bool WMSetConnectionCloseOnExec(WMConnection * cPtr, Bool flag)
|
||||
{
|
||||
wassertrv(cPtr != NULL && cPtr->sock >= 0, False);
|
||||
|
||||
@@ -971,51 +900,37 @@ WMSetConnectionCloseOnExec(WMConnection *cPtr, Bool flag)
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetConnectionShutdownOnClose(WMConnection *cPtr, Bool flag)
|
||||
void WMSetConnectionShutdownOnClose(WMConnection * cPtr, Bool flag)
|
||||
{
|
||||
cPtr->shutdownOnClose = ((flag == 0) ? 0 : 1);
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMGetConnectionClientData(WMConnection *cPtr)
|
||||
void *WMGetConnectionClientData(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->clientData;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetConnectionClientData(WMConnection *cPtr, void *data)
|
||||
void WMSetConnectionClientData(WMConnection * cPtr, void *data)
|
||||
{
|
||||
cPtr->clientData = data;
|
||||
}
|
||||
|
||||
|
||||
unsigned int
|
||||
WMGetConnectionFlags(WMConnection *cPtr)
|
||||
unsigned int WMGetConnectionFlags(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->uflags;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetConnectionFlags(WMConnection *cPtr, unsigned int flags)
|
||||
void WMSetConnectionFlags(WMConnection * cPtr, unsigned int flags)
|
||||
{
|
||||
cPtr->uflags = flags;
|
||||
}
|
||||
|
||||
|
||||
WMArray*
|
||||
WMGetConnectionUnsentData(WMConnection *cPtr)
|
||||
WMArray *WMGetConnectionUnsentData(WMConnection * cPtr)
|
||||
{
|
||||
return cPtr->outputQueue;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetConnectionDefaultTimeout(unsigned int timeout)
|
||||
void WMSetConnectionDefaultTimeout(unsigned int timeout)
|
||||
{
|
||||
if (timeout == 0) {
|
||||
DefaultTimeout = DEF_TIMEOUT;
|
||||
@@ -1024,9 +939,7 @@ WMSetConnectionDefaultTimeout(unsigned int timeout)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetConnectionOpenTimeout(unsigned int timeout)
|
||||
void WMSetConnectionOpenTimeout(unsigned int timeout)
|
||||
{
|
||||
if (timeout == 0) {
|
||||
OpenTimeout = DefaultTimeout;
|
||||
@@ -1035,9 +948,7 @@ WMSetConnectionOpenTimeout(unsigned int timeout)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetConnectionSendTimeout(WMConnection *cPtr, unsigned int timeout)
|
||||
void WMSetConnectionSendTimeout(WMConnection * cPtr, unsigned int timeout)
|
||||
{
|
||||
if (timeout == 0) {
|
||||
cPtr->sendTimeout.timeout = DefaultTimeout;
|
||||
@@ -1045,5 +956,3 @@ WMSetConnectionSendTimeout(WMConnection *cPtr, unsigned int timeout)
|
||||
cPtr->sendTimeout.timeout = timeout;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
113
WINGs/data.c
113
WINGs/data.c
@@ -18,12 +18,9 @@
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <string.h>
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
typedef struct W_Data {
|
||||
unsigned length; /* How many bytes we have */
|
||||
unsigned capacity; /* How many bytes it can hold */
|
||||
@@ -34,13 +31,9 @@ typedef struct W_Data {
|
||||
int format; /* 0, 8, 16 or 32 */
|
||||
} W_Data;
|
||||
|
||||
|
||||
|
||||
|
||||
/* Creating and destroying data objects */
|
||||
|
||||
WMData*
|
||||
WMCreateDataWithCapacity(unsigned capacity)
|
||||
WMData *WMCreateDataWithCapacity(unsigned capacity)
|
||||
{
|
||||
WMData *aData;
|
||||
|
||||
@@ -61,9 +54,7 @@ WMCreateDataWithCapacity(unsigned capacity)
|
||||
return aData;
|
||||
}
|
||||
|
||||
|
||||
WMData*
|
||||
WMCreateDataWithLength(unsigned length)
|
||||
WMData *WMCreateDataWithLength(unsigned length)
|
||||
{
|
||||
WMData *aData;
|
||||
|
||||
@@ -76,9 +67,7 @@ WMCreateDataWithLength(unsigned length)
|
||||
return aData;
|
||||
}
|
||||
|
||||
|
||||
WMData*
|
||||
WMCreateDataWithBytes(void *bytes, unsigned length)
|
||||
WMData *WMCreateDataWithBytes(void *bytes, unsigned length)
|
||||
{
|
||||
WMData *aData;
|
||||
|
||||
@@ -89,10 +78,7 @@ WMCreateDataWithBytes(void *bytes, unsigned length)
|
||||
return aData;
|
||||
}
|
||||
|
||||
|
||||
WMData*
|
||||
WMCreateDataWithBytesNoCopy(void *bytes, unsigned length,
|
||||
WMFreeDataProc *destructor)
|
||||
WMData *WMCreateDataWithBytesNoCopy(void *bytes, unsigned length, WMFreeDataProc * destructor)
|
||||
{
|
||||
WMData *aData;
|
||||
|
||||
@@ -108,9 +94,7 @@ WMCreateDataWithBytesNoCopy(void *bytes, unsigned length,
|
||||
return aData;
|
||||
}
|
||||
|
||||
|
||||
WMData*
|
||||
WMCreateDataWithData(WMData *aData)
|
||||
WMData *WMCreateDataWithData(WMData * aData)
|
||||
{
|
||||
WMData *newData;
|
||||
|
||||
@@ -124,17 +108,13 @@ WMCreateDataWithData(WMData *aData)
|
||||
return newData;
|
||||
}
|
||||
|
||||
|
||||
WMData*
|
||||
WMRetainData(WMData *aData)
|
||||
WMData *WMRetainData(WMData * aData)
|
||||
{
|
||||
aData->retainCount++;
|
||||
return aData;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMReleaseData(WMData *aData)
|
||||
void WMReleaseData(WMData * aData)
|
||||
{
|
||||
aData->retainCount--;
|
||||
if (aData->retainCount > 0)
|
||||
@@ -145,12 +125,9 @@ WMReleaseData(WMData *aData)
|
||||
wfree(aData);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Adjusting capacity */
|
||||
|
||||
void
|
||||
WMSetDataCapacity(WMData *aData, unsigned capacity)
|
||||
void WMSetDataCapacity(WMData * aData, unsigned capacity)
|
||||
{
|
||||
if (aData->capacity != capacity) {
|
||||
aData->bytes = wrealloc(aData->bytes, capacity);
|
||||
@@ -162,62 +139,47 @@ WMSetDataCapacity(WMData *aData, unsigned capacity)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetDataLength(WMData *aData, unsigned length)
|
||||
void WMSetDataLength(WMData * aData, unsigned length)
|
||||
{
|
||||
if (length > aData->capacity) {
|
||||
WMSetDataCapacity(aData, length);
|
||||
}
|
||||
if (length > aData->length) {
|
||||
memset((unsigned char*)aData->bytes + aData->length, 0,
|
||||
length - aData->length);
|
||||
memset((unsigned char *)aData->bytes + aData->length, 0, length - aData->length);
|
||||
}
|
||||
aData->length = length;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetDataFormat(WMData *aData, unsigned format)
|
||||
void WMSetDataFormat(WMData * aData, unsigned format)
|
||||
{
|
||||
aData->format = format;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMIncreaseDataLengthBy(WMData *aData, unsigned extraLength)
|
||||
void WMIncreaseDataLengthBy(WMData * aData, unsigned extraLength)
|
||||
{
|
||||
WMSetDataLength(aData, aData->length + extraLength);
|
||||
}
|
||||
|
||||
|
||||
/* Accessing data */
|
||||
|
||||
const void*
|
||||
WMDataBytes(WMData *aData)
|
||||
const void *WMDataBytes(WMData * aData)
|
||||
{
|
||||
return aData->bytes;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMGetDataBytes(WMData *aData, void *buffer)
|
||||
void WMGetDataBytes(WMData * aData, void *buffer)
|
||||
{
|
||||
wassertr(aData->length > 0);
|
||||
|
||||
memcpy(buffer, aData->bytes, aData->length);
|
||||
}
|
||||
|
||||
|
||||
unsigned
|
||||
WMGetDataFormat(WMData *aData)
|
||||
unsigned WMGetDataFormat(WMData * aData)
|
||||
{
|
||||
return aData->format;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMGetDataBytesWithLength(WMData *aData, void *buffer, unsigned length)
|
||||
void WMGetDataBytesWithLength(WMData * aData, void *buffer, unsigned length)
|
||||
{
|
||||
wassertr(aData->length > 0);
|
||||
wassertr(length <= aData->length);
|
||||
@@ -225,20 +187,15 @@ WMGetDataBytesWithLength(WMData *aData, void *buffer, unsigned length)
|
||||
memcpy(buffer, aData->bytes, length);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMGetDataBytesWithRange(WMData *aData, void *buffer, WMRange aRange)
|
||||
void WMGetDataBytesWithRange(WMData * aData, void *buffer, WMRange aRange)
|
||||
{
|
||||
wassertr(aRange.position < aData->length);
|
||||
wassertr(aRange.count <= aData->length - aRange.position);
|
||||
|
||||
memcpy(buffer, (unsigned char*)aData->bytes + aRange.position,
|
||||
aRange.count);
|
||||
memcpy(buffer, (unsigned char *)aData->bytes + aRange.position, aRange.count);
|
||||
}
|
||||
|
||||
|
||||
WMData*
|
||||
WMGetSubdataWithRange(WMData *aData, WMRange aRange)
|
||||
WMData *WMGetSubdataWithRange(WMData * aData, WMRange aRange)
|
||||
{
|
||||
void *buffer;
|
||||
WMData *newData;
|
||||
@@ -254,11 +211,9 @@ WMGetSubdataWithRange(WMData *aData, WMRange aRange)
|
||||
return newData;
|
||||
}
|
||||
|
||||
|
||||
/* Testing data */
|
||||
|
||||
Bool
|
||||
WMIsDataEqualToData(WMData *aData, WMData *anotherData)
|
||||
Bool WMIsDataEqualToData(WMData * aData, WMData * anotherData)
|
||||
{
|
||||
if (aData->length != anotherData->length)
|
||||
return False;
|
||||
@@ -269,17 +224,13 @@ WMIsDataEqualToData(WMData *aData, WMData *anotherData)
|
||||
return (memcmp(aData->bytes, anotherData->bytes, aData->length) == 0);
|
||||
}
|
||||
|
||||
|
||||
unsigned
|
||||
WMGetDataLength(WMData *aData)
|
||||
unsigned WMGetDataLength(WMData * aData)
|
||||
{
|
||||
return aData->length;
|
||||
}
|
||||
|
||||
|
||||
/* Adding data */
|
||||
void
|
||||
WMAppendDataBytes(WMData *aData, void *bytes, unsigned length)
|
||||
void WMAppendDataBytes(WMData * aData, void *bytes, unsigned length)
|
||||
{
|
||||
unsigned oldLength = aData->length;
|
||||
unsigned newLength = oldLength + length;
|
||||
@@ -301,20 +252,15 @@ WMAppendDataBytes(WMData *aData, void *bytes, unsigned length)
|
||||
aData->length = newLength;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMAppendData(WMData *aData, WMData *anotherData)
|
||||
void WMAppendData(WMData * aData, WMData * anotherData)
|
||||
{
|
||||
if (anotherData->length > 0)
|
||||
WMAppendDataBytes(aData, anotherData->bytes, anotherData->length);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Modifying data */
|
||||
|
||||
void
|
||||
WMReplaceDataBytesInRange(WMData *aData, WMRange aRange, void *bytes)
|
||||
void WMReplaceDataBytesInRange(WMData * aData, WMRange aRange, void *bytes)
|
||||
{
|
||||
wassertr(aRange.position < aData->length);
|
||||
wassertr(aRange.count <= aData->length - aRange.position);
|
||||
@@ -322,9 +268,7 @@ WMReplaceDataBytesInRange(WMData *aData, WMRange aRange, void *bytes)
|
||||
memcpy((unsigned char *)aData->bytes + aRange.position, bytes, aRange.count);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMResetDataBytesInRange(WMData *aData, WMRange aRange)
|
||||
void WMResetDataBytesInRange(WMData * aData, WMRange aRange)
|
||||
{
|
||||
wassertr(aRange.position < aData->length);
|
||||
wassertr(aRange.count <= aData->length - aRange.position);
|
||||
@@ -332,9 +276,7 @@ WMResetDataBytesInRange(WMData *aData, WMRange aRange)
|
||||
memset((unsigned char *)aData->bytes + aRange.position, 0, aRange.count);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetData(WMData *aData, WMData *anotherData)
|
||||
void WMSetData(WMData * aData, WMData * anotherData)
|
||||
{
|
||||
unsigned length = anotherData->length;
|
||||
|
||||
@@ -344,7 +286,4 @@ WMSetData(WMData *aData, WMData *anotherData)
|
||||
aData->length = length;
|
||||
}
|
||||
|
||||
|
||||
/* Storing data */
|
||||
|
||||
|
||||
|
||||
255
WINGs/dragcommon.c
Normal file
255
WINGs/dragcommon.c
Normal file
@@ -0,0 +1,255 @@
|
||||
|
||||
#include "WINGsP.h"
|
||||
|
||||
#define XDND_SOURCE_VERSION(dragInfo) dragInfo->protocolVersion
|
||||
#define XDND_DEST_INFO(dragInfo) dragInfo->destInfo
|
||||
#define XDND_DEST_VIEW(dragInfo) dragInfo->destInfo->destView
|
||||
|
||||
static Bool _WindowExists;
|
||||
|
||||
Atom W_OperationToAction(WMScreen * scr, WMDragOperationType operation)
|
||||
{
|
||||
switch (operation) {
|
||||
case WDOperationNone:
|
||||
return None;
|
||||
|
||||
case WDOperationCopy:
|
||||
return scr->xdndActionCopy;
|
||||
|
||||
case WDOperationMove:
|
||||
return scr->xdndActionMove;
|
||||
|
||||
case WDOperationLink:
|
||||
return scr->xdndActionLink;
|
||||
|
||||
case WDOperationAsk:
|
||||
return scr->xdndActionAsk;
|
||||
|
||||
case WDOperationPrivate:
|
||||
return scr->xdndActionPrivate;
|
||||
|
||||
default:
|
||||
return None;
|
||||
}
|
||||
}
|
||||
|
||||
WMDragOperationType W_ActionToOperation(WMScreen * scr, Atom action)
|
||||
{
|
||||
if (action == scr->xdndActionCopy) {
|
||||
return WDOperationCopy;
|
||||
|
||||
} else if (action == scr->xdndActionMove) {
|
||||
return WDOperationMove;
|
||||
|
||||
} else if (action == scr->xdndActionLink) {
|
||||
return WDOperationLink;
|
||||
|
||||
} else if (action == scr->xdndActionAsk) {
|
||||
return WDOperationAsk;
|
||||
|
||||
} else if (action == scr->xdndActionPrivate) {
|
||||
return WDOperationPrivate;
|
||||
|
||||
} else if (action == None) {
|
||||
|
||||
return WDOperationNone;
|
||||
} else {
|
||||
char *tmp = XGetAtomName(scr->display, action);
|
||||
|
||||
wwarning("unknown XDND action %s ", tmp);
|
||||
XFree(tmp);
|
||||
|
||||
return WDOperationCopy;
|
||||
}
|
||||
}
|
||||
|
||||
static void freeDragOperationItem(void *item)
|
||||
{
|
||||
wfree(item);
|
||||
}
|
||||
|
||||
WMArray *WMCreateDragOperationArray(int initialSize)
|
||||
{
|
||||
return WMCreateArrayWithDestructor(initialSize, freeDragOperationItem);
|
||||
}
|
||||
|
||||
WMDragOperationItem *WMCreateDragOperationItem(WMDragOperationType type, char *text)
|
||||
{
|
||||
W_DragOperationItem *result = wmalloc(sizeof(W_DragOperationItem));
|
||||
|
||||
result->type = type;
|
||||
result->text = text;
|
||||
|
||||
return (WMDragOperationItem *) result;
|
||||
}
|
||||
|
||||
WMDragOperationType WMGetDragOperationItemType(WMDragOperationItem * item)
|
||||
{
|
||||
return ((W_DragOperationItem *) item)->type;
|
||||
}
|
||||
|
||||
char *WMGetDragOperationItemText(WMDragOperationItem * item)
|
||||
{
|
||||
return ((W_DragOperationItem *) item)->text;
|
||||
}
|
||||
|
||||
static int handleNoWindowXError(Display * dpy, XErrorEvent * errEvt)
|
||||
{
|
||||
if (errEvt->error_code == BadWindow || errEvt->error_code == BadDrawable) {
|
||||
_WindowExists = False;
|
||||
return Success;
|
||||
}
|
||||
|
||||
return errEvt->error_code;
|
||||
}
|
||||
|
||||
static Bool windowExists(Display * dpy, Window win)
|
||||
{
|
||||
void *previousErrorHandler;
|
||||
XWindowAttributes attr;
|
||||
|
||||
XSynchronize(dpy, True);
|
||||
previousErrorHandler = XSetErrorHandler(handleNoWindowXError);
|
||||
_WindowExists = True;
|
||||
|
||||
/* can generate BadDrawable or BadWindow */
|
||||
XGetWindowAttributes(dpy, win, &attr);
|
||||
|
||||
XSetErrorHandler(previousErrorHandler);
|
||||
XSynchronize(dpy, False);
|
||||
return _WindowExists;
|
||||
}
|
||||
|
||||
Bool
|
||||
W_SendDnDClientMessage(Display * dpy, Window win, Atom message,
|
||||
unsigned long data0,
|
||||
unsigned long data1, unsigned long data2, unsigned long data3, unsigned long data4)
|
||||
{
|
||||
XEvent ev;
|
||||
|
||||
#ifdef XDND_DEBUG
|
||||
char *msgName = XGetAtomName(dpy, message);
|
||||
|
||||
printf("sending message %s ... ", msgName);
|
||||
XFree(msgName);
|
||||
#endif
|
||||
|
||||
if (!windowExists(dpy, win)) {
|
||||
wwarning("xdnd message target %d does no longer exist.", win);
|
||||
return False; /* message not sent */
|
||||
}
|
||||
|
||||
ev.type = ClientMessage;
|
||||
ev.xclient.message_type = message;
|
||||
ev.xclient.format = 32;
|
||||
ev.xclient.window = win;
|
||||
ev.xclient.data.l[0] = data0;
|
||||
ev.xclient.data.l[1] = data1;
|
||||
ev.xclient.data.l[2] = data2;
|
||||
ev.xclient.data.l[3] = data3;
|
||||
ev.xclient.data.l[4] = data4;
|
||||
|
||||
XSendEvent(dpy, win, False, 0, &ev);
|
||||
XFlush(dpy);
|
||||
|
||||
#ifdef XDND_DEBUG
|
||||
printf("sent\n");
|
||||
#endif
|
||||
return True; /* message sent */
|
||||
}
|
||||
|
||||
static void handleLeaveMessage(WMDraggingInfo * info)
|
||||
{
|
||||
if (XDND_DEST_INFO(info) != NULL) {
|
||||
/* XDND_DEST_VIEW is never NULL (it's the xdnd aware view) */
|
||||
wassertr(XDND_DEST_VIEW(info) != NULL);
|
||||
if (XDND_DEST_VIEW(info)->dragDestinationProcs != NULL) {
|
||||
XDND_DEST_VIEW(info)->dragDestinationProcs->concludeDragOperation(XDND_DEST_VIEW(info));
|
||||
}
|
||||
W_DragDestinationInfoClear(info);
|
||||
}
|
||||
}
|
||||
|
||||
void W_HandleDNDClientMessage(WMView * toplevel, XClientMessageEvent * event)
|
||||
{
|
||||
WMScreen *scr = W_VIEW_SCREEN(toplevel);
|
||||
WMDraggingInfo *info = &scr->dragInfo;
|
||||
Atom messageType = event->message_type;
|
||||
|
||||
#ifdef XDND_DEBUG
|
||||
{
|
||||
char *msgTypeName = XGetAtomName(scr->display, messageType);
|
||||
|
||||
if (msgTypeName != NULL)
|
||||
printf("event type = %s\n", msgTypeName);
|
||||
else
|
||||
printf("pb with event type !\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Messages from destination to source */
|
||||
if (messageType == scr->xdndStatusAtom || messageType == scr->xdndFinishedAtom) {
|
||||
W_DragSourceStopTimer();
|
||||
W_DragSourceStateHandler(info, event);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Messages from source to destination */
|
||||
if (messageType == scr->xdndEnterAtom) {
|
||||
Bool positionSent = (XDND_DEST_INFO(info) != NULL);
|
||||
|
||||
W_DragDestinationStopTimer();
|
||||
W_DragDestinationStoreEnterMsgInfo(info, toplevel, event);
|
||||
|
||||
/* Xdnd version 3 and up are not compatible with version 1 or 2 */
|
||||
if (XDND_SOURCE_VERSION(info) > 2) {
|
||||
|
||||
if (positionSent) {
|
||||
/* xdndPosition previously received on xdnd aware view */
|
||||
W_DragDestinationStateHandler(info, event);
|
||||
return;
|
||||
} else {
|
||||
W_DragDestinationStartTimer(info);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
wwarning("received dnd enter msg with unsupported version %i", XDND_SOURCE_VERSION(info));
|
||||
W_DragDestinationCancelDropOnEnter(toplevel, info);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (messageType == scr->xdndPositionAtom) {
|
||||
W_DragDestinationStopTimer();
|
||||
W_DragDestinationStorePositionMsgInfo(info, toplevel, event);
|
||||
W_DragDestinationStateHandler(info, event);
|
||||
return;
|
||||
}
|
||||
|
||||
if (messageType == scr->xdndSelectionAtom || messageType == scr->xdndDropAtom) {
|
||||
W_DragDestinationStopTimer();
|
||||
W_DragDestinationStateHandler(info, event);
|
||||
return;
|
||||
}
|
||||
|
||||
if (messageType == scr->xdndLeaveAtom) {
|
||||
/* conclude drop operation, and clear dragging info */
|
||||
W_DragDestinationStopTimer();
|
||||
handleLeaveMessage(info);
|
||||
}
|
||||
}
|
||||
|
||||
/* called in destroyView (wview.c) */
|
||||
void W_FreeViewXdndPart(WMView * view)
|
||||
{
|
||||
WMUnregisterViewDraggedTypes(view);
|
||||
|
||||
if (view->dragSourceProcs)
|
||||
wfree(view->dragSourceProcs);
|
||||
|
||||
if (view->dragDestinationProcs)
|
||||
wfree(view->dragDestinationProcs);
|
||||
|
||||
if (view->dragImage)
|
||||
WMReleasePixmap(view->dragImage);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
2044
WINGs/dragsource.c
2044
WINGs/dragsource.c
File diff suppressed because it is too large
Load Diff
@@ -18,7 +18,6 @@
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
#include "wconfig.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -29,15 +28,12 @@
|
||||
|
||||
extern char *_WINGS_progname;
|
||||
|
||||
|
||||
#define MAXLINE 1024
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* Returns the system error message associated with error code 'errnum'
|
||||
*********************************************************************/
|
||||
char*
|
||||
wstrerror(int errnum)
|
||||
char *wstrerror(int errnum)
|
||||
{
|
||||
#if defined(HAVE_STRERROR)
|
||||
return strerror(errnum);
|
||||
@@ -51,25 +47,23 @@ wstrerror(int errnum)
|
||||
if (errno < sys_nerr)
|
||||
return sys_errlist[errnum];
|
||||
|
||||
sprintf (buf, _("Unknown error %d"), errnum);
|
||||
snprintf(buf, sizeof(buf), _("Unknown error %d"), errnum);
|
||||
return buf;
|
||||
#else /* no strerror() and no sys_errlist[] */
|
||||
static char buf[] = "Error 12345678901234567890";
|
||||
|
||||
sprintf(buf, _("Error %d"), errnum);
|
||||
snprintf(buf, sizeof(buf), _("Error %d"), errnum);
|
||||
return buf;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* Prints a message with variable arguments
|
||||
*
|
||||
* msg - message to print with optional formatting
|
||||
* ... - arguments to use on formatting
|
||||
*********************************************************************/
|
||||
void
|
||||
wmessage(const char *msg, ...)
|
||||
void wmessage(const char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[MAXLINE];
|
||||
@@ -88,15 +82,13 @@ wmessage(const char *msg, ...)
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* Prints a warning message with variable arguments
|
||||
*
|
||||
* msg - message to print with optional formatting
|
||||
* ... - arguments to use on formatting
|
||||
*********************************************************************/
|
||||
void
|
||||
wwarning(const char *msg, ...)
|
||||
void wwarning(const char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[MAXLINE];
|
||||
@@ -115,15 +107,13 @@ wwarning(const char *msg, ...)
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* Prints a fatal error message with variable arguments and terminates
|
||||
*
|
||||
* msg - message to print with optional formatting
|
||||
* ... - arguments to use on formatting
|
||||
**************************************************************************/
|
||||
void
|
||||
wfatal(const char *msg, ...)
|
||||
void wfatal(const char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[MAXLINE];
|
||||
@@ -142,15 +132,13 @@ wfatal(const char *msg, ...)
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* Prints a system error message with variable arguments
|
||||
*
|
||||
* msg - message to print with optional formatting
|
||||
* ... - arguments to use on formatting
|
||||
*********************************************************************/
|
||||
void
|
||||
wsyserror(const char *msg, ...)
|
||||
void wsyserror(const char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[MAXLINE];
|
||||
@@ -170,7 +158,6 @@ wsyserror(const char *msg, ...)
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* Prints a system error message with variable arguments, being given
|
||||
* the error code.
|
||||
@@ -179,8 +166,7 @@ wsyserror(const char *msg, ...)
|
||||
* msg - message to print with optional formatting
|
||||
* ... - arguments to use on formatting
|
||||
*********************************************************************/
|
||||
void
|
||||
wsyserrorwithcode(int error, const char *msg, ...)
|
||||
void wsyserrorwithcode(int error, const char *msg, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[MAXLINE];
|
||||
@@ -198,5 +184,3 @@ wsyserrorwithcode(int error, const char *msg, ...)
|
||||
fflush(stdout);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
#include "wconfig.h"
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
@@ -33,9 +33,7 @@
|
||||
#define PATH_MAX 1024
|
||||
#endif
|
||||
|
||||
|
||||
char*
|
||||
wgethomedir()
|
||||
char *wgethomedir()
|
||||
{
|
||||
char *home = getenv("HOME");
|
||||
struct passwd *user;
|
||||
@@ -55,9 +53,7 @@ wgethomedir()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
getuserhomedir(char *username)
|
||||
static char *getuserhomedir(char *username)
|
||||
{
|
||||
struct passwd *user;
|
||||
|
||||
@@ -73,12 +69,9 @@ getuserhomedir(char *username)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
char*
|
||||
wexpandpath(char *path)
|
||||
char *wexpandpath(char *path)
|
||||
{
|
||||
char *origpath = path;
|
||||
char buffer2[PATH_MAX + 2];
|
||||
char buffer[PATH_MAX + 2];
|
||||
int i;
|
||||
@@ -91,25 +84,29 @@ wexpandpath(char *path)
|
||||
path++;
|
||||
if (*path == '/' || *path == 0) {
|
||||
home = wgethomedir();
|
||||
if (strlen(home) > PATH_MAX)
|
||||
goto error;
|
||||
strcat(buffer, home);
|
||||
} else {
|
||||
int j;
|
||||
j = 0;
|
||||
while (*path != 0 && *path != '/') {
|
||||
if (j > PATH_MAX)
|
||||
goto error;
|
||||
buffer2[j++] = *path;
|
||||
buffer2[j] = 0;
|
||||
path++;
|
||||
}
|
||||
home = getuserhomedir(buffer2);
|
||||
if (!home)
|
||||
return NULL;
|
||||
if (!home || strlen(home) > PATH_MAX)
|
||||
goto error;
|
||||
strcat(buffer, home);
|
||||
}
|
||||
}
|
||||
|
||||
i = strlen(buffer);
|
||||
|
||||
while (*path!=0) {
|
||||
while (*path != 0 && i <= PATH_MAX) {
|
||||
char *tmp;
|
||||
|
||||
if (*path == '$') {
|
||||
@@ -119,35 +116,50 @@ wexpandpath(char *path)
|
||||
if (*path == '(') {
|
||||
path++;
|
||||
while (*path != 0 && *path != ')') {
|
||||
if (j > PATH_MAX)
|
||||
goto error;
|
||||
buffer2[j++] = *(path++);
|
||||
buffer2[j] = 0;
|
||||
}
|
||||
if (*path==')')
|
||||
if (*path == ')') {
|
||||
path++;
|
||||
tmp = getenv(buffer2);
|
||||
} else {
|
||||
tmp = NULL;
|
||||
}
|
||||
if (!tmp) {
|
||||
if ((i += strlen(buffer2) + 2) > PATH_MAX)
|
||||
goto error;
|
||||
buffer[i] = 0;
|
||||
strcat(buffer, "$(");
|
||||
strcat(buffer, buffer2);
|
||||
if (*(path-1)==')') {
|
||||
if (++i > PATH_MAX)
|
||||
goto error;
|
||||
strcat(buffer, ")");
|
||||
i += strlen(buffer2)+3;
|
||||
}
|
||||
} else {
|
||||
if ((i += strlen(tmp)) > PATH_MAX)
|
||||
goto error;
|
||||
strcat(buffer, tmp);
|
||||
i += strlen(tmp);
|
||||
}
|
||||
} else {
|
||||
while (*path != 0 && *path != '/') {
|
||||
if (j > PATH_MAX)
|
||||
goto error;
|
||||
buffer2[j++] = *(path++);
|
||||
buffer2[j] = 0;
|
||||
}
|
||||
tmp = getenv(buffer2);
|
||||
if (!tmp) {
|
||||
if ((i += strlen(buffer2) + 1) > PATH_MAX)
|
||||
goto error;
|
||||
strcat(buffer, "$");
|
||||
strcat(buffer, buffer2);
|
||||
i += strlen(buffer2)+1;
|
||||
} else {
|
||||
if ((i += strlen(tmp)) > PATH_MAX)
|
||||
goto error;
|
||||
strcat(buffer, tmp);
|
||||
i += strlen(tmp);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -156,13 +168,20 @@ wexpandpath(char *path)
|
||||
}
|
||||
}
|
||||
|
||||
if (*path!=0)
|
||||
goto error;
|
||||
|
||||
return wstrdup(buffer);
|
||||
|
||||
error:
|
||||
errno = ENAMETOOLONG;
|
||||
wsyserror(_("could not expand %s"), origpath);
|
||||
/* FIXME: too many functions handle a return value of NULL incorrectly */
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
/* return address of next char != tok or end of string whichever comes first */
|
||||
static char*
|
||||
skipchar(char *string, char tok)
|
||||
static char *skipchar(char *string, char tok)
|
||||
{
|
||||
while (*string != 0 && *string == tok)
|
||||
string++;
|
||||
@@ -170,10 +189,8 @@ skipchar(char *string, char tok)
|
||||
return string;
|
||||
}
|
||||
|
||||
|
||||
/* return address of next char == tok or end of string whichever comes first */
|
||||
static char*
|
||||
nextchar(char *string, char tok)
|
||||
static char *nextchar(char *string, char tok)
|
||||
{
|
||||
while (*string != 0 && *string != tok)
|
||||
string++;
|
||||
@@ -181,7 +198,6 @@ nextchar(char *string, char tok)
|
||||
return string;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
* findfile--
|
||||
@@ -197,8 +213,7 @@ nextchar(char *string, char tok)
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
char*
|
||||
wfindfile(char *paths, char *file)
|
||||
char *wfindfile(char *paths, char *file)
|
||||
{
|
||||
char *path;
|
||||
char *tmp, *tmp2;
|
||||
@@ -253,9 +268,7 @@ wfindfile(char *paths, char *file)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
wfindfileinlist(char **path_list, char *file)
|
||||
char *wfindfileinlist(char **path_list, char *file)
|
||||
{
|
||||
int i;
|
||||
char *path;
|
||||
@@ -304,10 +317,7 @@ wfindfileinlist(char **path_list, char *file)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
char*
|
||||
wfindfileinarray(WMPropList *array, char *file)
|
||||
char *wfindfileinarray(WMPropList * array, char *file)
|
||||
{
|
||||
int i;
|
||||
char *path;
|
||||
@@ -363,7 +373,3 @@ wfindfileinarray(WMPropList *array, char *file)
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
* WINGs internal handlers: timer, idle and input handlers
|
||||
*/
|
||||
|
||||
#include "wconfig.h"
|
||||
#include "WINGsP.h"
|
||||
|
||||
#include "../src/config.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -22,9 +21,6 @@
|
||||
#define X_GETTIMEOFDAY(t) gettimeofday(t, (struct timezone*)0)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct TimerHandler {
|
||||
WMCallback *callback; /* procedure to call */
|
||||
struct timeval when; /* when to call the callback */
|
||||
@@ -33,13 +29,11 @@ typedef struct TimerHandler {
|
||||
int nextDelay; /* 0 if it's one-shot */
|
||||
} TimerHandler;
|
||||
|
||||
|
||||
typedef struct IdleHandler {
|
||||
WMCallback *callback;
|
||||
void *clientData;
|
||||
} IdleHandler;
|
||||
|
||||
|
||||
typedef struct InputHandler {
|
||||
WMInputProc *callback;
|
||||
void *clientData;
|
||||
@@ -47,7 +41,6 @@ typedef struct InputHandler {
|
||||
int mask;
|
||||
} InputHandler;
|
||||
|
||||
|
||||
/* queue of timer event handlers */
|
||||
static TimerHandler *timerHandler = NULL;
|
||||
|
||||
@@ -57,10 +50,8 @@ static WMArray *inputHandler=NULL;
|
||||
|
||||
#define timerPending() (timerHandler)
|
||||
|
||||
|
||||
|
||||
static void
|
||||
rightNow(struct timeval *tv) {
|
||||
static void rightNow(struct timeval *tv)
|
||||
{
|
||||
X_GETTIMEOFDAY(tv);
|
||||
}
|
||||
|
||||
@@ -73,8 +64,7 @@ rightNow(struct timeval *tv) {
|
||||
|
||||
#define SET_ZERO(tv) tv.tv_sec = 0, tv.tv_usec = 0
|
||||
|
||||
static void
|
||||
addmillisecs(struct timeval *tv, int milliseconds)
|
||||
static void addmillisecs(struct timeval *tv, int milliseconds)
|
||||
{
|
||||
tv->tv_usec += milliseconds * 1000;
|
||||
|
||||
@@ -82,9 +72,7 @@ addmillisecs(struct timeval *tv, int milliseconds)
|
||||
tv->tv_usec = tv->tv_usec % 1000000;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
enqueueTimerHandler(TimerHandler *handler)
|
||||
static void enqueueTimerHandler(TimerHandler * handler)
|
||||
{
|
||||
TimerHandler *tmp;
|
||||
|
||||
@@ -103,15 +91,14 @@ enqueueTimerHandler(TimerHandler *handler)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
delayUntilNextTimerEvent(struct timeval *delay)
|
||||
static void delayUntilNextTimerEvent(struct timeval *delay)
|
||||
{
|
||||
struct timeval now;
|
||||
TimerHandler *handler;
|
||||
|
||||
handler = timerHandler;
|
||||
while (handler && IS_ZERO(handler->when)) handler = handler->next;
|
||||
while (handler && IS_ZERO(handler->when))
|
||||
handler = handler->next;
|
||||
|
||||
if (!handler) {
|
||||
/* The return value of this function is only valid if there _are_
|
||||
@@ -135,9 +122,7 @@ delayUntilNextTimerEvent(struct timeval *delay)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WMHandlerID
|
||||
WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
|
||||
WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback * callback, void *cdata)
|
||||
{
|
||||
TimerHandler *handler;
|
||||
|
||||
@@ -156,9 +141,7 @@ WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
|
||||
return handler;
|
||||
}
|
||||
|
||||
|
||||
WMHandlerID
|
||||
WMAddPersistentTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
|
||||
WMHandlerID WMAddPersistentTimerHandler(int milliseconds, WMCallback * callback, void *cdata)
|
||||
{
|
||||
TimerHandler *handler = WMAddTimerHandler(milliseconds, callback, cdata);
|
||||
|
||||
@@ -168,10 +151,7 @@ WMAddPersistentTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
|
||||
return handler;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
WMDeleteTimerWithClientData(void *cdata)
|
||||
void WMDeleteTimerWithClientData(void *cdata)
|
||||
{
|
||||
TimerHandler *handler, *tmp;
|
||||
|
||||
@@ -201,10 +181,7 @@ WMDeleteTimerWithClientData(void *cdata)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
WMDeleteTimerHandler(WMHandlerID handlerID)
|
||||
void WMDeleteTimerHandler(WMHandlerID handlerID)
|
||||
{
|
||||
TimerHandler *tmp, *handler = (TimerHandler *) handlerID;
|
||||
|
||||
@@ -233,10 +210,7 @@ WMDeleteTimerHandler(WMHandlerID handlerID)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
WMHandlerID
|
||||
WMAddIdleHandler(WMCallback *callback, void *cdata)
|
||||
WMHandlerID WMAddIdleHandler(WMCallback * callback, void *cdata)
|
||||
{
|
||||
IdleHandler *handler;
|
||||
|
||||
@@ -255,9 +229,7 @@ WMAddIdleHandler(WMCallback *callback, void *cdata)
|
||||
return handler;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMDeleteIdleHandler(WMHandlerID handlerID)
|
||||
void WMDeleteIdleHandler(WMHandlerID handlerID)
|
||||
{
|
||||
IdleHandler *handler = (IdleHandler *) handlerID;
|
||||
|
||||
@@ -267,10 +239,7 @@ WMDeleteIdleHandler(WMHandlerID handlerID)
|
||||
WMRemoveFromArray(idleHandler, handler);
|
||||
}
|
||||
|
||||
|
||||
|
||||
WMHandlerID
|
||||
WMAddInputHandler(int fd, int condition, WMInputProc *proc, void *clientData)
|
||||
WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc * proc, void *clientData)
|
||||
{
|
||||
InputHandler *handler;
|
||||
|
||||
@@ -288,10 +257,7 @@ WMAddInputHandler(int fd, int condition, WMInputProc *proc, void *clientData)
|
||||
return handler;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
WMDeleteInputHandler(WMHandlerID handlerID)
|
||||
void WMDeleteInputHandler(WMHandlerID handlerID)
|
||||
{
|
||||
InputHandler *handler = (InputHandler *) handlerID;
|
||||
|
||||
@@ -301,9 +267,7 @@ WMDeleteInputHandler(WMHandlerID handlerID)
|
||||
WMRemoveFromArray(inputHandler, handler);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
W_CheckIdleHandlers(void)
|
||||
Bool W_CheckIdleHandlers(void)
|
||||
{
|
||||
IdleHandler *handler;
|
||||
WMArray *handlerCopy;
|
||||
@@ -334,10 +298,7 @@ W_CheckIdleHandlers(void)
|
||||
return (WMGetArrayItemCount(idleHandler) > 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
W_CheckTimerHandlers(void)
|
||||
void W_CheckTimerHandlers(void)
|
||||
{
|
||||
TimerHandler *handler;
|
||||
struct timeval now;
|
||||
@@ -374,7 +335,6 @@ W_CheckTimerHandlers(void)
|
||||
W_FlushASAPNotificationQueue();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This functions will handle input events on all registered file descriptors.
|
||||
* Input:
|
||||
@@ -409,8 +369,7 @@ W_CheckTimerHandlers(void)
|
||||
* inputfd = -1
|
||||
*
|
||||
*/
|
||||
Bool
|
||||
W_HandleInputEvents(Bool waitForInput, int inputfd)
|
||||
Bool W_HandleInputEvents(Bool waitForInput, int inputfd)
|
||||
{
|
||||
#if defined(HAVE_POLL) && defined(HAVE_POLL_H) && !defined(HAVE_SELECT)
|
||||
struct poll fd *fds;
|
||||
@@ -486,17 +445,14 @@ W_HandleInputEvents(Bool waitForInput, int inputfd)
|
||||
(fds[i].revents & (POLLIN | POLLRDNORM | POLLRDBAND | POLLPRI)))
|
||||
mask |= WIReadMask;
|
||||
|
||||
if ((handler->mask & WIWriteMask) &&
|
||||
(fds[i].revents & (POLLOUT | POLLWRBAND)))
|
||||
if ((handler->mask & WIWriteMask) && (fds[i].revents & (POLLOUT | POLLWRBAND)))
|
||||
mask |= WIWriteMask;
|
||||
|
||||
if ((handler->mask & WIExceptMask) &&
|
||||
(fds[i].revents & (POLLHUP | POLLNVAL | POLLERR)))
|
||||
if ((handler->mask & WIExceptMask) && (fds[i].revents & (POLLHUP | POLLNVAL | POLLERR)))
|
||||
mask |= WIExceptMask;
|
||||
|
||||
if (mask != 0 && handler->callback) {
|
||||
(*handler->callback)(handler->fd, mask,
|
||||
handler->clientData);
|
||||
(*handler->callback) (handler->fd, mask, handler->clientData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -593,8 +549,7 @@ W_HandleInputEvents(Bool waitForInput, int inputfd)
|
||||
mask |= WIExceptMask;
|
||||
|
||||
if (mask != 0 && handler->callback) {
|
||||
(*handler->callback)(handler->fd, mask,
|
||||
handler->clientData);
|
||||
(*handler->callback) (handler->fd, mask, handler->clientData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -605,9 +560,7 @@ W_HandleInputEvents(Bool waitForInput, int inputfd)
|
||||
|
||||
return (count > 0);
|
||||
#else /* not HAVE_SELECT, not HAVE_POLL */
|
||||
Neither select nor poll. You lose.
|
||||
# error Neither select nor poll. You lose.
|
||||
#endif /* HAVE_SELECT */
|
||||
#endif /* HAVE_POLL */
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
@@ -7,19 +6,14 @@
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
|
||||
|
||||
#define INITIAL_CAPACITY 23
|
||||
|
||||
|
||||
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
|
||||
# define INLINE inline
|
||||
#else
|
||||
# define INLINE
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct HashItem {
|
||||
const void *key;
|
||||
const void *data;
|
||||
@@ -27,7 +21,6 @@ typedef struct HashItem {
|
||||
struct HashItem *next; /* collided item list */
|
||||
} HashItem;
|
||||
|
||||
|
||||
typedef struct W_HashTable {
|
||||
WMHashTableCallbacks callbacks;
|
||||
|
||||
@@ -37,9 +30,6 @@ typedef struct W_HashTable {
|
||||
HashItem **table;
|
||||
} HashTable;
|
||||
|
||||
|
||||
|
||||
|
||||
#define HASH(table, key) (((table)->callbacks.hash ? \
|
||||
(*(table)->callbacks.hash)(key) : hashPtr(key)) % (table)->size)
|
||||
|
||||
@@ -49,11 +39,7 @@ typedef struct W_HashTable {
|
||||
#define RELKEY(table, key) if ((table)->callbacks.releaseKey) \
|
||||
(*(table)->callbacks.releaseKey)(key)
|
||||
|
||||
|
||||
|
||||
|
||||
static INLINE unsigned
|
||||
hashString(const char *key)
|
||||
static INLINE unsigned hashString(const char *key)
|
||||
{
|
||||
unsigned ret = 0;
|
||||
unsigned ctr = 0;
|
||||
@@ -66,19 +52,12 @@ hashString(const char *key)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static INLINE unsigned
|
||||
hashPtr(const void *key)
|
||||
static INLINE unsigned hashPtr(const void *key)
|
||||
{
|
||||
return ((size_t) key / sizeof(char *));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void
|
||||
rellocateItem(WMHashTable *table, HashItem *item)
|
||||
static void rellocateItem(WMHashTable * table, HashItem * item)
|
||||
{
|
||||
unsigned h;
|
||||
|
||||
@@ -88,9 +67,7 @@ rellocateItem(WMHashTable *table, HashItem *item)
|
||||
table->table[h] = item;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
rebuildTable(WMHashTable *table)
|
||||
static void rebuildTable(WMHashTable * table)
|
||||
{
|
||||
HashItem *next;
|
||||
HashItem **oldArray;
|
||||
@@ -117,10 +94,7 @@ rebuildTable(WMHashTable *table)
|
||||
wfree(oldArray);
|
||||
}
|
||||
|
||||
|
||||
|
||||
WMHashTable*
|
||||
WMCreateHashTable(WMHashTableCallbacks callbacks)
|
||||
WMHashTable *WMCreateHashTable(WMHashTableCallbacks callbacks)
|
||||
{
|
||||
HashTable *table;
|
||||
|
||||
@@ -137,9 +111,7 @@ WMCreateHashTable(WMHashTableCallbacks callbacks)
|
||||
return table;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMResetHashTable(WMHashTable *table)
|
||||
void WMResetHashTable(WMHashTable * table)
|
||||
{
|
||||
HashItem *item, *tmp;
|
||||
int i;
|
||||
@@ -164,9 +136,7 @@ WMResetHashTable(WMHashTable *table)
|
||||
memset(table->table, 0, sizeof(HashItem *) * table->size);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMFreeHashTable(WMHashTable *table)
|
||||
void WMFreeHashTable(WMHashTable * table)
|
||||
{
|
||||
HashItem *item, *tmp;
|
||||
int i;
|
||||
@@ -184,16 +154,12 @@ WMFreeHashTable(WMHashTable *table)
|
||||
wfree(table);
|
||||
}
|
||||
|
||||
|
||||
unsigned
|
||||
WMCountHashTable(WMHashTable *table)
|
||||
unsigned WMCountHashTable(WMHashTable * table)
|
||||
{
|
||||
return table->itemCount;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMHashGet(WMHashTable *table, const void *key)
|
||||
void *WMHashGet(WMHashTable * table, const void *key)
|
||||
{
|
||||
unsigned h;
|
||||
HashItem *item;
|
||||
@@ -222,10 +188,7 @@ WMHashGet(WMHashTable *table, const void *key)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMHashGetItemAndKey(WMHashTable *table, const void *key,
|
||||
void **retItem, void **retKey)
|
||||
Bool WMHashGetItemAndKey(WMHashTable * table, const void *key, void **retItem, void **retKey)
|
||||
{
|
||||
unsigned h;
|
||||
HashItem *item;
|
||||
@@ -259,10 +222,7 @@ WMHashGetItemAndKey(WMHashTable *table, const void *key,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void*
|
||||
WMHashInsert(WMHashTable *table, const void *key, const void *data)
|
||||
void *WMHashInsert(WMHashTable * table, const void *key, const void *data)
|
||||
{
|
||||
unsigned h;
|
||||
HashItem *item;
|
||||
@@ -324,17 +284,14 @@ WMHashInsert(WMHashTable *table, const void *key, const void *data)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static HashItem*
|
||||
deleteFromList(HashTable *table, HashItem *item, const void *key)
|
||||
static HashItem *deleteFromList(HashTable * table, HashItem * item, const void *key)
|
||||
{
|
||||
HashItem *next;
|
||||
|
||||
if (item == NULL)
|
||||
return NULL;
|
||||
|
||||
if ((table->callbacks.keyIsEqual
|
||||
&& (*table->callbacks.keyIsEqual)(key, item->key))
|
||||
if ((table->callbacks.keyIsEqual && (*table->callbacks.keyIsEqual) (key, item->key))
|
||||
|| (!table->callbacks.keyIsEqual && key == item->key)) {
|
||||
|
||||
next = item->next;
|
||||
@@ -351,9 +308,7 @@ deleteFromList(HashTable *table, HashItem *item, const void *key)
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMHashRemove(WMHashTable *table, const void *key)
|
||||
void WMHashRemove(WMHashTable * table, const void *key)
|
||||
{
|
||||
unsigned h;
|
||||
|
||||
@@ -362,9 +317,7 @@ WMHashRemove(WMHashTable *table, const void *key)
|
||||
table->table[h] = deleteFromList(table, table->table[h], key);
|
||||
}
|
||||
|
||||
|
||||
WMHashEnumerator
|
||||
WMEnumerateHashTable(WMHashTable *table)
|
||||
WMHashEnumerator WMEnumerateHashTable(WMHashTable * table)
|
||||
{
|
||||
WMHashEnumerator enumerator;
|
||||
|
||||
@@ -375,10 +328,7 @@ WMEnumerateHashTable(WMHashTable *table)
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void*
|
||||
WMNextHashEnumeratorItem(WMHashEnumerator *enumerator)
|
||||
void *WMNextHashEnumeratorItem(WMHashEnumerator * enumerator)
|
||||
{
|
||||
const void *data = NULL;
|
||||
|
||||
@@ -403,9 +353,7 @@ WMNextHashEnumeratorItem(WMHashEnumerator *enumerator)
|
||||
return (void *)data;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMNextHashEnumeratorKey(WMHashEnumerator *enumerator)
|
||||
void *WMNextHashEnumeratorKey(WMHashEnumerator * enumerator)
|
||||
{
|
||||
const void *key = NULL;
|
||||
|
||||
@@ -430,10 +378,7 @@ WMNextHashEnumeratorKey(WMHashEnumerator *enumerator)
|
||||
return (void *)key;
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMNextHashEnumeratorItemAndKey(WMHashEnumerator *enumerator,
|
||||
void **item, void **key)
|
||||
Bool WMNextHashEnumeratorItemAndKey(WMHashEnumerator * enumerator, void **item, void **key)
|
||||
{
|
||||
/* this assumes the table doesn't change between
|
||||
* WMEnumerateHashTable() and WMNextHashEnumeratorItemAndKey() calls */
|
||||
@@ -461,20 +406,16 @@ WMNextHashEnumeratorItemAndKey(WMHashEnumerator *enumerator,
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
static Bool
|
||||
compareStrings(const char *key1, const char *key2)
|
||||
static Bool compareStrings(const char *key1, const char *key2)
|
||||
{
|
||||
return strcmp(key1, key2) == 0;
|
||||
}
|
||||
|
||||
|
||||
typedef unsigned (*hashFunc) (const void *);
|
||||
typedef Bool(*isEqualFunc) (const void *, const void *);
|
||||
typedef void *(*retainFunc) (const void *);
|
||||
typedef void (*releaseFunc) (const void *);
|
||||
|
||||
|
||||
const WMHashTableCallbacks WMIntHashCallbacks = {
|
||||
NULL,
|
||||
NULL,
|
||||
@@ -489,12 +430,9 @@ const WMHashTableCallbacks WMStringHashCallbacks = {
|
||||
(releaseFunc) wfree
|
||||
};
|
||||
|
||||
|
||||
|
||||
const WMHashTableCallbacks WMStringPointerHashCallbacks = {
|
||||
(hashFunc) hashString,
|
||||
(isEqualFunc) compareStrings,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
83
WINGs/host.c
83
WINGs/host.c
@@ -18,7 +18,6 @@
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
#include "wconfig.h"
|
||||
|
||||
#include <unistd.h>
|
||||
@@ -30,7 +29,6 @@
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
/* For Solaris */
|
||||
#ifndef INADDR_NONE
|
||||
# define INADDR_NONE (-1)
|
||||
@@ -39,7 +37,6 @@
|
||||
/* Max hostname length (RFC 1123) */
|
||||
#define W_MAXHOSTNAMELEN 255
|
||||
|
||||
|
||||
typedef struct W_Host {
|
||||
char *name;
|
||||
|
||||
@@ -49,15 +46,11 @@ typedef struct W_Host {
|
||||
int refCount;
|
||||
} W_Host;
|
||||
|
||||
|
||||
static WMHashTable *hostCache = NULL;
|
||||
|
||||
static Bool hostCacheEnabled = True;
|
||||
|
||||
|
||||
|
||||
static WMHost*
|
||||
getHostFromCache(char *name)
|
||||
static WMHost *getHostFromCache(char *name)
|
||||
{
|
||||
if (!hostCache)
|
||||
return NULL;
|
||||
@@ -65,9 +58,7 @@ getHostFromCache(char *name)
|
||||
return WMHashGet(hostCache, name);
|
||||
}
|
||||
|
||||
|
||||
static WMHost*
|
||||
getHostWithHostEntry(struct hostent *host, char *name)
|
||||
static WMHost *getHostWithHostEntry(struct hostent *host, char *name)
|
||||
{
|
||||
WMHost *hPtr;
|
||||
struct in_addr in;
|
||||
@@ -86,8 +77,7 @@ getHostWithHostEntry(struct hostent *host, char *name)
|
||||
}
|
||||
|
||||
for (i = 0; host->h_addr_list[i] != NULL; i++) {
|
||||
memcpy((void*)&in.s_addr, (const void*)host->h_addr_list[i],
|
||||
host->h_length);
|
||||
memcpy((void *)&in.s_addr, (const void *)host->h_addr_list[i], host->h_length);
|
||||
WMAddToArray(hPtr->addresses, wstrdup(inet_ntoa(in)));
|
||||
}
|
||||
|
||||
@@ -104,9 +94,7 @@ getHostWithHostEntry(struct hostent *host, char *name)
|
||||
return hPtr;
|
||||
}
|
||||
|
||||
|
||||
WMHost*
|
||||
WMGetCurrentHost()
|
||||
WMHost *WMGetCurrentHost()
|
||||
{
|
||||
char name[W_MAXHOSTNAMELEN + 1];
|
||||
|
||||
@@ -120,9 +108,7 @@ WMGetCurrentHost()
|
||||
return WMGetHostWithName(name);
|
||||
}
|
||||
|
||||
|
||||
WMHost*
|
||||
WMGetHostWithName(char *name)
|
||||
WMHost *WMGetHostWithName(char *name)
|
||||
{
|
||||
struct hostent *host;
|
||||
WMHost *hPtr;
|
||||
@@ -146,9 +132,7 @@ WMGetHostWithName(char *name)
|
||||
return hPtr;
|
||||
}
|
||||
|
||||
|
||||
WMHost*
|
||||
WMGetHostWithAddress(char *address)
|
||||
WMHost *WMGetHostWithAddress(char *address)
|
||||
{
|
||||
struct hostent *host;
|
||||
struct in_addr in;
|
||||
@@ -162,7 +146,6 @@ WMGetHostWithAddress(char *address)
|
||||
return hPtr;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef HAVE_INET_ATON
|
||||
if ((in.s_addr = inet_addr(address)) == INADDR_NONE)
|
||||
return NULL;
|
||||
@@ -181,17 +164,13 @@ WMGetHostWithAddress(char *address)
|
||||
return hPtr;
|
||||
}
|
||||
|
||||
|
||||
WMHost*
|
||||
WMRetainHost(WMHost *hPtr)
|
||||
WMHost *WMRetainHost(WMHost * hPtr)
|
||||
{
|
||||
hPtr->refCount++;
|
||||
return hPtr;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMReleaseHost(WMHost *hPtr)
|
||||
void WMReleaseHost(WMHost * hPtr)
|
||||
{
|
||||
hPtr->refCount--;
|
||||
|
||||
@@ -209,23 +188,17 @@ WMReleaseHost(WMHost *hPtr)
|
||||
wfree(hPtr);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetHostCacheEnabled(Bool flag)
|
||||
void WMSetHostCacheEnabled(Bool flag)
|
||||
{
|
||||
hostCacheEnabled = ((flag == 0) ? 0 : 1);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMIsHostCacheEnabled()
|
||||
Bool WMIsHostCacheEnabled()
|
||||
{
|
||||
return hostCacheEnabled;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMFlushHostCache()
|
||||
void WMFlushHostCache()
|
||||
{
|
||||
if (hostCache && WMCountHashTable(hostCache) > 0) {
|
||||
WMArray *hostArray = WMCreateArray(WMCountHashTable(hostCache));
|
||||
@@ -245,16 +218,12 @@ WMFlushHostCache()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
matchAddress(void *item, void *cdata)
|
||||
static int matchAddress(void *item, void *cdata)
|
||||
{
|
||||
return (strcmp((char *)item, (char *)cdata) == 0);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMIsHostEqualToHost(WMHost* hPtr, WMHost* aPtr)
|
||||
Bool WMIsHostEqualToHost(WMHost * hPtr, WMHost * aPtr)
|
||||
{
|
||||
char *adr;
|
||||
int i;
|
||||
@@ -274,37 +243,23 @@ WMIsHostEqualToHost(WMHost* hPtr, WMHost* aPtr)
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
WMGetHostName(WMHost *hPtr)
|
||||
char *WMGetHostName(WMHost * hPtr)
|
||||
{
|
||||
return (WMGetArrayItemCount(hPtr->names) > 0 ?
|
||||
WMGetFromArray(hPtr->names, 0) : NULL);
|
||||
return (WMGetArrayItemCount(hPtr->names) > 0 ? WMGetFromArray(hPtr->names, 0) : NULL);
|
||||
/*return WMGetFromArray(hPtr->names, 0); */
|
||||
}
|
||||
|
||||
|
||||
WMArray*
|
||||
WMGetHostNames(WMHost *hPtr)
|
||||
WMArray *WMGetHostNames(WMHost * hPtr)
|
||||
{
|
||||
return hPtr->names;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
WMGetHostAddress(WMHost *hPtr)
|
||||
char *WMGetHostAddress(WMHost * hPtr)
|
||||
{
|
||||
return (WMGetArrayItemCount(hPtr->addresses) > 0 ?
|
||||
WMGetFromArray(hPtr->addresses, 0) : NULL);
|
||||
return (WMGetArrayItemCount(hPtr->addresses) > 0 ? WMGetFromArray(hPtr->addresses, 0) : NULL);
|
||||
}
|
||||
|
||||
|
||||
WMArray*
|
||||
WMGetHostAddresses(WMHost *hPtr)
|
||||
WMArray *WMGetHostAddresses(WMHost * hPtr)
|
||||
{
|
||||
return hPtr->addresses;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
#include "WINGsP.h"
|
||||
|
||||
|
||||
void
|
||||
InitI18n(Display *dpy)
|
||||
void InitI18n(Display * dpy)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
53
WINGs/make-rgb
Executable file
53
WINGs/make-rgb
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
import re
|
||||
from optparse import OptionParser
|
||||
|
||||
parser = OptionParser(version="%prog 1.0")
|
||||
parser.add_option("-f", "--file", dest="rgbtxtFile", default='/etc/X11/rgb.txt',
|
||||
help="rgb.txt file containing X11 colors (/etc/X11/rgb.txt)",
|
||||
metavar="File")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
f = open(options.rgbtxtFile)
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
|
||||
colorLine = re.compile(r'''\s*
|
||||
(?P<red>\d+) # red
|
||||
\s+
|
||||
(?P<green>\d+) # green
|
||||
\s+
|
||||
(?P<blue>\d+) # blue
|
||||
\s+
|
||||
(?P<name>[^\s]+) # name
|
||||
''', re.VERBOSE)
|
||||
|
||||
print '''
|
||||
/* Automatically generated file. Do NOT edit. Regenerate it using make-rgb */
|
||||
|
||||
#ifndef RGB_H_
|
||||
#define RGB_H_
|
||||
|
||||
#include <wraster.h>
|
||||
|
||||
typedef struct RGBColor {
|
||||
RColor color;
|
||||
char *name;
|
||||
} RGBColor;
|
||||
|
||||
RGBColor rgbColors[] = {'''
|
||||
|
||||
for line in lines:
|
||||
m = colorLine.match(line)
|
||||
if m:
|
||||
print ''' {{%(red)3s, %(green)3s, %(blue)3s, 0}, "%(name)s"},''' % m.groupdict()
|
||||
|
||||
print ''' {{ 0, 0, 0, 0}, NULL}
|
||||
};
|
||||
|
||||
#endif
|
||||
'''
|
||||
|
||||
@@ -18,9 +18,7 @@
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
#include "../src/config.h"
|
||||
|
||||
#include "wconfig.h"
|
||||
#include "WUtil.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
@@ -42,9 +40,7 @@
|
||||
# define True 1
|
||||
#endif
|
||||
|
||||
|
||||
static void
|
||||
defaultHandler(int bla)
|
||||
static void defaultHandler(int bla)
|
||||
{
|
||||
if (bla)
|
||||
kill(getpid(), SIGABRT);
|
||||
@@ -52,14 +48,11 @@ defaultHandler(int bla)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
static waborthandler *aborthandler = (waborthandler *) defaultHandler;
|
||||
|
||||
#define wAbort(a) (*aborthandler)(a)
|
||||
|
||||
|
||||
waborthandler*
|
||||
wsetabort(waborthandler *handler)
|
||||
waborthandler *wsetabort(waborthandler * handler)
|
||||
{
|
||||
waborthandler *old = aborthandler;
|
||||
|
||||
@@ -68,16 +61,11 @@ wsetabort(waborthandler *handler)
|
||||
return old;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int Aborting = 0; /* if we're in the middle of an emergency exit */
|
||||
|
||||
|
||||
static WMHashTable *table = NULL;
|
||||
|
||||
|
||||
void*
|
||||
wmalloc(size_t size)
|
||||
void *wmalloc(size_t size)
|
||||
{
|
||||
void *tmp;
|
||||
|
||||
@@ -110,9 +98,18 @@ wmalloc(size_t size)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
void *wmalloc0(size_t size)
|
||||
{
|
||||
void *ptr = wmalloc(size);
|
||||
if (!ptr)
|
||||
return NULL;
|
||||
|
||||
void*
|
||||
wrealloc(void *ptr, size_t newsize)
|
||||
memset(ptr, 0, size);
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void *wrealloc(void *ptr, size_t newsize)
|
||||
{
|
||||
void *nptr;
|
||||
|
||||
@@ -137,8 +134,7 @@ wrealloc(void *ptr, size_t newsize)
|
||||
#endif
|
||||
if (nptr == NULL) {
|
||||
if (Aborting) {
|
||||
fputs("Really Bad Error: recursive realloc() failure.",
|
||||
stderr);
|
||||
fputs("Really Bad Error: recursive realloc() failure.", stderr);
|
||||
exit(-1);
|
||||
} else {
|
||||
wfatal("virtual memory exhausted");
|
||||
@@ -151,9 +147,7 @@ wrealloc(void *ptr, size_t newsize)
|
||||
return nptr;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
wretain(void *ptr)
|
||||
void *wretain(void *ptr)
|
||||
{
|
||||
int *refcount;
|
||||
|
||||
@@ -179,10 +173,7 @@ wretain(void *ptr)
|
||||
return ptr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
wfree(void *ptr)
|
||||
void wfree(void *ptr)
|
||||
{
|
||||
#ifdef TEST_WITH_GC
|
||||
GC_free(ptr);
|
||||
@@ -191,10 +182,7 @@ wfree(void *ptr)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
wrelease(void *ptr)
|
||||
void wrelease(void *ptr)
|
||||
{
|
||||
int *refcount;
|
||||
|
||||
@@ -218,5 +206,3 @@ wrelease(void *ptr)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
|
||||
#include "WINGsP.h"
|
||||
|
||||
|
||||
WMRange
|
||||
wmkrange(int start, int count)
|
||||
WMRange wmkrange(int start, int count)
|
||||
{
|
||||
WMRange range;
|
||||
|
||||
@@ -14,5 +12,3 @@ wmkrange(int start, int count)
|
||||
|
||||
return range;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
typedef struct W_Notification {
|
||||
const char *name;
|
||||
void *object;
|
||||
@@ -14,33 +13,24 @@ typedef struct W_Notification {
|
||||
int refCount;
|
||||
} Notification;
|
||||
|
||||
|
||||
extern void W_FlushASAPNotificationQueue();
|
||||
|
||||
|
||||
const char*
|
||||
WMGetNotificationName(WMNotification *notification)
|
||||
const char *WMGetNotificationName(WMNotification * notification)
|
||||
{
|
||||
return notification->name;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMGetNotificationObject(WMNotification *notification)
|
||||
void *WMGetNotificationObject(WMNotification * notification)
|
||||
{
|
||||
return notification->object;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMGetNotificationClientData(WMNotification *notification)
|
||||
void *WMGetNotificationClientData(WMNotification * notification)
|
||||
{
|
||||
return notification->clientData;
|
||||
}
|
||||
|
||||
|
||||
WMNotification*
|
||||
WMCreateNotification(const char *name, void *object, void *clientData)
|
||||
WMNotification *WMCreateNotification(const char *name, void *object, void *clientData)
|
||||
{
|
||||
Notification *nPtr;
|
||||
|
||||
@@ -55,9 +45,7 @@ WMCreateNotification(const char *name, void *object, void *clientData)
|
||||
return nPtr;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMReleaseNotification(WMNotification *notification)
|
||||
void WMReleaseNotification(WMNotification * notification)
|
||||
{
|
||||
notification->refCount--;
|
||||
|
||||
@@ -66,16 +54,13 @@ WMReleaseNotification(WMNotification *notification)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WMNotification*
|
||||
WMRetainNotification(WMNotification *notification)
|
||||
WMNotification *WMRetainNotification(WMNotification * notification)
|
||||
{
|
||||
notification->refCount++;
|
||||
|
||||
return notification;
|
||||
}
|
||||
|
||||
|
||||
/***************** Notification Center *****************/
|
||||
|
||||
typedef struct NotificationObserver {
|
||||
@@ -90,7 +75,6 @@ typedef struct NotificationObserver {
|
||||
struct NotificationObserver *nextAction; /* for observerTable */
|
||||
} NotificationObserver;
|
||||
|
||||
|
||||
typedef struct W_NotificationCenter {
|
||||
WMHashTable *nameTable; /* names -> observer lists */
|
||||
WMHashTable *objectTable; /* object -> observer lists */
|
||||
@@ -99,13 +83,10 @@ typedef struct W_NotificationCenter {
|
||||
WMHashTable *observerTable; /* observer -> NotificationObserver */
|
||||
} NotificationCenter;
|
||||
|
||||
|
||||
/* default (and only) center */
|
||||
static NotificationCenter *notificationCenter = NULL;
|
||||
|
||||
|
||||
void
|
||||
W_InitNotificationCenter(void)
|
||||
void W_InitNotificationCenter(void)
|
||||
{
|
||||
notificationCenter = wmalloc(sizeof(NotificationCenter));
|
||||
|
||||
@@ -116,7 +97,6 @@ W_InitNotificationCenter(void)
|
||||
notificationCenter->observerTable = WMCreateHashTable(WMIntHashCallbacks);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMAddNotificationObserver(WMNotificationObserverAction * observerAction,
|
||||
void *observer, const char *name, void *object)
|
||||
@@ -131,10 +111,8 @@ WMAddNotificationObserver(WMNotificationObserverAction *observerAction,
|
||||
oRec->next = NULL;
|
||||
oRec->prev = NULL;
|
||||
|
||||
|
||||
/* put this action in the list of actions for this observer */
|
||||
rec = (NotificationObserver*)WMHashInsert(notificationCenter->observerTable,
|
||||
observer, oRec);
|
||||
rec = (NotificationObserver *) WMHashInsert(notificationCenter->observerTable, observer, oRec);
|
||||
|
||||
if (rec) {
|
||||
/* if this is not the first action for the observer */
|
||||
@@ -152,16 +130,14 @@ WMAddNotificationObserver(WMNotificationObserverAction *observerAction,
|
||||
notificationCenter->nilList = oRec;
|
||||
} else if (!name) {
|
||||
/* any message coming from object */
|
||||
rec = (NotificationObserver*)WMHashInsert(notificationCenter->objectTable,
|
||||
object, oRec);
|
||||
rec = (NotificationObserver *) WMHashInsert(notificationCenter->objectTable, object, oRec);
|
||||
oRec->next = rec;
|
||||
if (rec) {
|
||||
rec->prev = oRec;
|
||||
}
|
||||
} else {
|
||||
/* name && (object || !object) */
|
||||
rec = (NotificationObserver*)WMHashInsert(notificationCenter->nameTable,
|
||||
name, oRec);
|
||||
rec = (NotificationObserver *) WMHashInsert(notificationCenter->nameTable, name, oRec);
|
||||
oRec->next = rec;
|
||||
if (rec) {
|
||||
rec->prev = oRec;
|
||||
@@ -169,23 +145,19 @@ WMAddNotificationObserver(WMNotificationObserverAction *observerAction,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMPostNotification(WMNotification *notification)
|
||||
void WMPostNotification(WMNotification * notification)
|
||||
{
|
||||
NotificationObserver *orec, *tmp;
|
||||
|
||||
WMRetainNotification(notification);
|
||||
|
||||
/* tell the observers that want to know about a particular message */
|
||||
orec = (NotificationObserver*)WMHashGet(notificationCenter->nameTable,
|
||||
notification->name);
|
||||
orec = (NotificationObserver *) WMHashGet(notificationCenter->nameTable, notification->name);
|
||||
|
||||
while (orec) {
|
||||
tmp = orec->next;
|
||||
|
||||
if (!orec->object || !notification->object
|
||||
|| orec->object == notification->object) {
|
||||
if (!orec->object || !notification->object || orec->object == notification->object) {
|
||||
/* tell the observer */
|
||||
if (orec->observerAction) {
|
||||
(*orec->observerAction) (orec->observer, notification);
|
||||
@@ -196,8 +168,7 @@ WMPostNotification(WMNotification *notification)
|
||||
}
|
||||
|
||||
/* tell the observers that want to know about an object */
|
||||
orec = (NotificationObserver*)WMHashGet(notificationCenter->objectTable,
|
||||
notification->object);
|
||||
orec = (NotificationObserver *) WMHashGet(notificationCenter->objectTable, notification->object);
|
||||
|
||||
while (orec) {
|
||||
tmp = orec->next;
|
||||
@@ -224,15 +195,12 @@ WMPostNotification(WMNotification *notification)
|
||||
WMReleaseNotification(notification);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMRemoveNotificationObserver(void *observer)
|
||||
void WMRemoveNotificationObserver(void *observer)
|
||||
{
|
||||
NotificationObserver *orec, *tmp, *rec;
|
||||
|
||||
/* get the list of actions the observer is doing */
|
||||
orec = (NotificationObserver*)WMHashGet(notificationCenter->observerTable,
|
||||
observer);
|
||||
orec = (NotificationObserver *) WMHashGet(notificationCenter->observerTable, observer);
|
||||
|
||||
/*
|
||||
* FOREACH orec IN actionlist for observer
|
||||
@@ -250,26 +218,22 @@ WMRemoveNotificationObserver(void *observer)
|
||||
notificationCenter->nilList = orec->next;
|
||||
} else if (!orec->name) {
|
||||
/* any message coming from object */
|
||||
rec = (NotificationObserver*)WMHashGet(notificationCenter->objectTable,
|
||||
orec->object);
|
||||
rec = (NotificationObserver *) WMHashGet(notificationCenter->objectTable, orec->object);
|
||||
if (rec == orec) {
|
||||
/* replace table entry */
|
||||
if (orec->next) {
|
||||
WMHashInsert(notificationCenter->objectTable, orec->object,
|
||||
orec->next);
|
||||
WMHashInsert(notificationCenter->objectTable, orec->object, orec->next);
|
||||
} else {
|
||||
WMHashRemove(notificationCenter->objectTable, orec->object);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* name && (object || !object) */
|
||||
rec = (NotificationObserver*)WMHashGet(notificationCenter->nameTable,
|
||||
orec->name);
|
||||
rec = (NotificationObserver *) WMHashGet(notificationCenter->nameTable, orec->name);
|
||||
if (rec == orec) {
|
||||
/* replace table entry */
|
||||
if (orec->next) {
|
||||
WMHashInsert(notificationCenter->nameTable, orec->name,
|
||||
orec->next);
|
||||
WMHashInsert(notificationCenter->nameTable, orec->name, orec->next);
|
||||
} else {
|
||||
WMHashRemove(notificationCenter->nameTable, orec->name);
|
||||
}
|
||||
@@ -288,9 +252,7 @@ WMRemoveNotificationObserver(void *observer)
|
||||
WMHashRemove(notificationCenter->observerTable, observer);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMRemoveNotificationObserverWithName(void *observer, const char *name, void *object)
|
||||
void WMRemoveNotificationObserverWithName(void *observer, const char *name, void *object)
|
||||
{
|
||||
NotificationObserver *orec, *tmp, *rec;
|
||||
NotificationObserver *newList = NULL;
|
||||
@@ -309,7 +271,9 @@ WMRemoveNotificationObserverWithName(void *observer, const char *name, void *obj
|
||||
if (notificationCenter->nilList == orec)
|
||||
notificationCenter->nilList = orec->next;
|
||||
} else if (!name) {
|
||||
rec = (NotificationObserver*)WMHashGet(notificationCenter->objectTable, orec->object);
|
||||
rec =
|
||||
(NotificationObserver *) WMHashGet(notificationCenter->objectTable,
|
||||
orec->object);
|
||||
if (rec == orec) {
|
||||
assert(rec->prev == NULL);
|
||||
/* replace table entry */
|
||||
@@ -317,8 +281,7 @@ WMRemoveNotificationObserverWithName(void *observer, const char *name, void *obj
|
||||
WMHashInsert(notificationCenter->objectTable,
|
||||
orec->object, orec->next);
|
||||
} else {
|
||||
WMHashRemove(notificationCenter->objectTable,
|
||||
orec->object);
|
||||
WMHashRemove(notificationCenter->objectTable, orec->object);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -331,8 +294,7 @@ WMRemoveNotificationObserverWithName(void *observer, const char *name, void *obj
|
||||
WMHashInsert(notificationCenter->nameTable,
|
||||
orec->name, orec->next);
|
||||
} else {
|
||||
WMHashRemove(notificationCenter->nameTable,
|
||||
orec->name);
|
||||
WMHashRemove(notificationCenter->nameTable, orec->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -366,9 +328,7 @@ WMRemoveNotificationObserverWithName(void *observer, const char *name, void *obj
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMPostNotificationName(const char *name, void *object, void *clientData)
|
||||
void WMPostNotificationName(const char *name, void *object, void *clientData)
|
||||
{
|
||||
WMNotification *notification;
|
||||
|
||||
@@ -379,11 +339,8 @@ WMPostNotificationName(const char *name, void *object, void *clientData)
|
||||
WMReleaseNotification(notification);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**************** Notification Queues ****************/
|
||||
|
||||
|
||||
typedef struct W_NotificationQueue {
|
||||
WMArray *asapQueue;
|
||||
WMArray *idleQueue;
|
||||
@@ -391,15 +348,12 @@ typedef struct W_NotificationQueue {
|
||||
struct W_NotificationQueue *next;
|
||||
} NotificationQueue;
|
||||
|
||||
|
||||
static WMNotificationQueue *notificationQueueList = NULL;
|
||||
|
||||
/* default queue */
|
||||
static WMNotificationQueue *notificationQueue = NULL;
|
||||
|
||||
|
||||
WMNotificationQueue*
|
||||
WMGetDefaultNotificationQueue(void)
|
||||
WMNotificationQueue *WMGetDefaultNotificationQueue(void)
|
||||
{
|
||||
if (!notificationQueue)
|
||||
notificationQueue = WMCreateNotificationQueue();
|
||||
@@ -407,18 +361,14 @@ WMGetDefaultNotificationQueue(void)
|
||||
return notificationQueue;
|
||||
}
|
||||
|
||||
|
||||
WMNotificationQueue*
|
||||
WMCreateNotificationQueue(void)
|
||||
WMNotificationQueue *WMCreateNotificationQueue(void)
|
||||
{
|
||||
NotificationQueue *queue;
|
||||
|
||||
queue = wmalloc(sizeof(NotificationQueue));
|
||||
|
||||
queue->asapQueue =
|
||||
WMCreateArrayWithDestructor(8, (WMFreeDataProc*)WMReleaseNotification);
|
||||
queue->idleQueue =
|
||||
WMCreateArrayWithDestructor(8, (WMFreeDataProc*)WMReleaseNotification);
|
||||
queue->asapQueue = WMCreateArrayWithDestructor(8, (WMFreeDataProc *) WMReleaseNotification);
|
||||
queue->idleQueue = WMCreateArrayWithDestructor(8, (WMFreeDataProc *) WMReleaseNotification);
|
||||
queue->next = notificationQueueList;
|
||||
|
||||
notificationQueueList = queue;
|
||||
@@ -426,36 +376,25 @@ WMCreateNotificationQueue(void)
|
||||
return queue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification,
|
||||
WMPostingStyle postingStyle)
|
||||
void WMEnqueueNotification(WMNotificationQueue * queue, WMNotification * notification, WMPostingStyle postingStyle)
|
||||
{
|
||||
WMEnqueueCoalesceNotification(queue, notification, postingStyle,
|
||||
WNCOnName|WNCOnSender);
|
||||
WMEnqueueCoalesceNotification(queue, notification, postingStyle, WNCOnName | WNCOnSender);
|
||||
}
|
||||
|
||||
|
||||
#define NOTIF ((WMNotification*)cdata)
|
||||
#define ITEM ((WMNotification*)item)
|
||||
|
||||
static int
|
||||
matchSenderAndName(void *item, void *cdata)
|
||||
static int matchSenderAndName(void *item, void *cdata)
|
||||
{
|
||||
return (NOTIF->object == ITEM->object && strcmp(NOTIF->name, ITEM->name) == 0);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
matchSender(void *item, void *cdata)
|
||||
static int matchSender(void *item, void *cdata)
|
||||
{
|
||||
return (NOTIF->object == ITEM->object);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
matchName(void *item, void *cdata)
|
||||
static int matchName(void *item, void *cdata)
|
||||
{
|
||||
return (strcmp(NOTIF->name, ITEM->name) == 0);
|
||||
}
|
||||
@@ -463,10 +402,7 @@ matchName(void *item, void *cdata)
|
||||
#undef NOTIF
|
||||
#undef ITEM
|
||||
|
||||
|
||||
void
|
||||
WMDequeueNotificationMatching(WMNotificationQueue *queue,
|
||||
WMNotification *notification, unsigned mask)
|
||||
void WMDequeueNotificationMatching(WMNotificationQueue * queue, WMNotification * notification, unsigned mask)
|
||||
{
|
||||
WMMatchDataProc *matchFunc;
|
||||
|
||||
@@ -483,12 +419,9 @@ WMDequeueNotificationMatching(WMNotificationQueue *queue,
|
||||
WMRemoveFromArrayMatching(queue->idleQueue, matchFunc, notification);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMEnqueueCoalesceNotification(WMNotificationQueue * queue,
|
||||
WMNotification *notification,
|
||||
WMPostingStyle postingStyle,
|
||||
unsigned coalesceMask)
|
||||
WMNotification * notification, WMPostingStyle postingStyle, unsigned coalesceMask)
|
||||
{
|
||||
if (coalesceMask != WNCNone)
|
||||
WMDequeueNotificationMatching(queue, notification, coalesceMask);
|
||||
@@ -509,9 +442,7 @@ WMEnqueueCoalesceNotification(WMNotificationQueue *queue,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
W_FlushASAPNotificationQueue()
|
||||
void W_FlushASAPNotificationQueue()
|
||||
{
|
||||
WMNotificationQueue *queue = notificationQueueList;
|
||||
|
||||
@@ -525,9 +456,7 @@ W_FlushASAPNotificationQueue()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
W_FlushIdleNotificationQueue()
|
||||
void W_FlushIdleNotificationQueue()
|
||||
{
|
||||
WMNotificationQueue *queue = notificationQueueList;
|
||||
|
||||
@@ -540,4 +469,3 @@ W_FlushIdleNotificationQueue()
|
||||
queue = queue->next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
Makefile Makefile.in
|
||||
.psrc .inslog2 tca.map tca.log pchdir *.rpt
|
||||
*.pot
|
||||
*.mo
|
||||
@@ -24,14 +24,14 @@ POTFILES = \
|
||||
SUFFIXES = .po .mo
|
||||
|
||||
.po.mo:
|
||||
msgfmt -o $@ $<
|
||||
msgfmt -c -o $@ $<
|
||||
|
||||
|
||||
all-local: $(CATALOGS)
|
||||
|
||||
WINGs.pot: $(POTFILES)
|
||||
xgettext --default-domain=WINGs \
|
||||
--add-comments --keyword=_ $(POTFILES)
|
||||
--add-comments --keyword=_ --keyword=N_ $(POTFILES)
|
||||
if cmp -s WINGs.po WINGs.pot; then \
|
||||
rm -f WINGs.po; \
|
||||
else \
|
||||
|
||||
@@ -2,17 +2,18 @@
|
||||
Instructions for translating po files can be found in the po/README directory
|
||||
in the top of the WindowMaker source tree.
|
||||
|
||||
All files are in UTF-8
|
||||
|
||||
File Language Note Current Maintainer
|
||||
------------------------------------------------------------------------------
|
||||
ca.po Catalan Ernest Adrogué <eadrogue@gmx.net>
|
||||
cs.po Czech 1 Jiri Hnidek <Jiri.Hnidek@vslib.cz
|
||||
de.po German 1 Guido Scholz <guido.scholz@bayernline.de>
|
||||
cs.po Czech Jiri Hnidek <Jiri.Hnidek@vslib.cz
|
||||
de.po German Guido Scholz <guido.scholz@bayernline.de>
|
||||
fr.po French Emmanuel Benoit <tseeker@neptune.fr>
|
||||
Antoine Hulin <antoine@origan.fdn.org>
|
||||
sk.po Slovak 1 Jan 'judas' Tomka <judas@linux.sk>
|
||||
sk.po Slovak Jan 'judas' Tomka <judas@linux.sk>
|
||||
bg.po Bulgarian Anton Zinoviev <zinoviev@debian.org>
|
||||
|
||||
Notes
|
||||
-----
|
||||
1. Uses iso8859-2 character set.
|
||||
|
||||
|
||||
282
WINGs/po/bg.po
282
WINGs/po/bg.po
@@ -10,58 +10,58 @@ msgstr ""
|
||||
"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
|
||||
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CP1251\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../../WINGs/connection.c:461 ../../WINGs/connection.c:526
|
||||
#: ../../WINGs/connection.c:569
|
||||
msgid "Bad address-service-protocol combination"
|
||||
msgstr "Íåïðàâèëíà êîìáèíàöèÿ àäðåñ-óñëóãà-ïðîòîêîë"
|
||||
msgstr "Неправилна комбинация адрес-услуга-протокол"
|
||||
|
||||
#: ../../WINGs/error.c:54
|
||||
#, c-format
|
||||
msgid "Unknown error %d"
|
||||
msgstr "Íåïîçíàòà ãðåøêà %d"
|
||||
msgstr "Непозната грешка %d"
|
||||
|
||||
#: ../../WINGs/error.c:59
|
||||
#, c-format
|
||||
msgid "Error %d"
|
||||
msgstr "Ãðåøêà %d"
|
||||
msgstr "Грешка %d"
|
||||
|
||||
#: ../../WINGs/error.c:110
|
||||
msgid " warning: "
|
||||
msgstr "âíèìàíèå: "
|
||||
msgstr "внимание: "
|
||||
|
||||
#: ../../WINGs/error.c:137
|
||||
msgid " fatal error: "
|
||||
msgstr " êðèòè÷íà ãðåøêà: "
|
||||
msgstr " критична грешка: "
|
||||
|
||||
#: ../../WINGs/error.c:163 ../../WINGs/error.c:192
|
||||
msgid " error: "
|
||||
msgstr " ãðåøêà: "
|
||||
msgstr " грешка: "
|
||||
|
||||
#: ../../WINGs/findfile.c:48
|
||||
#, c-format
|
||||
msgid "could not get password entry for UID %i"
|
||||
msgstr "íå ìîæå äà ñå ïîëó÷è çàïèñúò çà ïàðîëà íà ïîòðåáèòåë ñ íîìåð %i"
|
||||
msgstr "не може да се получи записът за парола на потребител с номер %i"
|
||||
|
||||
#: ../../WINGs/findfile.c:66
|
||||
#, c-format
|
||||
msgid "could not get password entry for user %s"
|
||||
msgstr "íå ìîæå äà ñå ïîëó÷è çàïèñúò çà ïàðîëà íà ïîòðåáèòåë %s<"
|
||||
msgstr "не може да се получи записът за парола на потребител %s<"
|
||||
|
||||
#: ../../WINGs/host.c:114
|
||||
msgid "Cannot get current host name"
|
||||
msgstr "Íå ìîæå äà ñå ïîëó÷è èìåòî íà õîñòà"
|
||||
msgstr "Не може да се получи името на хоста"
|
||||
|
||||
#: ../../WINGs/proplist.c:91
|
||||
#, c-format
|
||||
msgid "syntax error in %s %s, line %i: %s"
|
||||
msgstr "ñèíòàêòè÷íà ãðåøêà â %s %s, ðåä %i: %s"
|
||||
msgstr "синтактична грешка в %s %s, ред %i: %s"
|
||||
|
||||
#: ../../WINGs/proplist.c:150
|
||||
msgid "Only string or data is supported for a proplist dictionary key"
|
||||
msgstr "Êàòî êëþ÷ çà äîñòúï äî proplist ñå ïîääúðæàò ñàìî íèçîâå èëè äàííè"
|
||||
msgstr "Като ключ за достъп до proplist се поддържат само низове или данни"
|
||||
|
||||
#: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236
|
||||
#: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474
|
||||
@@ -69,153 +69,153 @@ msgstr "
|
||||
#: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372
|
||||
#: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540
|
||||
msgid "Used proplist functions on non-WMPropLists objects"
|
||||
msgstr "Ïîëçâàò ñå proplist-ôóíêöèè çà îáåêòè, êîèòî íå ñà îò òèï WMPropLists"
|
||||
msgstr "Ползват се proplist-функции за обекти, които не са от тип WMPropLists"
|
||||
|
||||
#: ../../WINGs/proplist.c:630
|
||||
msgid "unterminated PropList string"
|
||||
msgstr "íåçàâúðøåí íèç PropList"
|
||||
msgstr "незавършен низ PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:670
|
||||
msgid "unterminated PropList data"
|
||||
msgstr "íåçàâúðøåíè äàííè PropList"
|
||||
msgstr "незавършени данни PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:678
|
||||
msgid "unterminated PropList data (missing hexdigit)"
|
||||
msgstr "íåçàâúðøåíè äàííè PropList (ëèïñâà øåñòíàäåñåòè÷íî ÷èñëî)"
|
||||
msgstr "незавършени данни PropList (липсва шестнадесетично число)"
|
||||
|
||||
#: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695
|
||||
msgid "non hexdigit character in PropList data"
|
||||
msgstr "çíàê, êîéòî íå å øåñòíàäåñåòè÷íî ÷èñëî, â äàííè PropList"
|
||||
msgstr "знак, който не е шестнадесетично число, в данни PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:729
|
||||
msgid "unterminated PropList array"
|
||||
msgstr "íåçàâúðøåí ìàñèâ PropList"
|
||||
msgstr "незавършен масив PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:737
|
||||
msgid "missing or unterminated PropList array"
|
||||
msgstr "ëèïñâàù èëè íåçàâúðøåí ìàñèâ Proplist"
|
||||
msgstr "липсващ или незавършен масив Proplist"
|
||||
|
||||
#: ../../WINGs/proplist.c:747
|
||||
msgid "could not get PropList array element"
|
||||
msgstr "íå ìîæå äà ñå ïîëó÷è åëåìåíò îò ìàñèâ PropList"
|
||||
msgstr "не може да се получи елемент от масив PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:776
|
||||
msgid "unterminated PropList dictionary"
|
||||
msgstr "íåçàâúðøåí ðå÷íèê PropList"
|
||||
msgstr "незавършен речник PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:793
|
||||
msgid "missing PropList dictionary key"
|
||||
msgstr "ëèïñâàù êëþ÷ çà äîñòúï äî PropList"
|
||||
msgstr "липсващ ключ за достъп до PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:795
|
||||
msgid "missing PropList dictionary entry key or unterminated dictionary"
|
||||
msgstr "ëèïñâàù êëþ÷ çà äîñòúï äî PropList èëè íåçàâúðøåí ðå÷íèê"
|
||||
msgstr "липсващ ключ за достъп до PropList или незавършен речник"
|
||||
|
||||
#: ../../WINGs/proplist.c:803
|
||||
msgid "error parsing PropList dictionary key"
|
||||
msgstr "ãðåøêà ïðè ðàçáîð íà êëþ÷ â PropList"
|
||||
msgstr "грешка при разбор на ключ в PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:811
|
||||
msgid "missing = in PropList dictionary entry"
|
||||
msgstr "ëèïñâà çíàê çà ðàâåíñòâî â åëåìåíò íà PropList"
|
||||
msgstr "липсва знак за равенство в елемент на PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:819
|
||||
msgid "error parsing PropList dictionary entry value"
|
||||
msgstr "ãðåøêà ïðè ðàçáîð íà ñòîéíîñò íà åëåìåíò â PropList"
|
||||
msgstr "грешка при разбор на стойност на елемент в PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:827
|
||||
msgid "missing ; in PropList dictionary entry"
|
||||
msgstr "ëèïñâà çíàê òî÷êà è çàïåòàÿ â åëåìåíò íà PropList"
|
||||
msgstr "липсва знак точка и запетая в елемент на PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:888
|
||||
msgid ""
|
||||
"was expecting a string, data, array or dictionary. If it's a string, try "
|
||||
"enclosing it with \"."
|
||||
msgstr "î÷àêâàõà ñå íèç, äàííè, ìàñèâ èëè ðå÷íèê. Àêî å ðå÷íèê, ïðîáâàéòå äà ãî îãðàäèòå ñ \"."
|
||||
msgstr "очакваха се низ, данни, масив или речник. Ако е речник, пробвайте да го оградите с \"."
|
||||
|
||||
#: ../../WINGs/proplist.c:892
|
||||
msgid "Comments are not allowed inside WindowMaker owned domain files."
|
||||
msgstr "Íå ñå ïîçâîëÿâàò êîìåíòàðè âúâ ôàéëîâå ñ îáëàñòè, ñîáñòâåíîñò íà Óèíäîó Ìåéêúð"
|
||||
msgstr "Не се позволяват коментари във файлове с области, собственост на Уиндоу Мейкър"
|
||||
|
||||
#: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1628
|
||||
msgid "extra data after end of property list"
|
||||
msgstr "äàííè â ïîâå÷å ñëåä êðàÿ íà ñïèñúê ñâîéñòâà"
|
||||
msgstr "данни в повече след края на списък свойства"
|
||||
|
||||
#: ../../WINGs/proplist.c:1606
|
||||
#, c-format
|
||||
msgid "could not get size for file '%s'"
|
||||
msgstr "íå ìîæå äà ñå ïîëó÷è ðàçìåðúò çà ôàéë \"%s\""
|
||||
msgstr "не може да се получи размерът за файл \"%s\""
|
||||
|
||||
#: ../../WINGs/proplist.c:1618
|
||||
#, c-format
|
||||
msgid "error reading from file '%s'"
|
||||
msgstr "ãðåøêà ïðè ÷åòåíå îò ôàéë \"%s\""
|
||||
msgstr "грешка при четене от файл \"%s\""
|
||||
|
||||
#: ../../WINGs/proplist.c:1669
|
||||
#, c-format
|
||||
msgid "mkstemp (%s) failed"
|
||||
msgstr "mkstemp (%s) íå óñïÿ"
|
||||
msgstr "mkstemp (%s) не успя"
|
||||
|
||||
#: ../../WINGs/proplist.c:1680
|
||||
#, c-format
|
||||
msgid "mktemp (%s) failed"
|
||||
msgstr "mktemp (%s) íå óñïÿ"
|
||||
msgstr "mktemp (%s) не успя"
|
||||
|
||||
#: ../../WINGs/proplist.c:1691
|
||||
#, c-format
|
||||
msgid "open (%s) failed"
|
||||
msgstr "open (%s) íå óñïÿ"
|
||||
msgstr "open (%s) не успя"
|
||||
|
||||
#: ../../WINGs/proplist.c:1698
|
||||
#, c-format
|
||||
msgid "writing to file: %s failed"
|
||||
msgstr "çàïèñúò âúâ ôàéë %s íå óñïÿ"
|
||||
msgstr "записът във файл %s не успя"
|
||||
|
||||
#: ../../WINGs/proplist.c:1706
|
||||
#, c-format
|
||||
msgid "fclose (%s) failed"
|
||||
msgstr "fclose (%s) íå óñïÿ"
|
||||
msgstr "fclose (%s) не успя"
|
||||
|
||||
#: ../../WINGs/proplist.c:1715
|
||||
#, c-format
|
||||
msgid "rename ('%s' to '%s') failed"
|
||||
msgstr "ïðåèìåíóâàíåòî (îò \"%s\" íà \"%s\") íå óñïÿ"
|
||||
msgstr "преименуването (от \"%s\" на \"%s\") не успя"
|
||||
|
||||
#. something happened with the file. just overwrite it
|
||||
#: ../../WINGs/userdefaults.c:192 ../../WINGs/userdefaults.c:208
|
||||
#, c-format
|
||||
msgid "cannot read domain from file '%s' when syncing"
|
||||
msgstr "íå ìîæå äà ñå ïðî÷åòå îáëàñòòà îò ôàéë \"%s\" ïðè ñèíõðîíèçèðàíå"
|
||||
msgstr "не може да се прочете областта от файл \"%s\" при синхронизиране"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198 ../../WINGs/wcolor.c:211 ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#, c-format
|
||||
msgid "could not allocate %s color"
|
||||
msgstr "íå ìîæå äà ñå çàäåëè öâÿò %s"
|
||||
msgstr "не може да се задели цвят %s"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198
|
||||
msgid "white"
|
||||
msgstr "áÿë"
|
||||
msgstr "бял"
|
||||
|
||||
#: ../../WINGs/wcolor.c:211
|
||||
msgid "black"
|
||||
msgstr "÷åðåí"
|
||||
msgstr "черен"
|
||||
|
||||
#: ../../WINGs/wcolor.c:250
|
||||
msgid "gray"
|
||||
msgstr "ñèâ"
|
||||
msgstr "сив"
|
||||
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
msgid "dark gray"
|
||||
msgstr "òúìíîñèâ"
|
||||
msgstr "тъмносив"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:415
|
||||
msgid "Colors"
|
||||
msgstr "Öâåòîâå"
|
||||
msgstr "Цветове"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:605 ../../WINGs/wcolorpanel.c:2824
|
||||
msgid "Brightness"
|
||||
msgstr "ßðêîñò"
|
||||
msgstr "Яркост"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:607 ../../WINGs/wcolorpanel.c:683
|
||||
#: ../../WINGs/wcolorpanel.c:716 ../../WINGs/wcolorpanel.c:750
|
||||
@@ -225,102 +225,102 @@ msgstr "
|
||||
#: ../../WINGs/wcolorpanel.c:2862 ../../WINGs/wcolorpanel.c:2898
|
||||
#: ../../WINGs/wcolorpanel.c:3746
|
||||
msgid "Color Panel: Could not allocate memory"
|
||||
msgstr "Color Panel: íå ìîæå äà ñå çàäåëè ïàìåò"
|
||||
msgstr "Color Panel: не може да се задели памет"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:680 ../../WINGs/wcolorpanel.c:681
|
||||
msgid "Red"
|
||||
msgstr "×åðâåí"
|
||||
msgstr "Червен"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:713 ../../WINGs/wcolorpanel.c:714
|
||||
msgid "Green"
|
||||
msgstr "Çåëåí"
|
||||
msgstr "Зелен"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:747 ../../WINGs/wcolorpanel.c:748
|
||||
msgid "Blue"
|
||||
msgstr "Ñèí"
|
||||
msgstr "Син"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:807 ../../WINGs/wcolorpanel.c:808
|
||||
msgid "Cyan"
|
||||
msgstr "Ñèíüîçåëåí"
|
||||
msgstr "Синьозелен"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:841 ../../WINGs/wcolorpanel.c:842
|
||||
msgid "Magenta"
|
||||
msgstr "Ïóðïóðåí"
|
||||
msgstr "Пурпурен"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:875 ../../WINGs/wcolorpanel.c:876
|
||||
msgid "Yellow"
|
||||
msgstr "Æúëò"
|
||||
msgstr "Жълт"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:910 ../../WINGs/wcolorpanel.c:911
|
||||
msgid "Black"
|
||||
msgstr "×åðåí"
|
||||
msgstr "Черен"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:991
|
||||
msgid "Spectrum"
|
||||
msgstr "Ñïåêòúð"
|
||||
msgstr "Спектър"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1021
|
||||
msgid "Palette"
|
||||
msgstr "Ïàëèòðà"
|
||||
msgstr "Палитра"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1027
|
||||
msgid "New from File..."
|
||||
msgstr "Íîâà îò ôàéë..."
|
||||
msgstr "Нова от файл..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1028 ../../WINGs/wcolorpanel.c:1076
|
||||
#: ../../WINGs/wcolorpanel.c:1093
|
||||
msgid "Rename..."
|
||||
msgstr "Ïðåèìåíóâàé..."
|
||||
msgstr "Преименувай..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1029 ../../WINGs/wcolorpanel.c:1077
|
||||
#: ../../WINGs/wcolorpanel.c:1094 ../../WINGs/wcolorpanel.c:3321
|
||||
msgid "Remove"
|
||||
msgstr "Ïðåìàõíè"
|
||||
msgstr "Премахни"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1030
|
||||
msgid "Copy"
|
||||
msgstr "Êîïèðàé"
|
||||
msgstr "Копирай"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1031
|
||||
#, fuzzy
|
||||
msgid "New from Clipboard"
|
||||
msgstr "Íîâà îò Clipboard"
|
||||
msgstr "Нова от Clipboard"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1052
|
||||
msgid "X11-Colors"
|
||||
msgstr "Öâåòîâå îò X11"
|
||||
msgstr "Цветове от X11"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1069
|
||||
msgid "Color"
|
||||
msgstr "Öâÿò"
|
||||
msgstr "Цвят"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1075
|
||||
msgid "Add..."
|
||||
msgstr "Äîáàâè..."
|
||||
msgstr "Добави..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1085
|
||||
msgid "List"
|
||||
msgstr "Ñïèñúê"
|
||||
msgstr "Списък"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1092
|
||||
msgid "New..."
|
||||
msgstr "Íîâ..."
|
||||
msgstr "Нов..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1231
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Color Panel: Could not create directory %s needed to store configurations"
|
||||
msgstr "Color Panel: Íå ìîæå äà ñå ñúçäàäå äèðåêòîðèÿ %s, íåîáõîäèìà çà äà ñå çàïàçÿò íàñòðîéêèòå"
|
||||
msgstr "Color Panel: Не може да се създаде директория %s, необходима за да се запазят настройките"
|
||||
|
||||
#. Delete the file, it doesn't belong here
|
||||
#: ../../WINGs/wcolorpanel.c:1237 ../../WINGs/wcolorpanel.c:3207
|
||||
#: ../../WINGs/wcolorpanel.c:3211
|
||||
msgid "File Error"
|
||||
msgstr "Ôàéëîâà ãðåøêà"
|
||||
msgstr "Файлова грешка"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1238
|
||||
msgid "Could not create ColorPanel configuration directory"
|
||||
msgstr "Íå ìîæå äà ñå ñúçäàäå êîíôèãóðàöèîííà äèðåêòîðèÿ çà ColorPanel"
|
||||
msgstr "Не може да се създаде конфигурационна директория за ColorPanel"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1239 ../../WINGs/wcolorpanel.c:3208
|
||||
#: ../../WINGs/wcolorpanel.c:3213 ../../WINGs/wcolorpanel.c:3240
|
||||
@@ -328,60 +328,60 @@ msgstr "
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wfilepanel.c:971 ../../WINGs/wfontpanel.c:709
|
||||
msgid "OK"
|
||||
msgstr "Ïðèåìàì"
|
||||
msgstr "Приемам"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1245 ../../WINGs/wcolorpanel.c:1281
|
||||
#: ../../WINGs/wcolorpanel.c:1299
|
||||
msgid "Color Panel: Could not find file"
|
||||
msgstr "Color Panel: Íå ìîæå äà ñå îòêðèå ôàéëà"
|
||||
msgstr "Color Panel: Не може да се открие файла"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1486 ../../WINGs/wcolorpanel.c:1551
|
||||
#: ../../WINGs/wcolorpanel.c:1615
|
||||
msgid "Color Panel: X failed request"
|
||||
msgstr "Color Panel: íå óñïÿ çàÿâêà êúì X"
|
||||
msgstr "Color Panel: не успя заявка към X"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2860
|
||||
msgid "Saturation"
|
||||
msgstr "Íàñèòåíîñò"
|
||||
msgstr "Наситеност"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2896
|
||||
msgid "Hue"
|
||||
msgstr "Íþàíñ"
|
||||
msgstr "Нюанс"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3146
|
||||
msgid "Open Palette"
|
||||
msgstr "Îòâàðÿíå íà ïàëèòðà"
|
||||
msgstr "Отваряне на палитра"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3208
|
||||
msgid "Invalid file format !"
|
||||
msgstr "Íåïðàâèëåí ôàéëîâ ôîðìàò!"
|
||||
msgstr "Неправилен файлов формат!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3210
|
||||
#, c-format
|
||||
msgid "can't remove file %s"
|
||||
msgstr "íå ìîæå äà ñå èçòðèå ôàéëúò %s"
|
||||
msgstr "не може да се изтрие файлът %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3212
|
||||
msgid "Couldn't remove file from Configuration Directory !"
|
||||
msgstr "Íå ìîæå äà ñå èçòðèå ôàéë îò äèðåêòîðèÿòà çà íàñòðîéêè!"
|
||||
msgstr "Не може да се изтрие файл от директорията за настройки!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
msgid "Rename"
|
||||
msgstr "Ïðåèìåíóâàíå"
|
||||
msgstr "Преименуване"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
msgid "Rename palette to:"
|
||||
msgstr "Ïðåèìåíóâàé ïàëèòðàòà íà "
|
||||
msgstr "Преименувай палитрата на "
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3240 ../../WINGs/wfilepanel.c:259
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
msgid "Cancel"
|
||||
msgstr "Îòìåíÿì"
|
||||
msgstr "Отменям"
|
||||
|
||||
#. Careful, this palette exists already
|
||||
#: ../../WINGs/wcolorpanel.c:3256 ../../WINGs/wfilepanel.c:760
|
||||
msgid "Warning"
|
||||
msgstr "Âíèìàíèå"
|
||||
msgstr "Внимание"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257
|
||||
msgid ""
|
||||
@@ -389,26 +389,26 @@ msgid ""
|
||||
"\n"
|
||||
"Overwrite ?"
|
||||
msgstr ""
|
||||
"Òàêàâà ïàëèòðà âå÷å ñúùåñòâóâà!\n"
|
||||
"Такава палитра вече съществува!\n"
|
||||
"\n"
|
||||
"Äà áúäå ëè çàìåíåíà ñ íîâàòà?"
|
||||
"Да бъде ли заменена с новата?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
msgid "No"
|
||||
msgstr "Íå"
|
||||
msgstr "Не"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
msgid "Yes"
|
||||
msgstr "Äà"
|
||||
msgstr "Да"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3289
|
||||
#, c-format
|
||||
msgid "Couldn't rename palette %s to %s\n"
|
||||
msgstr "Ïàëèòðàòà %s íå ìîæå äà ñå ïðåèìåíóâà íà %s\n"
|
||||
msgstr "Палитрата %s не може да се преименува на %s\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3315
|
||||
msgid "This will permanently remove the palette "
|
||||
msgstr "Òîâà ùå îòñòðàíè ïàëèòðàòà íåîáðàòèìî "
|
||||
msgstr "Това ще отстрани палитрата необратимо "
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3318
|
||||
msgid ""
|
||||
@@ -418,243 +418,243 @@ msgid ""
|
||||
msgstr ""
|
||||
".\n"
|
||||
"\n"
|
||||
"Óáåäåíè ëè ñòå, ÷å èñêàòå äà îòñòðàíèòå òàçè ïàëèòðà?"
|
||||
"Убедени ли сте, че искате да отстраните тази палитра?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3343
|
||||
#, c-format
|
||||
msgid "Couldn't remove palette %s\n"
|
||||
msgstr "Ïàëèòðàòà %s íå ìîæå äà áúäå îòñòðàíåíà\n"
|
||||
msgstr "Палитрата %s не може да бъде отстранена\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3648
|
||||
#, c-format
|
||||
msgid "Could not open %s"
|
||||
msgstr "Íå ìîæå äà áúäå îòâîðåí %s"
|
||||
msgstr "Не може да бъде отворен %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3655
|
||||
#, c-format
|
||||
msgid "Could not create %s"
|
||||
msgstr "Íå ìîæå äà áúäå ñúçäàäåí %s"
|
||||
msgstr "Не може да бъде създаден %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3666
|
||||
#, c-format
|
||||
msgid "Write error on file %s"
|
||||
msgstr "Ãðåøêà ïðè çàïèñ âúâ ôàéë %s"
|
||||
msgstr "Грешка при запис във файл %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3711
|
||||
msgid "Color Panel: Color unspecified"
|
||||
msgstr "Color Panel: Íå å ïîñî÷åí öâÿò"
|
||||
msgstr "Color Panel: Не е посочен цвят"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:235
|
||||
msgid "Name:"
|
||||
msgstr "Èìå:"
|
||||
msgstr "Име:"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396
|
||||
msgid "Open"
|
||||
msgstr "Îòâîðè"
|
||||
msgstr "Отвори"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402
|
||||
msgid "Save"
|
||||
msgstr "Çàïàçè"
|
||||
msgstr "Запази"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:562
|
||||
#, c-format
|
||||
msgid "WINGs: could not open directory %s\n"
|
||||
msgstr "WINGs: äèðåêòîðèÿòà %s íå ìîæå äà ñå îòâîðè\n"
|
||||
msgstr "WINGs: директорията %s не може да се отвори\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:580
|
||||
#, c-format
|
||||
msgid "WINGs: could not stat %s\n"
|
||||
msgstr "WINGs: íå ìîãàò äà ñå ïîëó÷àò àòðèáóòèòå (stat) çà %s\n"
|
||||
msgstr "WINGs: не могат да се получат атрибутите (stat) за %s\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:647 ../../WINGs/wfilepanel.c:970
|
||||
#: ../../WINGs/wfontpanel.c:708
|
||||
msgid "Error"
|
||||
msgstr "Ãðåøêà"
|
||||
msgstr "Грешка"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:658
|
||||
msgid "Create Directory"
|
||||
msgstr "Ñúçäàâàíå íà äèðåêòîðèÿ"
|
||||
msgstr "Създаване на директория"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:659
|
||||
msgid "Enter directory name"
|
||||
msgstr "Âúâåäåòå èìåòî íà äèðåêòîðèÿòà"
|
||||
msgstr "Въведете името на директорията"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:695 ../../WINGs/wfilepanel.c:734
|
||||
#: ../../WINGs/wfilepanel.c:765 ../../WINGs/wfilepanel.c:793
|
||||
msgid "Permission denied."
|
||||
msgstr "Îòêàçàí äîñòúï"
|
||||
msgstr "Отказан достъп"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:698
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "âå÷å ñúùåñòâóâà \"%s\"."
|
||||
msgstr "вече съществува \"%s\"."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:701
|
||||
msgid "Path does not exist."
|
||||
msgstr "Ïúòÿò íå ñúùåñòâóâà."
|
||||
msgstr "Пътят не съществува."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:731 ../../WINGs/wfilepanel.c:790
|
||||
#, c-format
|
||||
msgid "'%s' does not exist."
|
||||
msgstr "Íå ñúùåñòâóâà \"%s\"."
|
||||
msgstr "Не съществува \"%s\"."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:738 ../../WINGs/wfilepanel.c:797
|
||||
msgid "Insufficient memory available."
|
||||
msgstr "Íå å äîñòúïíà äîñòàòú÷íî ïàìåò."
|
||||
msgstr "Не е достъпна достатъчно памет."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:742 ../../WINGs/wfilepanel.c:801
|
||||
#, c-format
|
||||
msgid "'%s' is on a read-only filesystem."
|
||||
msgstr "\"%s\" ñå íàìèðà âúâ ôàéëîâà ñèñòåìà ñ äîñòúï ñàìî çà ÷åòåíå."
|
||||
msgstr "\"%s\" се намира във файлова система с достъп само за четене."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:777
|
||||
#: ../../WINGs/wfilepanel.c:804
|
||||
#, c-format
|
||||
msgid "Can not delete '%s'."
|
||||
msgstr "\"%s\" íå ìîæå äà áúäå èçòðèò."
|
||||
msgstr "\"%s\" не може да бъде изтрит."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:752
|
||||
#, c-format
|
||||
msgid "Delete directory %s ?"
|
||||
msgstr "Äà ñå èçòðèå ëè äèðåêòîðèÿòà %s?"
|
||||
msgstr "Да се изтрие ли директорията %s?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:756
|
||||
#, c-format
|
||||
msgid "Delete file %s ?"
|
||||
msgstr "Äà ñå èçòðèå ëè ôàéëúò %s?"
|
||||
msgstr "Да се изтрие ли файлът %s?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:768
|
||||
#, c-format
|
||||
msgid "Directory '%s' does not exist."
|
||||
msgstr "Äèðåêòîðèÿòà \"%s\" íå ñúùåñòâóâà."
|
||||
msgstr "Директорията \"%s\" не съществува."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:771
|
||||
#, c-format
|
||||
msgid "Directory '%s' is not empty."
|
||||
msgstr "Äèðåêòîðèÿòà \"%s\" íå å ïðàçíà."
|
||||
msgstr "Директорията \"%s\" не е празна."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:774
|
||||
#, c-format
|
||||
msgid "Directory '%s' is busy."
|
||||
msgstr "Äèðåêòîðèÿòà \"%s å çàåòà."
|
||||
msgstr "Директорията \"%s е заета."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:787
|
||||
#, c-format
|
||||
msgid "'%s' is a directory."
|
||||
msgstr "\"%s\" å äèðåêòîðèÿ."
|
||||
msgstr "\"%s\" е директория."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:829
|
||||
#, c-format
|
||||
msgid "An error occured browsing '%s'."
|
||||
msgstr "Íàñòúïè ãðåøêà ïðè ïîêàçâàíå íà \"%s\"."
|
||||
msgstr "Настъпи грешка при показване на \"%s\"."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:833
|
||||
#, c-format
|
||||
msgid "'%s' is not a directory."
|
||||
msgstr "\"%s\" íå å äèðåêòîðèÿ."
|
||||
msgstr "\"%s\" не е директория."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:970
|
||||
msgid "File does not exist."
|
||||
msgstr "Ôàéëúò íå ñúùåñòâóâà."
|
||||
msgstr "Файлът не съществува."
|
||||
|
||||
#: ../../WINGs/wfont.c:129
|
||||
#, c-format
|
||||
msgid "the following character sets are missing in %s:"
|
||||
msgstr "â %s ëèïñâàò ñëåäíèòå êîäèðàíèÿ:"
|
||||
msgstr "в %s липсват следните кодирания:"
|
||||
|
||||
#: ../../WINGs/wfont.c:136
|
||||
#, c-format
|
||||
msgid ""
|
||||
"the string \"%s\" will be used in place of any characters from those sets."
|
||||
msgstr "Âìåñòî êîé äà å ñèìâîë îò òåçè êîäèðàíèÿ ùå ñå èçïîëçâà íèçúò \"%s\"."
|
||||
msgstr "Вместо кой да е символ от тези кодирания ще се използва низът \"%s\"."
|
||||
|
||||
#: ../../WINGs/wfont.c:300 ../../WINGs/wfont.c:336
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgstr "íå ìîæå äà ñå çàðåäè øðèôòîâà êîìáèíàöèÿ %s. Îïèò çà øðèôò fixed."
|
||||
msgstr "не може да се зареди шрифтова комбинация %s. Опит за шрифт fixed."
|
||||
|
||||
#: ../../WINGs/wfont.c:306 ../../WINGs/wfont.c:342
|
||||
#, c-format
|
||||
msgid "could not load font %s. Trying fixed."
|
||||
msgstr "íå ìîæå äà ñå çàðåäè øðèôò %s. Îïèò çà øðèôò fixed."
|
||||
msgstr "не може да се зареди шрифт %s. Опит за шрифт fixed."
|
||||
|
||||
#: ../../WINGs/wfont.c:310 ../../WINGs/wfont.c:346
|
||||
msgid "could not load fixed font!"
|
||||
msgstr "íå ìîæå äà ñå çàðåäè øðèôòúò fixed!"
|
||||
msgstr "не може да се зареди шрифтът fixed!"
|
||||
|
||||
#: ../../WINGs/wfont.c:441
|
||||
#, c-format
|
||||
msgid "font description %s is too large."
|
||||
msgstr "øðèôòîâîòî îïèñàíèå %s å òâúðäå äúëãî."
|
||||
msgstr "шрифтовото описание %s е твърде дълго."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:205
|
||||
msgid "Test!!!"
|
||||
msgstr "Ïðîáà!!! Test!!!"
|
||||
msgstr "Проба!!! Test!!!"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:211
|
||||
msgid "Family"
|
||||
msgstr "Ãàðíèòóðà"
|
||||
msgstr "Гарнитура"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:222
|
||||
msgid "Typeface"
|
||||
msgstr "Ñòèë"
|
||||
msgstr "Стил"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:233
|
||||
msgid "Size"
|
||||
msgstr "Ðàçìåð"
|
||||
msgstr "Размер"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:252
|
||||
msgid "Set"
|
||||
msgstr "Óñòàíîâè"
|
||||
msgstr "Установи"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:257
|
||||
msgid "Revert"
|
||||
msgstr "Ïðåäèøíîòî"
|
||||
msgstr "Предишното"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:709
|
||||
msgid "Could not retrieve font list"
|
||||
msgstr "Íå ìîæå äà ñå ïîëó÷è ñïèñúêà îò øðèôòîâå"
|
||||
msgstr "Не може да се получи списъка от шрифтове"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:721
|
||||
#, c-format
|
||||
msgid "font name %s is longer than 256, which is invalid."
|
||||
msgstr "èìåòî íà øðèôòà %s å ïî-äúëãî îò 256 ñèìâîëà, êîåòî å íåäîïóñòèìî."
|
||||
msgstr "името на шрифта %s е по-дълго от 256 символа, което е недопустимо."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:868
|
||||
msgid "Roman"
|
||||
msgstr "Èçïðàâåí"
|
||||
msgstr "Изправен"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:871
|
||||
msgid "Italic"
|
||||
msgstr "Êóðñèâ"
|
||||
msgstr "Курсив"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:873
|
||||
msgid "Oblique"
|
||||
msgstr "Íàêëîíåí"
|
||||
msgstr "Наклонен"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:875
|
||||
msgid "Rev Italic"
|
||||
msgstr "Îáðàòåí êóðñèâ"
|
||||
msgstr "Обратен курсив"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:877
|
||||
msgid "Rev Oblique"
|
||||
msgstr "Îáðàòíî íàêëîíåí"
|
||||
msgstr "Обратно наклонен"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:883
|
||||
msgid "Normal"
|
||||
msgstr "Íîðìàëåí"
|
||||
msgstr "Нормален"
|
||||
|
||||
#: ../../WINGs/widgets.c:415
|
||||
#, c-format
|
||||
msgid "WINGs: could not load widget images file: %s"
|
||||
msgstr "WINGs: íå ìîæå äà ñå çàðåäè èçîáðàæåíèåòî %s íà áèáëèîòåêàòà."
|
||||
msgstr "WINGs: не може да се зареди изображението %s на библиотеката."
|
||||
|
||||
#: ../../WINGs/widgets.c:763
|
||||
msgid ""
|
||||
"could not load any fonts. Make sure your font installation and locale "
|
||||
"settings are correct."
|
||||
msgstr "íå ìîæå äà ñå çàðåäè íèêàêúâ øðèôò. Óáåäåòå ñå, ÷å èìàòå ïðàâèëíî èíñòàëèðàíè øðèôòîâå è ïîñî÷åí åçèêîâ ëîêàë."
|
||||
msgstr "не може да се зареди никакъв шрифт. Убедете се, че имате правилно инсталирани шрифтове и посочен езиков локал."
|
||||
|
||||
#: ../../WINGs/wruler.c:189
|
||||
msgid "0 inches"
|
||||
msgstr "0 öîëà"
|
||||
msgstr "0 цола"
|
||||
|
||||
463
WINGs/po/ca.po
463
WINGs/po/ca.po
@@ -1,27 +1,27 @@
|
||||
# Catalan messages for WINGs.
|
||||
# Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as GNU Window Maker.
|
||||
# Ernest Adrogué <eadrogue@gmx.net>, 2003.
|
||||
# Copyright (C) 2003 Ernest Adrogué <eadrogue@gmx.net>.
|
||||
# This file is distributed under the terms of the GNU General Public License.
|
||||
#
|
||||
# Version history:
|
||||
# WM-ver author email date
|
||||
# 0.80.2 Ernest Adrogué eadrogue@gmx.net 23 Feb 2003
|
||||
# 0.80.2 Ernest Adrogué eadrogue@gmx.net 23 Feb 2003
|
||||
# CVS-20030914 Ernest Adrogué eadrogue@gmx.net 15 Set 2003
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WINGs 0.80.2\n"
|
||||
"POT-Creation-Date: 2003-02-23 16:54+0100\n"
|
||||
"PO-Revision-Date: 2002-12-06 14:15+0100\n"
|
||||
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
||||
"POT-Creation-Date: 2003-09-16 22:59+0200\n"
|
||||
"PO-Revision-Date: 2003-09-16 23:16+0200\n"
|
||||
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
||||
"Language-Team: Catalan <ca@dodds.net>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../../WINGs/connection.c:461 ../../WINGs/connection.c:526
|
||||
#: ../../WINGs/connection.c:569
|
||||
#: ../../WINGs/connection.c:467 ../../WINGs/connection.c:532
|
||||
#: ../../WINGs/connection.c:575
|
||||
msgid "Bad address-service-protocol combination"
|
||||
msgstr "Combinació adreça-servei-protocol incorrecta"
|
||||
msgstr "Combinació adreça-servei-protocol incorrecta"
|
||||
|
||||
#: ../../WINGs/error.c:54
|
||||
#, c-format
|
||||
@@ -35,39 +35,40 @@ msgstr "Error %d"
|
||||
|
||||
#: ../../WINGs/error.c:110
|
||||
msgid " warning: "
|
||||
msgstr " atenció: "
|
||||
msgstr ": atenció: "
|
||||
|
||||
#: ../../WINGs/error.c:137
|
||||
msgid " fatal error: "
|
||||
msgstr " error fatal: "
|
||||
msgstr ": error fatal: "
|
||||
|
||||
#: ../../WINGs/error.c:163 ../../WINGs/error.c:192
|
||||
msgid " error: "
|
||||
msgstr " error: "
|
||||
msgstr ": error: "
|
||||
|
||||
#: ../../WINGs/findfile.c:48
|
||||
#, c-format
|
||||
msgid "could not get password entry for UID %i"
|
||||
msgstr "no s'ha pogut obtenir l'informació d'usuari per l'UID %i"
|
||||
msgstr "no s'ha pogut obtenir l'informació de compte de l'UID %i"
|
||||
|
||||
#: ../../WINGs/findfile.c:66
|
||||
#, c-format
|
||||
msgid "could not get password entry for user %s"
|
||||
msgstr "no s'ha pogut obtenir l'informació d'usuari per l'usuari %s"
|
||||
msgstr "no s'ha pogut obtenir l'informació de compte de l'usuari %s"
|
||||
|
||||
#: ../../WINGs/host.c:114
|
||||
msgid "Cannot get current host name"
|
||||
msgstr "No s'ha pogut obtenir el nom de host actual"
|
||||
|
||||
# falten coses per traduïr en el codi font. eac
|
||||
#: ../../WINGs/proplist.c:91
|
||||
#, c-format
|
||||
msgid "syntax error in %s %s, line %i: %s"
|
||||
msgstr "error de sintaxi en %s %s, línia %i: %s"
|
||||
msgstr "error de sintaxi a %s %s, línia %i: %s"
|
||||
|
||||
#: ../../WINGs/proplist.c:150
|
||||
msgid "Only string or data is supported for a proplist dictionary key"
|
||||
msgstr ""
|
||||
"Les entrades de diccionari PropList només poden contenir dades o una cadena"
|
||||
"Una entrada PropList de diccionari només pot contenir dades o una cadena"
|
||||
|
||||
#: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236
|
||||
#: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474
|
||||
@@ -75,7 +76,7 @@ msgstr ""
|
||||
#: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372
|
||||
#: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540
|
||||
msgid "Used proplist functions on non-WMPropLists objects"
|
||||
msgstr "S'han usat funcions proplist en objectes no-WMPropLists"
|
||||
msgstr "S'han usat funcions PropList en objectes no-WMPropLists"
|
||||
|
||||
#: ../../WINGs/proplist.c:630
|
||||
msgid "unterminated PropList string"
|
||||
@@ -115,23 +116,23 @@ msgstr "falta una entrada PropList de diccionari"
|
||||
|
||||
#: ../../WINGs/proplist.c:795
|
||||
msgid "missing PropList dictionary entry key or unterminated dictionary"
|
||||
msgstr "falta una entrada PropList de diccionari o bé està incompleta"
|
||||
msgstr "falta una entrada PropList de diccionari o bé està incompleta"
|
||||
|
||||
#: ../../WINGs/proplist.c:803
|
||||
msgid "error parsing PropList dictionary key"
|
||||
msgstr "error analitzant l'entrada PropList de diccionari"
|
||||
msgstr "error mentre s'analitzava l'entrada PropList de diccionari"
|
||||
|
||||
#: ../../WINGs/proplist.c:811
|
||||
msgid "missing = in PropList dictionary entry"
|
||||
msgstr "falta un \"=\" a l'entrada de diccionari PropList"
|
||||
msgstr "falta un \"=\" a l'entrada PropList de diccionari"
|
||||
|
||||
#: ../../WINGs/proplist.c:819
|
||||
msgid "error parsing PropList dictionary entry value"
|
||||
msgstr "error analitzant el valor de l'entrada de diccionari PropList"
|
||||
msgstr "error mentre s'analitzava el valor de l'entrada PropList de diccionari"
|
||||
|
||||
#: ../../WINGs/proplist.c:827
|
||||
msgid "missing ; in PropList dictionary entry"
|
||||
msgstr "falta un \";\" en l'entrada de diccionari PropList"
|
||||
msgstr "falta un \";\" a l'entrada PropList de diccionari"
|
||||
|
||||
#: ../../WINGs/proplist.c:888
|
||||
msgid ""
|
||||
@@ -145,281 +146,282 @@ msgstr ""
|
||||
msgid "Comments are not allowed inside WindowMaker owned domain files."
|
||||
msgstr "No es permeten comentaris en els fitxers de domini de WindowMaker."
|
||||
|
||||
#: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1628
|
||||
#: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1630
|
||||
msgid "extra data after end of property list"
|
||||
msgstr "sobren dades després de la llista de propietats"
|
||||
msgstr "sobren dades després de la llista de propietats"
|
||||
|
||||
#: ../../WINGs/proplist.c:1606
|
||||
#, c-format
|
||||
msgid "could not get size for file '%s'"
|
||||
msgstr "no s'ha pogut obtenir la mida de \"%s\""
|
||||
|
||||
#: ../../WINGs/proplist.c:1618
|
||||
#: ../../WINGs/proplist.c:1619
|
||||
#, c-format
|
||||
msgid "error reading from file '%s'"
|
||||
msgstr "error llegint el fitxer \"%s\""
|
||||
msgstr "error mentre es llegia el fitxer \"%s\""
|
||||
|
||||
#: ../../WINGs/proplist.c:1669
|
||||
#: ../../WINGs/proplist.c:1671
|
||||
#, c-format
|
||||
msgid "mkstemp (%s) failed"
|
||||
msgstr "la rutina mkstemp (%s) ha fallat"
|
||||
|
||||
#: ../../WINGs/proplist.c:1680
|
||||
#: ../../WINGs/proplist.c:1682
|
||||
#, c-format
|
||||
msgid "mktemp (%s) failed"
|
||||
msgstr "la rutina mktemp (%s) ha fallat"
|
||||
|
||||
#: ../../WINGs/proplist.c:1691
|
||||
#: ../../WINGs/proplist.c:1693
|
||||
#, c-format
|
||||
msgid "open (%s) failed"
|
||||
msgstr "la rutina open (%s) ha fallat"
|
||||
|
||||
#: ../../WINGs/proplist.c:1698
|
||||
#: ../../WINGs/proplist.c:1700
|
||||
#, c-format
|
||||
msgid "writing to file: %s failed"
|
||||
msgstr "l'escriptura del fitxer \"%s\" ha fallat"
|
||||
|
||||
#: ../../WINGs/proplist.c:1706
|
||||
#: ../../WINGs/proplist.c:1708
|
||||
#, c-format
|
||||
msgid "fclose (%s) failed"
|
||||
msgstr "la rutina fclose (%s) ha fallat"
|
||||
|
||||
#: ../../WINGs/proplist.c:1715
|
||||
#: ../../WINGs/proplist.c:1717
|
||||
#, c-format
|
||||
msgid "rename ('%s' to '%s') failed"
|
||||
msgstr "el canvi de nom (\"%s\" a \"%s\") ha fallat"
|
||||
|
||||
#. something happened with the file. just overwrite it
|
||||
#: ../../WINGs/userdefaults.c:192 ../../WINGs/userdefaults.c:208
|
||||
#: ../../WINGs/userdefaults.c:188 ../../WINGs/userdefaults.c:204
|
||||
#, c-format
|
||||
msgid "cannot read domain from file '%s' when syncing"
|
||||
msgstr "no s'ha pogut llegir un domini del fitxer \"%s\" quan es sincronitzava"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198 ../../WINGs/wcolor.c:211 ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#: ../../WINGs/wcolor.c:224 ../../WINGs/wcolor.c:236 ../../WINGs/wcolor.c:275
|
||||
#: ../../WINGs/wcolor.c:316
|
||||
#, c-format
|
||||
msgid "could not allocate %s color"
|
||||
msgstr "no s'ha pogut assignar espai pel color \"%s\""
|
||||
|
||||
#: ../../WINGs/wcolor.c:198
|
||||
#: ../../WINGs/wcolor.c:224
|
||||
msgid "white"
|
||||
msgstr "blanc"
|
||||
|
||||
#: ../../WINGs/wcolor.c:211
|
||||
#: ../../WINGs/wcolor.c:236
|
||||
msgid "black"
|
||||
msgstr "negre"
|
||||
|
||||
#: ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:275
|
||||
msgid "gray"
|
||||
msgstr "gris"
|
||||
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#: ../../WINGs/wcolor.c:316
|
||||
msgid "dark gray"
|
||||
msgstr "gris fosc"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:415
|
||||
#: ../../WINGs/wcolorpanel.c:420
|
||||
msgid "Colors"
|
||||
msgstr "Colors"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:605 ../../WINGs/wcolorpanel.c:2824
|
||||
#: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829
|
||||
msgid "Brightness"
|
||||
msgstr "Claror"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:607 ../../WINGs/wcolorpanel.c:683
|
||||
#: ../../WINGs/wcolorpanel.c:716 ../../WINGs/wcolorpanel.c:750
|
||||
#: ../../WINGs/wcolorpanel.c:810 ../../WINGs/wcolorpanel.c:844
|
||||
#: ../../WINGs/wcolorpanel.c:878 ../../WINGs/wcolorpanel.c:913
|
||||
#: ../../WINGs/wcolorpanel.c:2164 ../../WINGs/wcolorpanel.c:2826
|
||||
#: ../../WINGs/wcolorpanel.c:2862 ../../WINGs/wcolorpanel.c:2898
|
||||
#: ../../WINGs/wcolorpanel.c:3746
|
||||
#: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688
|
||||
#: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755
|
||||
#: ../../WINGs/wcolorpanel.c:815 ../../WINGs/wcolorpanel.c:849
|
||||
#: ../../WINGs/wcolorpanel.c:883 ../../WINGs/wcolorpanel.c:918
|
||||
#: ../../WINGs/wcolorpanel.c:2169 ../../WINGs/wcolorpanel.c:2831
|
||||
#: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903
|
||||
#: ../../WINGs/wcolorpanel.c:3745
|
||||
msgid "Color Panel: Could not allocate memory"
|
||||
msgstr "Panell de color: No s'ha pogut assignar memòria"
|
||||
msgstr "Panell de color: No s'ha pogut assignar memòria"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:680 ../../WINGs/wcolorpanel.c:681
|
||||
#: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686
|
||||
msgid "Red"
|
||||
msgstr "Roig"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:713 ../../WINGs/wcolorpanel.c:714
|
||||
#: ../../WINGs/wcolorpanel.c:718 ../../WINGs/wcolorpanel.c:719
|
||||
msgid "Green"
|
||||
msgstr "Verd"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:747 ../../WINGs/wcolorpanel.c:748
|
||||
#: ../../WINGs/wcolorpanel.c:752 ../../WINGs/wcolorpanel.c:753
|
||||
msgid "Blue"
|
||||
msgstr "Blau"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:807 ../../WINGs/wcolorpanel.c:808
|
||||
#: ../../WINGs/wcolorpanel.c:812 ../../WINGs/wcolorpanel.c:813
|
||||
msgid "Cyan"
|
||||
msgstr "Cian"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:841 ../../WINGs/wcolorpanel.c:842
|
||||
#: ../../WINGs/wcolorpanel.c:846 ../../WINGs/wcolorpanel.c:847
|
||||
msgid "Magenta"
|
||||
msgstr "Magenta"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:875 ../../WINGs/wcolorpanel.c:876
|
||||
#: ../../WINGs/wcolorpanel.c:880 ../../WINGs/wcolorpanel.c:881
|
||||
msgid "Yellow"
|
||||
msgstr "Groc"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:910 ../../WINGs/wcolorpanel.c:911
|
||||
#: ../../WINGs/wcolorpanel.c:915 ../../WINGs/wcolorpanel.c:916
|
||||
msgid "Black"
|
||||
msgstr "Negre"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:991
|
||||
#: ../../WINGs/wcolorpanel.c:996
|
||||
msgid "Spectrum"
|
||||
msgstr "Espectre"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1021
|
||||
#: ../../WINGs/wcolorpanel.c:1026
|
||||
msgid "Palette"
|
||||
msgstr "Paleta"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1027
|
||||
#: ../../WINGs/wcolorpanel.c:1032
|
||||
msgid "New from File..."
|
||||
msgstr "Obté d'un fitxer..."
|
||||
msgstr "Obtenir d'un fitxer..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1028 ../../WINGs/wcolorpanel.c:1076
|
||||
#: ../../WINGs/wcolorpanel.c:1093
|
||||
#: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081
|
||||
#: ../../WINGs/wcolorpanel.c:1098
|
||||
msgid "Rename..."
|
||||
msgstr "Reanomena..."
|
||||
msgstr "Reanomenar..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1029 ../../WINGs/wcolorpanel.c:1077
|
||||
#: ../../WINGs/wcolorpanel.c:1094 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:1034 ../../WINGs/wcolorpanel.c:1082
|
||||
#: ../../WINGs/wcolorpanel.c:1099 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "Remove"
|
||||
msgstr "Elimina"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1030
|
||||
#: ../../WINGs/wcolorpanel.c:1035
|
||||
msgid "Copy"
|
||||
msgstr "Copia"
|
||||
msgstr "Copiar"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1031
|
||||
#: ../../WINGs/wcolorpanel.c:1036
|
||||
msgid "New from Clipboard"
|
||||
msgstr "Obté del porta-retalls..."
|
||||
msgstr "Obtenir del porta-retalls..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1052
|
||||
#: ../../WINGs/wcolorpanel.c:1057
|
||||
msgid "X11-Colors"
|
||||
msgstr "Colors-X11"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1069
|
||||
#: ../../WINGs/wcolorpanel.c:1074
|
||||
msgid "Color"
|
||||
msgstr "Color"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1075
|
||||
#: ../../WINGs/wcolorpanel.c:1080
|
||||
msgid "Add..."
|
||||
msgstr "Afegeix..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1085
|
||||
#: ../../WINGs/wcolorpanel.c:1090
|
||||
msgid "List"
|
||||
msgstr "Llista"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1092
|
||||
#: ../../WINGs/wcolorpanel.c:1097
|
||||
msgid "New..."
|
||||
msgstr "Nou..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1231
|
||||
#: ../../WINGs/wcolorpanel.c:1236
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Color Panel: Could not create directory %s needed to store configurations"
|
||||
msgstr ""
|
||||
"Panell de color: No s'ha pogut crear el directori \"%s\" necessari per desar "
|
||||
"la configuració"
|
||||
"la configuració"
|
||||
|
||||
#. Delete the file, it doesn't belong here
|
||||
#: ../../WINGs/wcolorpanel.c:1237 ../../WINGs/wcolorpanel.c:3207
|
||||
#: ../../WINGs/wcolorpanel.c:3211
|
||||
#: ../../WINGs/wcolorpanel.c:1242 ../../WINGs/wcolorpanel.c:3212
|
||||
#: ../../WINGs/wcolorpanel.c:3216
|
||||
msgid "File Error"
|
||||
msgstr "Error de fitxer"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1238
|
||||
#: ../../WINGs/wcolorpanel.c:1243
|
||||
msgid "Could not create ColorPanel configuration directory"
|
||||
msgstr "No s'ha pogut crear el directori de configuració del Panell de color"
|
||||
msgstr "No s'ha pogut crear el directori de configuració del Panell de color"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1239 ../../WINGs/wcolorpanel.c:3208
|
||||
#: ../../WINGs/wcolorpanel.c:3213 ../../WINGs/wcolorpanel.c:3240
|
||||
#: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:647
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wfilepanel.c:971 ../../WINGs/wfontpanel.c:709
|
||||
#: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213
|
||||
#: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245
|
||||
#: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:650
|
||||
#: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763
|
||||
#: ../../WINGs/wfilepanel.c:974 ../../WINGs/wfontpanel.c:751
|
||||
msgid "OK"
|
||||
msgstr "D'acord"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1245 ../../WINGs/wcolorpanel.c:1281
|
||||
#: ../../WINGs/wcolorpanel.c:1299
|
||||
#: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286
|
||||
#: ../../WINGs/wcolorpanel.c:1304
|
||||
msgid "Color Panel: Could not find file"
|
||||
msgstr "Panell de color: No s'ha trobat el fitxer"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1486 ../../WINGs/wcolorpanel.c:1551
|
||||
#: ../../WINGs/wcolorpanel.c:1615
|
||||
#: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556
|
||||
#: ../../WINGs/wcolorpanel.c:1620
|
||||
msgid "Color Panel: X failed request"
|
||||
msgstr "Panell de color: petició X fallida"
|
||||
msgstr "Panell de color: petició X fallida"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2860
|
||||
#: ../../WINGs/wcolorpanel.c:2865
|
||||
msgid "Saturation"
|
||||
msgstr "Saturació"
|
||||
msgstr "Saturació"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2896
|
||||
#: ../../WINGs/wcolorpanel.c:2901
|
||||
msgid "Hue"
|
||||
msgstr "Matís"
|
||||
msgstr "Matís"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3146
|
||||
# és el títol d'un quadre de diàleg. eac
|
||||
#: ../../WINGs/wcolorpanel.c:3151
|
||||
msgid "Open Palette"
|
||||
msgstr "Obrir paleta"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3208
|
||||
#: ../../WINGs/wcolorpanel.c:3213
|
||||
msgid "Invalid file format !"
|
||||
msgstr "El format del fitxer no és vàlid !"
|
||||
msgstr "El format del fitxer no és vàlid !"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3210
|
||||
#: ../../WINGs/wcolorpanel.c:3215
|
||||
#, c-format
|
||||
msgid "can't remove file %s"
|
||||
msgstr "no s'ha pogut eliminar el fitxer \"%s\""
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3212
|
||||
#: ../../WINGs/wcolorpanel.c:3217
|
||||
msgid "Couldn't remove file from Configuration Directory !"
|
||||
msgstr "No s'ha pogut eliminar el fitxer del directori de configuració !"
|
||||
msgstr "No s'ha pogut eliminar el fitxer del directori de configuració !"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
#: ../../WINGs/wcolorpanel.c:3244
|
||||
msgid "Rename"
|
||||
msgstr "Reanomena"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
#: ../../WINGs/wcolorpanel.c:3244
|
||||
msgid "Rename palette to:"
|
||||
msgstr "Reanomenar la paleta a:"
|
||||
msgstr "Reanomena la paleta com a:"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3240 ../../WINGs/wfilepanel.c:259
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wcolorpanel.c:3245 ../../WINGs/wfilepanel.c:259
|
||||
#: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#. Careful, this palette exists already
|
||||
#: ../../WINGs/wcolorpanel.c:3256 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wcolorpanel.c:3261 ../../WINGs/wfilepanel.c:763
|
||||
msgid "Warning"
|
||||
msgstr "Atenció"
|
||||
msgstr "Atenció"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257
|
||||
#: ../../WINGs/wcolorpanel.c:3262
|
||||
msgid ""
|
||||
"Palette already exists !\n"
|
||||
"\n"
|
||||
"Overwrite ?"
|
||||
msgstr ""
|
||||
"La paleta existeix!\n"
|
||||
"Ja existia una paleta amb aquest nom!\n"
|
||||
"\n"
|
||||
"La voleu sobreescriure?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "No"
|
||||
msgstr "No"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "Yes"
|
||||
msgstr "Sí"
|
||||
msgstr "Sí"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3289
|
||||
#: ../../WINGs/wcolorpanel.c:3294
|
||||
#, c-format
|
||||
msgid "Couldn't rename palette %s to %s\n"
|
||||
msgstr "No s'ha pogut reanomenar la paleta %s a %s\n"
|
||||
msgstr "No s'ha pogut reanomenar la paleta %s com a %s\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3315
|
||||
#: ../../WINGs/wcolorpanel.c:3320
|
||||
msgid "This will permanently remove the palette "
|
||||
msgstr "Això eliminarà la paleta per sempre "
|
||||
msgstr "Això eliminarà la paleta per sempre "
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3318
|
||||
#: ../../WINGs/wcolorpanel.c:3323
|
||||
msgid ""
|
||||
".\n"
|
||||
"\n"
|
||||
@@ -429,27 +431,27 @@ msgstr ""
|
||||
"\n"
|
||||
"Esteu segurs que voleu eliminar aquesta paleta?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3343
|
||||
#: ../../WINGs/wcolorpanel.c:3348
|
||||
#, c-format
|
||||
msgid "Couldn't remove palette %s\n"
|
||||
msgstr "No s'ha pogut eliminar la paleta %s\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3648
|
||||
#: ../../WINGs/wcolorpanel.c:3647
|
||||
#, c-format
|
||||
msgid "Could not open %s"
|
||||
msgstr "No s'ha pogut obrir %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3655
|
||||
#: ../../WINGs/wcolorpanel.c:3654
|
||||
#, c-format
|
||||
msgid "Could not create %s"
|
||||
msgstr "No s'ha pogut crear %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3666
|
||||
#: ../../WINGs/wcolorpanel.c:3665
|
||||
#, c-format
|
||||
msgid "Write error on file %s"
|
||||
msgstr "Error d'escriptura en el fitxer %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3711
|
||||
#: ../../WINGs/wcolorpanel.c:3710
|
||||
msgid "Color Panel: Color unspecified"
|
||||
msgstr "Panell de color: Color no especificat"
|
||||
|
||||
@@ -465,211 +467,270 @@ msgstr "Obre"
|
||||
msgid "Save"
|
||||
msgstr "Desa"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:562
|
||||
#: ../../WINGs/wfilepanel.c:565
|
||||
#, c-format
|
||||
msgid "WINGs: could not open directory %s\n"
|
||||
msgstr "WINGs: no s'ha pogut obrir el directori %s\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:580
|
||||
#: ../../WINGs/wfilepanel.c:583
|
||||
#, c-format
|
||||
msgid "WINGs: could not stat %s\n"
|
||||
msgstr "WINGs: no s'ha pogut determinar l'estat de %s\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:647 ../../WINGs/wfilepanel.c:970
|
||||
#: ../../WINGs/wfontpanel.c:708
|
||||
#: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973
|
||||
#: ../../WINGs/wfontpanel.c:750
|
||||
msgid "Error"
|
||||
msgstr "Error"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:658
|
||||
# és el nom d'un quadre de diàleg. eac
|
||||
#: ../../WINGs/wfilepanel.c:661
|
||||
msgid "Create Directory"
|
||||
msgstr "Crear directori"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:659
|
||||
#: ../../WINGs/wfilepanel.c:662
|
||||
msgid "Enter directory name"
|
||||
msgstr "Entreu el nom del directori"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:695 ../../WINGs/wfilepanel.c:734
|
||||
#: ../../WINGs/wfilepanel.c:765 ../../WINGs/wfilepanel.c:793
|
||||
#: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737
|
||||
#: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796
|
||||
msgid "Permission denied."
|
||||
msgstr "Permís denegat."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:698
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "\"%s\" existia prèviament."
|
||||
msgstr "Permís denegat."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:701
|
||||
msgid "Path does not exist."
|
||||
msgstr "El camí no existeix."
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "\"%s\" existia prèviament."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:731 ../../WINGs/wfilepanel.c:790
|
||||
#: ../../WINGs/wfilepanel.c:704
|
||||
msgid "Path does not exist."
|
||||
msgstr "L'ubicació no existeix."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:734 ../../WINGs/wfilepanel.c:793
|
||||
#, c-format
|
||||
msgid "'%s' does not exist."
|
||||
msgstr "\"%s\" no existeix."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:738 ../../WINGs/wfilepanel.c:797
|
||||
#: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800
|
||||
msgid "Insufficient memory available."
|
||||
msgstr "No hi ha prou memòria disponible."
|
||||
msgstr "No hi ha prou memòria disponible."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:742 ../../WINGs/wfilepanel.c:801
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804
|
||||
#, c-format
|
||||
msgid "'%s' is on a read-only filesystem."
|
||||
msgstr "\"%s\" es troba en un sistema de fitxers de només lectura."
|
||||
msgstr "\"%s\" es troba en un sistema de fitxers de només lectura."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:777
|
||||
#: ../../WINGs/wfilepanel.c:804
|
||||
#: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780
|
||||
#: ../../WINGs/wfilepanel.c:807
|
||||
#, c-format
|
||||
msgid "Can not delete '%s'."
|
||||
msgstr "No s'ha pogut eliminar \"%s\"."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:752
|
||||
#: ../../WINGs/wfilepanel.c:755
|
||||
#, c-format
|
||||
msgid "Delete directory %s ?"
|
||||
msgstr "Eliminar el directori %s ?"
|
||||
msgstr "Voleu eliminar el directori %s ?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:756
|
||||
#: ../../WINGs/wfilepanel.c:759
|
||||
#, c-format
|
||||
msgid "Delete file %s ?"
|
||||
msgstr "Eliminar el fitxer %s ?"
|
||||
msgstr "Voleu eliminar el fitxer %s ?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:768
|
||||
#: ../../WINGs/wfilepanel.c:771
|
||||
#, c-format
|
||||
msgid "Directory '%s' does not exist."
|
||||
msgstr "El directori \"%s\" no existeix."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:771
|
||||
#: ../../WINGs/wfilepanel.c:774
|
||||
#, c-format
|
||||
msgid "Directory '%s' is not empty."
|
||||
msgstr "El directori \"%s\" no està buit."
|
||||
msgstr "El directori \"%s\" no està buit."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:774
|
||||
#: ../../WINGs/wfilepanel.c:777
|
||||
#, c-format
|
||||
msgid "Directory '%s' is busy."
|
||||
msgstr "El directori \"%s\" es troba ocupat."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:787
|
||||
#: ../../WINGs/wfilepanel.c:790
|
||||
#, c-format
|
||||
msgid "'%s' is a directory."
|
||||
msgstr "\"%s\" és un directori."
|
||||
msgstr "\"%s\" és un directori."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:829
|
||||
#: ../../WINGs/wfilepanel.c:832
|
||||
#, c-format
|
||||
msgid "An error occured browsing '%s'."
|
||||
msgstr "S'ha produït un error mentre s'explorava \"%s\"."
|
||||
msgstr "S'ha produït un error mentre s'explorava \"%s\"."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:833
|
||||
#: ../../WINGs/wfilepanel.c:836
|
||||
#, c-format
|
||||
msgid "'%s' is not a directory."
|
||||
msgstr "\"%s\" no és un directori."
|
||||
msgstr "\"%s\" no és un directori."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:970
|
||||
#: ../../WINGs/wfilepanel.c:973
|
||||
msgid "File does not exist."
|
||||
msgstr "El fitxer no existeix."
|
||||
|
||||
#: ../../WINGs/wfont.c:129
|
||||
#: ../../WINGs/wfont.c:324 ../../WINGs/wfont.c:344
|
||||
#, c-format
|
||||
msgid "could not load font %s."
|
||||
msgstr "no s'ha pogut carregar el tipus de lletra %s."
|
||||
|
||||
#: ../../WINGs/wfont.c:375 ../../WINGs/wfont.c:420 ../../WINGs/wfont.c:475
|
||||
#: ../../WINGs/wfont.c:1337 ../../WINGs/wfont.c:1398 ../../WINGs/wfont.c:1469
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Conversion to widechar failed (possible invalid multibyte sequence): '%s':"
|
||||
"(pos %d)\n"
|
||||
msgstr ""
|
||||
"Ha fallat la conversió a caràcter estès (possible seqüència no vàlida): '%"
|
||||
"s': (pos %d)\n"
|
||||
|
||||
#. // remove warning later. or maybe not
|
||||
#: ../../WINGs/wfont.c:591 ../../WINGs/wfont.c:1568
|
||||
#, c-format
|
||||
msgid "Invalid font specification: '%s'\n"
|
||||
msgstr "Especificació de font no vàlida: \"%s\"\n"
|
||||
|
||||
#: ../../WINGs/wfont.c:770 ../../WINGs/wfont.c:780
|
||||
#, c-format
|
||||
msgid "Invalid size specification '%s' in %s. Using default %d\n"
|
||||
msgstr ""
|
||||
"La mida \"%s\" especificada a %s no és vàlida. S'usa el valor per omissió %"
|
||||
"d\n"
|
||||
|
||||
#: ../../WINGs/wfont.c:824
|
||||
#, c-format
|
||||
msgid "the following character sets are missing in %s:"
|
||||
msgstr "els següents conjunts de caràcters falten a %s:"
|
||||
msgstr "els següents conjunts de caràcters falten a %s:"
|
||||
|
||||
#: ../../WINGs/wfont.c:136
|
||||
#: ../../WINGs/wfont.c:830
|
||||
#, c-format
|
||||
msgid ""
|
||||
"the string \"%s\" will be used in place of any characters from those sets."
|
||||
msgstr ""
|
||||
"la cadena \"%s\" s'usarà en lloc dels caràcters d'aquests conjunts de "
|
||||
"caràcters."
|
||||
"la cadena \"%s\" s'usarà en lloc dels caràcters d'aquests conjunts de "
|
||||
"caràcters."
|
||||
|
||||
#: ../../WINGs/wfont.c:300 ../../WINGs/wfont.c:336
|
||||
#. is arial a good fallback for multibyte?
|
||||
#: ../../WINGs/wfont.c:1232 ../../WINGs/wfont.c:1247
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgid "could not load font %s. Trying arial."
|
||||
msgstr "no s'ha pogut carregar el tipus de lletra %s. Provant amb \"arial\"."
|
||||
|
||||
#: ../../WINGs/wfont.c:1239
|
||||
msgid "could not load antialiased font set. Reverting to standard font sets."
|
||||
msgstr ""
|
||||
"no s'ha pogut carregar el conjunt de fonts amb allisat. S'usarà l'estàndard."
|
||||
|
||||
#: ../../WINGs/wfont.c:1242
|
||||
#, c-format
|
||||
msgid "could not load FontSet %s. Trying fixed."
|
||||
msgstr "no s'ha pogut carregar el tipus de lletra %s. Provant amb \"fixed\"."
|
||||
|
||||
#: ../../WINGs/wfont.c:306 ../../WINGs/wfont.c:342
|
||||
#: ../../WINGs/wfont.c:1254
|
||||
msgid "could not load antialiased fonts. Reverting to normal fonts."
|
||||
msgstr "no s'han pogut carregar fonts allisades. S'usaran fonts normals."
|
||||
|
||||
#: ../../WINGs/wfont.c:1257 ../../WINGs/wfont.c:1268
|
||||
#, c-format
|
||||
msgid "could not load font %s. Trying fixed."
|
||||
msgstr "no s'ha pogut carregar el tipus de lletra %s. Provant amb \"fixed\"."
|
||||
msgstr "no s'ha pogut carregar la font %s. Provant amb \"fixed\"."
|
||||
|
||||
#: ../../WINGs/wfont.c:310 ../../WINGs/wfont.c:346
|
||||
#: ../../WINGs/wfont.c:1262
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgstr "no s'ha pogut carregar el conjunt de fonts %s. Provant amb \"fixed\"."
|
||||
|
||||
#: ../../WINGs/wfont.c:1272
|
||||
msgid "could not load fixed font!"
|
||||
msgstr "no s'ha pogut carregar el tipus de lletra \"fixed\" !"
|
||||
|
||||
#: ../../WINGs/wfont.c:441
|
||||
#: ../../WINGs/wfont.c:1520
|
||||
#, c-format
|
||||
msgid "font description %s is too large."
|
||||
msgstr "la descripció de tipus de lletra %s és massa gran."
|
||||
msgstr "la descripció de tipus de lletra %s és massa gran."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:205
|
||||
#: ../../WINGs/wfontpanel.c:235
|
||||
msgid "Test!!!"
|
||||
msgstr "Prova!!!"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:211
|
||||
#: ../../WINGs/wfontpanel.c:241
|
||||
msgid "Family"
|
||||
msgstr "Familia"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:222
|
||||
#: ../../WINGs/wfontpanel.c:252
|
||||
msgid "Typeface"
|
||||
msgstr "Fosa"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:233
|
||||
#: ../../WINGs/wfontpanel.c:263
|
||||
msgid "Size"
|
||||
msgstr "Mida"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:252
|
||||
#: ../../WINGs/wfontpanel.c:282
|
||||
msgid "Set"
|
||||
msgstr "Conjunt"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:257
|
||||
#: ../../WINGs/wfontpanel.c:288
|
||||
msgid "Revert"
|
||||
msgstr "Torna"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:709
|
||||
#: ../../WINGs/wfontpanel.c:751
|
||||
msgid "Could not retrieve font list"
|
||||
msgstr "No s'ha pogut obtenir la llista de tipus de lletra"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:721
|
||||
#: ../../WINGs/wfontpanel.c:765
|
||||
#, c-format
|
||||
msgid "font name %s is longer than 256, which is invalid."
|
||||
msgstr ""
|
||||
"el nom de tipus de lletra %s ocupa més de 256 caràcters, per tant no és "
|
||||
"vàlid."
|
||||
"el nom de tipus de lletra %s ocupa més de 256 caràcters, per tant no és "
|
||||
"vàlid."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:868
|
||||
#: ../../WINGs/wfontpanel.c:913
|
||||
msgid "Roman"
|
||||
msgstr "Romana"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:871
|
||||
#: ../../WINGs/wfontpanel.c:916
|
||||
msgid "Italic"
|
||||
msgstr "Itàlica"
|
||||
msgstr "Itàlica"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:873
|
||||
#: ../../WINGs/wfontpanel.c:918
|
||||
msgid "Oblique"
|
||||
msgstr "Obliqua"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:875
|
||||
#: ../../WINGs/wfontpanel.c:920
|
||||
msgid "Rev Italic"
|
||||
msgstr "Itàlica rev"
|
||||
msgstr "Itàlica inv"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:877
|
||||
#: ../../WINGs/wfontpanel.c:922
|
||||
msgid "Rev Oblique"
|
||||
msgstr "Obliqua rev"
|
||||
msgstr "Obliqua inv"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:883
|
||||
#: ../../WINGs/wfontpanel.c:928
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#: ../../WINGs/widgets.c:415
|
||||
#: ../../WINGs/widgets.c:419
|
||||
#, c-format
|
||||
msgid "WINGs: could not load widget images file: %s"
|
||||
msgstr "WINGs: no s'ha pogut carregar el fitxer d'imatges dels elements: %s"
|
||||
msgstr "WINGs: no s'ha pogut carregar el fitxer d'imatges: %s"
|
||||
|
||||
#: ../../WINGs/widgets.c:763
|
||||
#: ../../WINGs/widgets.c:772
|
||||
msgid ""
|
||||
"could not load any fonts. Make sure your font installation and locale "
|
||||
"settings are correct."
|
||||
msgstr ""
|
||||
"no s'ha pogut carregar cap font. Assegureu-vos que l'instal·lació dels tipus "
|
||||
"de lletra i la configuració del local és adquada."
|
||||
"no s'ha pogut carregar cap font. Assegureu-vos que heu instal·lat i "
|
||||
"configurat correctament les fonts i el local."
|
||||
|
||||
#: ../../WINGs/wruler.c:189
|
||||
#: ../../WINGs/wruler.c:192
|
||||
msgid "0 inches"
|
||||
msgstr "0 polzades"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Text antialiasing is enabled in the configuration but the X server "
|
||||
#~ "doesn't have the required capabilities (missing RENDER extension). "
|
||||
#~ "Disabling text antialiasing."
|
||||
#~ msgstr ""
|
||||
#~ "L'allisat de text està habilitat a la configuració però el servidor X no\n"
|
||||
#~ "té la capacitat necessària (falta l'extensió RENDER) de manera que "
|
||||
#~ "l'allisat\n"
|
||||
#~ "de text es deshabilitarà."
|
||||
|
||||
230
WINGs/po/cs.po
230
WINGs/po/cs.po
@@ -1,66 +1,66 @@
|
||||
# Czech messages for WINGs
|
||||
# (C) 2001 Jiøí Hnídek
|
||||
# (C) 2001 Jiří Hnídek
|
||||
# Special thanks to Jan "judas" Tomka
|
||||
#
|
||||
# Original translation by Jiøí Hnídek on Oct 11 2001
|
||||
# Currently maintained by Jiøí Hnídek <jiri.hnidek@vslib.cz>
|
||||
# Original translation by Jiří Hnídek on Oct 11 2001
|
||||
# Currently maintained by Jiří Hnídek <jiri.hnidek@vslib.cz>
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WINGs 0.70.0\n"
|
||||
"POT-Creation-Date: 2001-10-11 19:10+0100\n"
|
||||
"PO-Revision-Date: 2001-10-11 22:00+0100\n"
|
||||
"Last-Translator: Jiøí Hnídek <jiri.hnidek@vslib.cz>\n"
|
||||
"Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n"
|
||||
"Language-Team: Czech <cz@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-2\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: unknown\n"
|
||||
|
||||
#: ../../WINGs/connection.c:451 ../../WINGs/connection.c:516
|
||||
#: ../../WINGs/connection.c:559
|
||||
msgid "Bad address-service-protocol combination"
|
||||
msgstr "Nesprávná kombinace adresa-slu¾ba-protokol"
|
||||
msgstr "Nesprávná kombinace adresa-služba-protokol"
|
||||
|
||||
#: ../../WINGs/dragsource.c:541
|
||||
msgid "DND selection lost during drag operation..."
|
||||
msgstr "DND výbìr se ztratil bìhem opere táhnutí..."
|
||||
msgstr "DND výběr se ztratil během opere táhnutí..."
|
||||
|
||||
#: ../../WINGs/dragsource.c:610
|
||||
#, c-format
|
||||
msgid "drag & drop timed out while waiting for response from 0x%x\n"
|
||||
msgstr "èas pro drag & drop vypr¹el bìhem èekání na odpoveï z 0x%x\n"
|
||||
msgstr "čas pro drag & drop vypršel během čekání na odpoveď z 0x%x\n"
|
||||
|
||||
#: ../../WINGs/dragsource.c:728
|
||||
msgid "could not get ownership or DND selection"
|
||||
msgstr "nemo¾né získat vlastnictví nebo DND výbìr"
|
||||
msgstr "nemožné získat vlastnictví nebo DND výběr"
|
||||
|
||||
#: ../../WINGs/dragsource.c:898
|
||||
#, c-format
|
||||
msgid "drag source received unexpected XdndFinished message from %x"
|
||||
msgstr "zdroj tahání pøijal neoèekávanou zprávu XdndFinished z %x"
|
||||
msgstr "zdroj tahání přijal neočekávanou zprávu XdndFinished z %x"
|
||||
|
||||
#: ../../WINGs/dragsource.c:1040
|
||||
#, c-format
|
||||
msgid "unknown XDND action %s from 0x%x"
|
||||
msgstr "neznámá XDND akce %s z 0x%x"
|
||||
msgstr "neznámá XDND akce %s z 0x%x"
|
||||
|
||||
#: ../../WINGs/dragsource.c:1073
|
||||
msgid "received invalid drag & drop type list"
|
||||
msgstr "pøijatý nesprávný seznam typù drag & drop"
|
||||
msgstr "přijatý nesprávný seznam typů drag & drop"
|
||||
|
||||
#: ../../WINGs/dragsource.c:1161
|
||||
msgid "received Enter event in bad order"
|
||||
msgstr "pøijatá událost Enter v nesprávném poøadí"
|
||||
msgstr "přijatá událost Enter v nesprávném pořadí"
|
||||
|
||||
#: ../../WINGs/dragsource.c:1168
|
||||
#, c-format
|
||||
msgid "received drag & drop request with unsupported version %i"
|
||||
msgstr "pøijatý po¾adavek drag & drop s nepodporovanou verzí %i"
|
||||
msgstr "přijatý požadavek drag & drop s nepodporovanou verzí %i"
|
||||
|
||||
#: ../../WINGs/error.c:56
|
||||
#, c-format
|
||||
msgid "Unknown error %d"
|
||||
msgstr "Neznámá chyba %d"
|
||||
msgstr "Neznámá chyba %d"
|
||||
|
||||
#: ../../WINGs/error.c:61
|
||||
#, c-format
|
||||
@@ -69,11 +69,11 @@ msgstr "Chyba %d"
|
||||
|
||||
#: ../../WINGs/error.c:112
|
||||
msgid " warning: "
|
||||
msgstr " varovíní: "
|
||||
msgstr " varovíní: "
|
||||
|
||||
#: ../../WINGs/error.c:139
|
||||
msgid " fatal error: "
|
||||
msgstr " fatální chyba: "
|
||||
msgstr " fatální chyba: "
|
||||
|
||||
#: ../../WINGs/error.c:165 ../../WINGs/error.c:194
|
||||
msgid " error: "
|
||||
@@ -82,76 +82,76 @@ msgstr " chyba: "
|
||||
#: ../../WINGs/findfile.c:50
|
||||
#, c-format
|
||||
msgid "could not get password entry for UID %i"
|
||||
msgstr "nemo¾né zjistit informaci o UID %i"
|
||||
msgstr "nemožné zjistit informaci o UID %i"
|
||||
|
||||
#: ../../WINGs/findfile.c:68
|
||||
#, c-format
|
||||
msgid "could not get password entry for user %s"
|
||||
msgstr "nemo¾né zjistit informaci o u¾ivatelovi %s"
|
||||
msgstr "nemožné zjistit informaci o uživatelovi %s"
|
||||
|
||||
#: ../../WINGs/hashtable.c:275
|
||||
msgid "rebuilding hash table...\n"
|
||||
msgstr "pøepis tabulky hashovských funkcí...\n"
|
||||
msgstr "přepis tabulky hashovských funkcí...\n"
|
||||
|
||||
#: ../../WINGs/hashtable.c:279
|
||||
msgid "finished rebuild.\n"
|
||||
msgstr "konec pøepisu.\n"
|
||||
msgstr "konec přepisu.\n"
|
||||
|
||||
#: ../../WINGs/host.c:116
|
||||
msgid "Cannot get current host name"
|
||||
msgstr "Nemo¾né zjistit aktuální jméno poèítaèe"
|
||||
msgstr "Nemožné zjistit aktuální jméno počítače"
|
||||
|
||||
#: ../../WINGs/memory.c:94
|
||||
msgid "malloc() failed. Retrying after 2s."
|
||||
msgstr "chyba malloc(). Nový pokus o 2s."
|
||||
msgstr "chyba malloc(). Nový pokus o 2s."
|
||||
|
||||
#: ../../WINGs/memory.c:103
|
||||
msgid "Really Bad Error: recursive malloc() failure."
|
||||
msgstr "Skuteènì o¹klivá chyba: rekurzivní chyba malloc()."
|
||||
msgstr "Skutečně ošklivá chyba: rekurzivní chyba malloc()."
|
||||
|
||||
#: ../../WINGs/memory.c:106 ../../WINGs/memory.c:146
|
||||
msgid "virtual memory exhausted"
|
||||
msgstr "virtuální pamì» vyèerpaná"
|
||||
msgstr "virtuální paměť vyčerpaná"
|
||||
|
||||
#: ../../WINGs/memory.c:133
|
||||
msgid "realloc() failed. Retrying after 2s."
|
||||
msgstr "chyba realloc(). Nový pokus o 2s."
|
||||
msgstr "chyba realloc(). Nový pokus o 2s."
|
||||
|
||||
#: ../../WINGs/memory.c:142
|
||||
msgid "Really Bad Error: recursive realloc() failure."
|
||||
msgstr "Skuteènì o¹klivá chyba: rekurzivní chyba realloc()."
|
||||
msgstr "Skutečně ošklivá chyba: rekurzivní chyba realloc()."
|
||||
|
||||
#: ../../WINGs/memory.c:205
|
||||
#, c-format
|
||||
msgid "trying to release unexisting data %p"
|
||||
msgstr "pokus uvolnit neexistujícá data %p"
|
||||
msgstr "pokus uvolnit neexistujícá data %p"
|
||||
|
||||
#: ../../WINGs/memory.c:210
|
||||
#, c-format
|
||||
msgid "RELEASING %p\n"
|
||||
msgstr "UVOLNÌNÍ %p\n"
|
||||
msgstr "UVOLNĚNÍ %p\n"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198 ../../WINGs/wcolor.c:211 ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#, c-format
|
||||
msgid "could not allocate %s color"
|
||||
msgstr "nemo¾né alokovat %s barvu"
|
||||
msgstr "nemožné alokovat %s barvu"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198
|
||||
msgid "white"
|
||||
msgstr "bílou"
|
||||
msgstr "bílou"
|
||||
|
||||
#: ../../WINGs/wcolor.c:211
|
||||
msgid "black"
|
||||
msgstr "èernou"
|
||||
msgstr "černou"
|
||||
|
||||
#: ../../WINGs/wcolor.c:250
|
||||
msgid "gray"
|
||||
msgstr "¹edou"
|
||||
msgstr "šedou"
|
||||
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
msgid "dark gray"
|
||||
msgstr "tmavì ¹edou"
|
||||
msgstr "tmavě šedou"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:410
|
||||
msgid "Colors"
|
||||
@@ -159,7 +159,7 @@ msgstr "Barvy"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:600 ../../WINGs/wcolorpanel.c:2819
|
||||
msgid "Brightness"
|
||||
msgstr "Svìtlost"
|
||||
msgstr "Světlost"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:602 ../../WINGs/wcolorpanel.c:678
|
||||
#: ../../WINGs/wcolorpanel.c:711 ../../WINGs/wcolorpanel.c:745
|
||||
@@ -169,19 +169,19 @@ msgstr "Sv
|
||||
#: ../../WINGs/wcolorpanel.c:2857 ../../WINGs/wcolorpanel.c:2893
|
||||
#: ../../WINGs/wcolorpanel.c:3741
|
||||
msgid "Color Panel: Could not allocate memory"
|
||||
msgstr "Panel barev: Nemo¾né alokovat pamì»"
|
||||
msgstr "Panel barev: Nemožné alokovat paměť"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:675 ../../WINGs/wcolorpanel.c:676
|
||||
msgid "Red"
|
||||
msgstr "Èervená"
|
||||
msgstr "Červená"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:708 ../../WINGs/wcolorpanel.c:709
|
||||
msgid "Green"
|
||||
msgstr "Zelená"
|
||||
msgstr "Zelená"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:742 ../../WINGs/wcolorpanel.c:743
|
||||
msgid "Blue"
|
||||
msgstr "Modrá"
|
||||
msgstr "Modrá"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:802 ../../WINGs/wcolorpanel.c:803
|
||||
msgid "Cyan"
|
||||
@@ -193,11 +193,11 @@ msgstr ""
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:870 ../../WINGs/wcolorpanel.c:871
|
||||
msgid "Yellow"
|
||||
msgstr "®lutá"
|
||||
msgstr "Žlutá"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:905 ../../WINGs/wcolorpanel.c:906
|
||||
msgid "Black"
|
||||
msgstr "Èerná"
|
||||
msgstr "Černá"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:986
|
||||
msgid "Spectrum"
|
||||
@@ -209,12 +209,12 @@ msgstr "Paleta"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1022
|
||||
msgid "New from File..."
|
||||
msgstr "Nová ze souboru..."
|
||||
msgstr "Nová ze souboru..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1023 ../../WINGs/wcolorpanel.c:1071
|
||||
#: ../../WINGs/wcolorpanel.c:1088
|
||||
msgid "Rename..."
|
||||
msgstr "Pøejmenovat..."
|
||||
msgstr "Přejmenovat..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1024 ../../WINGs/wcolorpanel.c:1072
|
||||
#: ../../WINGs/wcolorpanel.c:1089 ../../WINGs/wcolorpanel.c:3316
|
||||
@@ -223,11 +223,11 @@ msgstr "Odstranit"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1025
|
||||
msgid "Copy"
|
||||
msgstr "Kopírovat"
|
||||
msgstr "Kopírovat"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1026
|
||||
msgid "New from Clipboard"
|
||||
msgstr "Nová ze schránky"
|
||||
msgstr "Nová ze schránky"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1047
|
||||
msgid "X11-Colors"
|
||||
@@ -239,7 +239,7 @@ msgstr "Barva"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1070
|
||||
msgid "Add..."
|
||||
msgstr "Pøidat..."
|
||||
msgstr "Přidat..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1080
|
||||
msgid "List"
|
||||
@@ -247,14 +247,14 @@ msgstr "Seznam"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1087
|
||||
msgid "New..."
|
||||
msgstr "Nový..."
|
||||
msgstr "Nový..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1226
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Color Panel: Could not create directory %s needed to store configurations"
|
||||
msgstr ""
|
||||
"Panel barev: Nemo¾né vytvoøit adresáø %s potøebný k ulo¾ení nastavení"
|
||||
"Panel barev: Nemožné vytvořit adresář %s potřebný k uložení nastavení"
|
||||
|
||||
#. Delete the file, it doesn't belong here
|
||||
#: ../../WINGs/wcolorpanel.c:1232 ../../WINGs/wcolorpanel.c:3202
|
||||
@@ -264,7 +264,7 @@ msgstr "Chyba souboru"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1233
|
||||
msgid "Could not create ColorPanel configuration directory"
|
||||
msgstr "Nemo¾né vytvoøit konfiguraèní adresáø panelu barev"
|
||||
msgstr "Nemožné vytvořit konfigurační adresář panelu barev"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1234 ../../WINGs/wcolorpanel.c:3203
|
||||
#: ../../WINGs/wcolorpanel.c:3208 ../../WINGs/wcolorpanel.c:3235
|
||||
@@ -277,12 +277,12 @@ msgstr "OK"
|
||||
#: ../../WINGs/wcolorpanel.c:1240 ../../WINGs/wcolorpanel.c:1276
|
||||
#: ../../WINGs/wcolorpanel.c:1294
|
||||
msgid "Color Panel: Could not find file"
|
||||
msgstr "Panel barev: Nemo¾né nalézt soubor"
|
||||
msgstr "Panel barev: Nemožné nalézt soubor"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1481 ../../WINGs/wcolorpanel.c:1546
|
||||
#: ../../WINGs/wcolorpanel.c:1610
|
||||
msgid "Color Panel: X failed request"
|
||||
msgstr "Panel barev: chyba po¾adavku X"
|
||||
msgstr "Panel barev: chyba požadavku X"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2855
|
||||
msgid "Saturation"
|
||||
@@ -290,42 +290,42 @@ msgstr "Saturace"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2891
|
||||
msgid "Hue"
|
||||
msgstr "Odteï"
|
||||
msgstr "Odteď"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3141
|
||||
msgid "Open Palette"
|
||||
msgstr "Otevøít paletu"
|
||||
msgstr "Otevřít paletu"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3203
|
||||
msgid "Invalid file format !"
|
||||
msgstr "Nesprávný souborový formát!"
|
||||
msgstr "Nesprávný souborový formát!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3205
|
||||
#, c-format
|
||||
msgid "can't remove file %s"
|
||||
msgstr "nemo¾né odstranit soubor %s"
|
||||
msgstr "nemožné odstranit soubor %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3207
|
||||
msgid "Couldn't remove file from Configuration Directory !"
|
||||
msgstr "Nemo¾né odstranit soubor z konfiguraèního adresáøe!"
|
||||
msgstr "Nemožné odstranit soubor z konfiguračního adresáře!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3234
|
||||
msgid "Rename"
|
||||
msgstr "Pøejmenovat"
|
||||
msgstr "Přejmenovat"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3234
|
||||
msgid "Rename palette to:"
|
||||
msgstr "Pøejmenovat paletu:"
|
||||
msgstr "Přejmenovat paletu:"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3235 ../../WINGs/wfilepanel.c:252
|
||||
#: ../../WINGs/wfilepanel.c:653 ../../WINGs/wfilepanel.c:752
|
||||
msgid "Cancel"
|
||||
msgstr "Zru¹it"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#. Careful, this palette exists already
|
||||
#: ../../WINGs/wcolorpanel.c:3251 ../../WINGs/wfilepanel.c:752
|
||||
msgid "Warning"
|
||||
msgstr "Varování"
|
||||
msgstr "Varování"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3252
|
||||
msgid ""
|
||||
@@ -333,9 +333,9 @@ msgid ""
|
||||
"\n"
|
||||
"Overwrite ?"
|
||||
msgstr ""
|
||||
"Paleta u¾ existuje!\n"
|
||||
"Paleta už existuje!\n"
|
||||
"\n"
|
||||
"Pøepsat?"
|
||||
"Přepsat?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3252 ../../WINGs/wcolorpanel.c:3316
|
||||
msgid "No"
|
||||
@@ -348,11 +348,11 @@ msgstr "Ano"
|
||||
#: ../../WINGs/wcolorpanel.c:3284
|
||||
#, c-format
|
||||
msgid "Couldn't rename palette %s to %s\n"
|
||||
msgstr "Nemo¾né pøejmenovat paletu %s na %s\n"
|
||||
msgstr "Nemožné přejmenovat paletu %s na %s\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3310
|
||||
msgid "This will permanently remove the palette "
|
||||
msgstr "Paleta bude natrvalo smazaná"
|
||||
msgstr "Paleta bude natrvalo smazaná"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3313
|
||||
msgid ""
|
||||
@@ -362,53 +362,53 @@ msgid ""
|
||||
msgstr ""
|
||||
".\n"
|
||||
"\n"
|
||||
"Jste si jisti, ¾e chcete odstranit tuto paletu?"
|
||||
"Jste si jisti, že chcete odstranit tuto paletu?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3338
|
||||
#, c-format
|
||||
msgid "Couldn't remove palette %s\n"
|
||||
msgstr "Nemo¾né odstranit paletu %s\n"
|
||||
msgstr "Nemožné odstranit paletu %s\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3643
|
||||
#, c-format
|
||||
msgid "Could not open %s"
|
||||
msgstr "Nemo¾né otevøít %s"
|
||||
msgstr "Nemožné otevřít %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3650
|
||||
#, c-format
|
||||
msgid "Could not create %s"
|
||||
msgstr "Nemo¾né vytvoøit %s"
|
||||
msgstr "Nemožné vytvořit %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3661
|
||||
#, c-format
|
||||
msgid "Write error on file %s"
|
||||
msgstr "Chyba pøi zápisu do souboru %s"
|
||||
msgstr "Chyba při zápisu do souboru %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3706
|
||||
msgid "Color Panel: Color unspecified"
|
||||
msgstr "Panel barev: Nespecifikovaná barva"
|
||||
msgstr "Panel barev: Nespecifikovaná barva"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:228
|
||||
msgid "Name:"
|
||||
msgstr "Jméno:"
|
||||
msgstr "Jméno:"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:325 ../../WINGs/wfilepanel.c:390
|
||||
msgid "Open"
|
||||
msgstr "Otevøít"
|
||||
msgstr "Otevřít"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:343 ../../WINGs/wfilepanel.c:396
|
||||
msgid "Save"
|
||||
msgstr "Ulo¾it"
|
||||
msgstr "Uložit"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:556
|
||||
#, c-format
|
||||
msgid "WINGs: could not open directory %s\n"
|
||||
msgstr "WINGs: nemo¾né otevøít adresáø %s\n"
|
||||
msgstr "WINGs: nemožné otevřít adresář %s\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:574
|
||||
#, c-format
|
||||
msgid "WINGs: could not stat %s\n"
|
||||
msgstr "WINGs: nemo¾né zjistit informace o %s\n"
|
||||
msgstr "WINGs: nemožné zjistit informace o %s\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:641 ../../WINGs/wfilepanel.c:962
|
||||
#: ../../WINGs/wfontpanel.c:716
|
||||
@@ -417,21 +417,21 @@ msgstr "Chyba"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:652
|
||||
msgid "Create Directory"
|
||||
msgstr "Vytvoøit adresáø"
|
||||
msgstr "Vytvořit adresář"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:653
|
||||
msgid "Enter directory name"
|
||||
msgstr "Jméno adresáøe"
|
||||
msgstr "Jméno adresáře"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:689 ../../WINGs/wfilepanel.c:728
|
||||
#: ../../WINGs/wfilepanel.c:757 ../../WINGs/wfilepanel.c:785
|
||||
msgid "Permission denied."
|
||||
msgstr "Pøístup odmítnut."
|
||||
msgstr "Přístup odmítnut."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:692
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "'%s' u¾ existuje"
|
||||
msgstr "'%s' už existuje"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:695
|
||||
msgid "Path does not exist."
|
||||
@@ -444,23 +444,23 @@ msgstr "'%s' neexistuje."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:732 ../../WINGs/wfilepanel.c:789
|
||||
msgid "Insufficient memory available."
|
||||
msgstr "Nedostatek pamìti."
|
||||
msgstr "Nedostatek paměti."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:736 ../../WINGs/wfilepanel.c:793
|
||||
#, c-format
|
||||
msgid "'%s' is on a read-only filesystem."
|
||||
msgstr "'%s' je na souborovém systému jen pro ètení."
|
||||
msgstr "'%s' je na souborovém systému jen pro čtení."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:739 ../../WINGs/wfilepanel.c:769
|
||||
#: ../../WINGs/wfilepanel.c:796
|
||||
#, c-format
|
||||
msgid "Can not delete '%s'."
|
||||
msgstr "Nemo¾né odstranit '%s'."
|
||||
msgstr "Nemožné odstranit '%s'."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:745
|
||||
#, c-format
|
||||
msgid "Delete directory %s ?"
|
||||
msgstr "Odstranit adresáø %s?"
|
||||
msgstr "Odstranit adresář %s?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:748
|
||||
#, c-format
|
||||
@@ -470,32 +470,32 @@ msgstr "Odstranit soubor %s?"
|
||||
#: ../../WINGs/wfilepanel.c:760
|
||||
#, c-format
|
||||
msgid "Directory '%s' does not exist."
|
||||
msgstr "Adresáø '%s' neexistuje."
|
||||
msgstr "Adresář '%s' neexistuje."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:763
|
||||
#, c-format
|
||||
msgid "Directory '%s' is not empty."
|
||||
msgstr "Adresáø '%s' není prázdný."
|
||||
msgstr "Adresář '%s' není prázdný."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:766
|
||||
#, c-format
|
||||
msgid "Directory '%s' is busy."
|
||||
msgstr "Adresáø '%s' je pou¾ívaný."
|
||||
msgstr "Adresář '%s' je používaný."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:779
|
||||
#, c-format
|
||||
msgid "'%s' is a directory."
|
||||
msgstr "'%s' je adresáø."
|
||||
msgstr "'%s' je adresář."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:821
|
||||
#, c-format
|
||||
msgid "An error occured browsing '%s'."
|
||||
msgstr "Pøi prohlí¾ení '%s' nastala chyba."
|
||||
msgstr "Při prohlížení '%s' nastala chyba."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:825
|
||||
#, c-format
|
||||
msgid "'%s' is not a directory."
|
||||
msgstr "'%s' není adresáø."
|
||||
msgstr "'%s' není adresář."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:962
|
||||
msgid "File does not exist."
|
||||
@@ -504,37 +504,37 @@ msgstr "Soubor neexistuje."
|
||||
#: ../../WINGs/wfont.c:129
|
||||
#, c-format
|
||||
msgid "the following character sets are missing in %s:"
|
||||
msgstr "nasledující sady znakù chybí v %s:"
|
||||
msgstr "nasledující sady znaků chybí v %s:"
|
||||
|
||||
#: ../../WINGs/wfont.c:136
|
||||
#, c-format
|
||||
msgid ""
|
||||
"the string \"%s\" will be used in place of any characters from those sets."
|
||||
msgstr ""
|
||||
"øetìzec \"%s\" bude pou¾itý namísto znakù z tìchto sad."
|
||||
"řetězec \"%s\" bude použitý namísto znaků z těchto sad."
|
||||
|
||||
#: ../../WINGs/wfont.c:282 ../../WINGs/wfont.c:318
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgstr "nemo¾né naèíst font %s. Zkou¹í se naèíst fixed."
|
||||
msgstr "nemožné načíst font %s. Zkouší se načíst fixed."
|
||||
|
||||
#: ../../WINGs/wfont.c:288 ../../WINGs/wfont.c:324
|
||||
#, c-format
|
||||
msgid "could not load font %s. Trying fixed."
|
||||
msgstr "nemo¾no naèíst font %s. Zko¹í se naèíst fixed."
|
||||
msgstr "nemožno načíst font %s. Zkoší se načíst fixed."
|
||||
|
||||
#: ../../WINGs/wfont.c:292 ../../WINGs/wfont.c:328
|
||||
msgid "could not load fixed font!"
|
||||
msgstr "nemo¾né naèíst font fixed!"
|
||||
msgstr "nemožné načíst font fixed!"
|
||||
|
||||
#: ../../WINGs/wfont.c:423
|
||||
#, c-format
|
||||
msgid "font description %s is too large."
|
||||
msgstr "popis fontu %s je pøíli¹ velký."
|
||||
msgstr "popis fontu %s je příliš velký."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:205
|
||||
msgid "Test!!!"
|
||||
msgstr "Zkou¹ka!!!"
|
||||
msgstr "Zkouška!!!"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:211
|
||||
msgid "Family"
|
||||
@@ -554,16 +554,16 @@ msgstr "Sada"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:257
|
||||
msgid "Revert"
|
||||
msgstr "Zpìt"
|
||||
msgstr "Zpět"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:717
|
||||
msgid "Could not retrieve font list"
|
||||
msgstr "Nemo¾né obdr¾et seznam fontù"
|
||||
msgstr "Nemožné obdržet seznam fontů"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:729
|
||||
#, c-format
|
||||
msgid "font name %s is longer than 256, which is invalid."
|
||||
msgstr "jméno fontu %s je del¹í ne¾ 256, co¾ je ¹patnì."
|
||||
msgstr "jméno fontu %s je delší než 256, což je špatně."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:880
|
||||
msgid "Roman"
|
||||
@@ -587,37 +587,37 @@ msgstr ""
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:895
|
||||
msgid "Normal"
|
||||
msgstr "Normílní"
|
||||
msgstr "Normílní"
|
||||
|
||||
#: ../../WINGs/widgets.c:414
|
||||
#, c-format
|
||||
msgid "WINGs: could not load widget images file: %s"
|
||||
msgstr "WINGs: nemo¾né naèíst soubor s obrázky pro widgety: %s"
|
||||
msgstr "WINGs: nemožné načíst soubor s obrázky pro widgety: %s"
|
||||
|
||||
#: ../../WINGs/widgets.c:525
|
||||
#, c-format
|
||||
msgid "WINGs: could not open display %s"
|
||||
msgstr "WINGs: nemo¾né otevøít display %s"
|
||||
msgstr "WINGs: nemožné otevřít display %s"
|
||||
|
||||
#: ../../WINGs/widgets.c:717
|
||||
msgid ""
|
||||
"could not load any fonts. Make sure your font installationand locale "
|
||||
"settings are correct."
|
||||
msgstr ""
|
||||
"nemo¾né naèíst ¾ádný font. Ubezpeète se, ¾e instalace fontù a místního "
|
||||
"nastavení jsou v poøádku."
|
||||
"nemožné načíst žádný font. Ubezpečte se, že instalace fontů a místního "
|
||||
"nastavení jsou v pořádku."
|
||||
|
||||
#: ../../WINGs/wruler.c:189
|
||||
msgid "0 inches"
|
||||
msgstr "0 palcù"
|
||||
msgstr "0 palců"
|
||||
|
||||
#: ../../WINGs/wtext.c:1212
|
||||
msgid "...for this app will surely crash :-)\n"
|
||||
msgstr "...pro tuto aplikaci to urèitì spadne :-)\n"
|
||||
msgstr "...pro tuto aplikaci to určitě spadne :-)\n"
|
||||
|
||||
#: ../../WINGs/wtext.c:2084
|
||||
msgid "didn't get it\n"
|
||||
msgstr "nedosa¾eno\n"
|
||||
msgstr "nedosaženo\n"
|
||||
|
||||
#: ../../WINGs/wtext.c:2726
|
||||
#, c-format
|
||||
@@ -626,15 +626,15 @@ msgstr "typ je [%s]\n"
|
||||
|
||||
#: ../../WINGs/wtext.c:2797
|
||||
msgid "could not request data for dropped data"
|
||||
msgstr "nemohou být vy¾ádána data pro polo¾ená data"
|
||||
msgstr "nemohou být vyžádána data pro položená data"
|
||||
|
||||
#: ../../WINGs/wtext.c:2995
|
||||
msgid "could not create text's view\n"
|
||||
msgstr "nemo¾né zobrazit text\n"
|
||||
msgstr "nemožné zobrazit text\n"
|
||||
|
||||
#: ../../WINGs/wview.c:219
|
||||
msgid "trying to realize widget of unrealized parent"
|
||||
msgstr "snaha vytvoøit widget neexistujícího rodièe objektu"
|
||||
msgstr "snaha vytvořit widget neexistujícího rodiče objektu"
|
||||
|
||||
#: ../../WINGs/wview.c:267
|
||||
msgid "trying to reparent realized view to unrealized parent"
|
||||
@@ -642,22 +642,22 @@ msgstr ""
|
||||
|
||||
#: ../../WINGs/wtextfield.c:490
|
||||
msgid "only left alignment is supported in textfields"
|
||||
msgstr "pro textové pole je povolené jen levé zarovnání"
|
||||
msgstr "pro textové pole je povolené jen levé zarovnání"
|
||||
|
||||
#pozor, co je STRING?
|
||||
#: ../../WINGs/wwindow.c:222
|
||||
msgid "window title conversion error... using STRING encoding"
|
||||
msgstr "chyba konverze titulku okna... pou¾ije se kódovaní STRING"
|
||||
msgstr "chyba konverze titulku okna... použije se kódovaní STRING"
|
||||
|
||||
#: ../../WINGs/wwindow.c:313
|
||||
msgid "could not allocate memory for window size hints"
|
||||
msgstr "nemo¾né alokovat pamì» pro pokyny velikosti okna"
|
||||
msgstr "nemožné alokovat paměť pro pokyny velikosti okna"
|
||||
|
||||
#: ../../WINGs/wwindow.c:586
|
||||
msgid "could not allocate memory for WM hints"
|
||||
msgstr "nemo¾né alokovat pamì» pro pokyny WM"
|
||||
msgstr "nemožné alokovat paměť pro pokyny WM"
|
||||
|
||||
#: ../../WINGs/wwindow.c:627
|
||||
msgid "icon title conversion error..using STRING encoding"
|
||||
msgstr "chyba konverze titulku ikony... pou¾ije se kódovaní STRING"
|
||||
msgstr "chyba konverze titulku ikony... použije se kódovaní STRING"
|
||||
|
||||
|
||||
523
WINGs/po/de.po
523
WINGs/po/de.po
@@ -1,24 +1,28 @@
|
||||
# KTranslator Generated File
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR Free Software Foundation, Inc.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
# German Message Catalog for WINGs
|
||||
#
|
||||
# Initial translation
|
||||
# Gudio Scholz <guido.scholz@bayernline.de>
|
||||
#
|
||||
# Adapted to versions 0.80 ff.
|
||||
# Torsten Marek <shlomme@gmx.net>
|
||||
#
|
||||
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WINGs 0.80.0\n"
|
||||
"POT-Creation-Date: 2002-01-09 21:06+0100\n"
|
||||
"PO-Revision-Date: 2002-01-09 21:20+0100\n"
|
||||
"Last-Translator: Guido Scholz <guido.scholz@bayernline.de>\n"
|
||||
"Language-Team: Deutsch <de@li.org>\n"
|
||||
"Project-Id-Version: WINGs\n"
|
||||
"POT-Creation-Date: 2004-11-01 16:24+0100\n"
|
||||
"PO-Revision-Date: 2004-11-05 23:48+0100\n"
|
||||
"Last-Translator: shlomme@gmx.net\n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: unknown\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../../WINGs/connection.c:461 ../../WINGs/connection.c:526
|
||||
#: ../../WINGs/connection.c:569
|
||||
#: ../../WINGs/connection.c:471 ../../WINGs/connection.c:536
|
||||
#: ../../WINGs/connection.c:579
|
||||
msgid "Bad address-service-protocol combination"
|
||||
msgstr "Ungültige Adress-Dienst-Protokoll Kombination"
|
||||
msgstr "Ungültige Kombination von Adresse und Dienstprotokoll"
|
||||
|
||||
#: ../../WINGs/error.c:54
|
||||
#, c-format
|
||||
@@ -45,346 +49,349 @@ msgstr " Fehler: "
|
||||
#: ../../WINGs/findfile.c:48
|
||||
#, c-format
|
||||
msgid "could not get password entry for UID %i"
|
||||
msgstr "konnte Passwort nicht ermitteln für UID %i"
|
||||
msgstr "Passworteintrag für UID %i konnte nicht ermittelt werden"
|
||||
|
||||
#: ../../WINGs/findfile.c:66
|
||||
#, c-format
|
||||
msgid "could not get password entry for user %s"
|
||||
msgstr "konnte Passwort nicht ermitteln für Benutzer %s"
|
||||
msgstr "Passworteintrag für Benutzer %s konnte nicht ermittelt werden"
|
||||
|
||||
#: ../../WINGs/host.c:114
|
||||
msgid "Cannot get current host name"
|
||||
msgstr "Kann aktuellen Hostnamen nicht ermitteln"
|
||||
msgstr "Aktueller Hostname kann nicht ermittelt werden"
|
||||
|
||||
#: ../../WINGs/proplist.c:91
|
||||
#, c-format
|
||||
msgid "syntax error in %s %s, line %i: %s"
|
||||
msgstr "Syntaxfehler in %s %s, Zeile %i: %s"
|
||||
|
||||
#: ../../WINGs/proplist.c:150
|
||||
msgid "Only string or data is supported for a proplist dictionary key"
|
||||
msgstr ""
|
||||
"Nur string oder data wird als Schlüssel für ein proplist dictionary "
|
||||
"unterstützt"
|
||||
"Nur Zeichenketten oder Binärdaten werden als Schlüssel für ein PropList-Dictionary "
|
||||
"unterstützt"
|
||||
|
||||
#: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236
|
||||
#: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474
|
||||
#: ../../WINGs/proplist.c:1071 ../../WINGs/proplist.c:1123
|
||||
#: ../../WINGs/proplist.c:1289 ../../WINGs/proplist.c:1368
|
||||
#: ../../WINGs/proplist.c:1489 ../../WINGs/proplist.c:1536
|
||||
#: ../../WINGs/proplist.c:1075 ../../WINGs/proplist.c:1127
|
||||
#: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372
|
||||
#: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540
|
||||
msgid "Used proplist functions on non-WMPropLists objects"
|
||||
msgstr ""
|
||||
msgstr "PropList-Funktionen werden auf nicht-WMPropList-Objekte angewendet"
|
||||
|
||||
#: ../../WINGs/proplist.c:630
|
||||
msgid "unterminated PropList string"
|
||||
msgstr "nicht terminierter PropList string"
|
||||
msgstr "nicht terminierte PropList-Zeichenkette"
|
||||
|
||||
#: ../../WINGs/proplist.c:670
|
||||
msgid "unterminated PropList data"
|
||||
msgstr "nicht terminiertes PropList data"
|
||||
msgstr "nicht terminierte PropList-Binärdaten"
|
||||
|
||||
#: ../../WINGs/proplist.c:678
|
||||
msgid "unterminated PropList data (missing hexdigit)"
|
||||
msgstr "nicht terminiertes PropList data (fehlendes hex-Zeichen)"
|
||||
msgstr "nicht terminierte PropList-Binärdaten (fehlendes Hex-Zeichen)"
|
||||
|
||||
#: ../../WINGs/proplist.c:690
|
||||
#: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695
|
||||
msgid "non hexdigit character in PropList data"
|
||||
msgstr "falsches hex-Zeichen in PropList data"
|
||||
msgstr "falsches Hex-Zeichen in PropList-Binärdaten"
|
||||
|
||||
#: ../../WINGs/proplist.c:725
|
||||
#: ../../WINGs/proplist.c:729
|
||||
msgid "unterminated PropList array"
|
||||
msgstr "nicht terminiertes PropList array"
|
||||
msgstr "nicht terminiertes PropList-Array"
|
||||
|
||||
#: ../../WINGs/proplist.c:733
|
||||
#: ../../WINGs/proplist.c:737
|
||||
msgid "missing or unterminated PropList array"
|
||||
msgstr "fehlendes oder nicht terminiertes PropList array"
|
||||
msgstr "fehlendes oder nicht terminiertes PropList-Array"
|
||||
|
||||
#: ../../WINGs/proplist.c:743
|
||||
#: ../../WINGs/proplist.c:747
|
||||
msgid "could not get PropList array element"
|
||||
msgstr ""
|
||||
msgstr "PropList-Array-Element konnte nicht gelesen werden"
|
||||
|
||||
#: ../../WINGs/proplist.c:772
|
||||
#: ../../WINGs/proplist.c:776
|
||||
msgid "unterminated PropList dictionary"
|
||||
msgstr ""
|
||||
msgstr "nicht terminiertes PropList-Dictionary"
|
||||
|
||||
#: ../../WINGs/proplist.c:789
|
||||
#: ../../WINGs/proplist.c:793
|
||||
msgid "missing PropList dictionary key"
|
||||
msgstr ""
|
||||
msgstr "fehlender Schlüssel in PropList-Dictionary"
|
||||
|
||||
#: ../../WINGs/proplist.c:791
|
||||
#: ../../WINGs/proplist.c:795
|
||||
msgid "missing PropList dictionary entry key or unterminated dictionary"
|
||||
msgstr ""
|
||||
msgstr "fehlender Schlüssel in PropList-Dictionary oder fehlende Terminierung"
|
||||
|
||||
#: ../../WINGs/proplist.c:799
|
||||
#: ../../WINGs/proplist.c:803
|
||||
msgid "error parsing PropList dictionary key"
|
||||
msgstr ""
|
||||
msgstr "Fehler beim Parsen eines PropList-Dictionary-Schlüssels"
|
||||
|
||||
#: ../../WINGs/proplist.c:807
|
||||
#: ../../WINGs/proplist.c:811
|
||||
msgid "missing = in PropList dictionary entry"
|
||||
msgstr ""
|
||||
msgstr "fehlendes \"=\" in PropList-Dictionary-Schlüssel"
|
||||
|
||||
#: ../../WINGs/proplist.c:815
|
||||
#: ../../WINGs/proplist.c:819
|
||||
msgid "error parsing PropList dictionary entry value"
|
||||
msgstr ""
|
||||
msgstr "Fehler beim Parsen eines PropList-Dictionary-Wertes"
|
||||
|
||||
#: ../../WINGs/proplist.c:823
|
||||
#: ../../WINGs/proplist.c:827
|
||||
msgid "missing ; in PropList dictionary entry"
|
||||
msgstr ""
|
||||
msgstr "fehlendes \";\" in PropList-Dictionary-Eintrag"
|
||||
|
||||
#: ../../WINGs/proplist.c:884
|
||||
#: ../../WINGs/proplist.c:888
|
||||
msgid ""
|
||||
"was expecting a string, data, array or dictionary. If it's a string, try "
|
||||
"enclosing it with \"."
|
||||
msgstr ""
|
||||
"string, data, array oder dictionary wurde erwartet. Zeichenketten mit \" "
|
||||
"Zeichenkette, Binärdaten, Array oder Dictionary erwartet. Zeichenketten ggf. mit \" "
|
||||
"einklammern."
|
||||
|
||||
#: ../../WINGs/proplist.c:888
|
||||
#: ../../WINGs/proplist.c:892
|
||||
msgid "Comments are not allowed inside WindowMaker owned domain files."
|
||||
msgstr "Kommentare sind in Domaindaten von WindowMaker nicht erlaubt."
|
||||
msgstr "Kommentare sind in Domänendaten von WindowMaker nicht erlaubt."
|
||||
|
||||
#: ../../WINGs/proplist.c:1559 ../../WINGs/proplist.c:1624
|
||||
#: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1630
|
||||
msgid "extra data after end of property list"
|
||||
msgstr "zusätzliche Daten hinter dem Ende der Propertyliste"
|
||||
msgstr "zusätzliche Daten hinter dem Ende der Propertyliste"
|
||||
|
||||
#: ../../WINGs/proplist.c:1602
|
||||
#: ../../WINGs/proplist.c:1606
|
||||
#, c-format
|
||||
msgid "could not get size for file '%s'"
|
||||
msgstr "konnte Dateigrösse von '%s' nicht ermitteln"
|
||||
msgstr "Dateigröße von '%s' konnte nicht ermittelt werden"
|
||||
|
||||
#: ../../WINGs/proplist.c:1614
|
||||
#: ../../WINGs/proplist.c:1619
|
||||
#, c-format
|
||||
msgid "error reading from file '%s'"
|
||||
msgstr "Fehler beim Lesen der Datei '%s'"
|
||||
|
||||
#: ../../WINGs/proplist.c:1665
|
||||
#: ../../WINGs/proplist.c:1671
|
||||
#, c-format
|
||||
msgid "mkstemp (%s) failed"
|
||||
msgstr "mkstemp (%s) schlug fehl"
|
||||
msgstr "mkstemp (%s) fehlgeschlagen"
|
||||
|
||||
#: ../../WINGs/proplist.c:1676
|
||||
#: ../../WINGs/proplist.c:1682
|
||||
#, c-format
|
||||
msgid "mktemp (%s) failed"
|
||||
msgstr "mktemp (%s) schlug fehl"
|
||||
msgstr "mktemp (%s) fehlgeschlagen"
|
||||
|
||||
#: ../../WINGs/proplist.c:1687
|
||||
#: ../../WINGs/proplist.c:1693
|
||||
#, c-format
|
||||
msgid "open (%s) failed"
|
||||
msgstr "open (%s) schlug fehl"
|
||||
msgstr "open (%s) fehlgeschlagen"
|
||||
|
||||
#: ../../WINGs/proplist.c:1694
|
||||
#: ../../WINGs/proplist.c:1700
|
||||
#, c-format
|
||||
msgid "writing to file: %s failed"
|
||||
msgstr "Schreiben in Datei: %s schlug fehl"
|
||||
msgstr "Schreiben in Datei: %s fehlgeschlagen"
|
||||
|
||||
#: ../../WINGs/proplist.c:1702
|
||||
#: ../../WINGs/proplist.c:1708
|
||||
#, c-format
|
||||
msgid "fclose (%s) failed"
|
||||
msgstr "fclose (%s) schlug fehl"
|
||||
msgstr "fclose (%s) fehlgeschlagen"
|
||||
|
||||
#: ../../WINGs/proplist.c:1711
|
||||
#: ../../WINGs/proplist.c:1717
|
||||
#, c-format
|
||||
msgid "rename ('%s' to '%s') failed"
|
||||
msgstr "rename ('%s' to '%s') schlug fehl"
|
||||
msgstr "rename ('%s' nach '%s') fehlgeschlagen"
|
||||
|
||||
#. something happened with the file. just overwrite it
|
||||
#: ../../WINGs/userdefaults.c:192 ../../WINGs/userdefaults.c:208
|
||||
#: ../../WINGs/userdefaults.c:188 ../../WINGs/userdefaults.c:204
|
||||
#, c-format
|
||||
msgid "cannot read domain from file '%s' when syncing"
|
||||
msgstr "Kannn bei der Synchronisation nicht aus Datei '%s' lesen"
|
||||
msgstr "Bei der Synchronisation konnte nicht aus der Datei '%s' gelesen werden"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198 ../../WINGs/wcolor.c:211 ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#: ../../WINGs/wcolor.c:237 ../../WINGs/wcolor.c:249 ../../WINGs/wcolor.c:288
|
||||
#: ../../WINGs/wcolor.c:329
|
||||
#, c-format
|
||||
msgid "could not allocate %s color"
|
||||
msgstr "konnte die Farbe %s nicht erzeugen"
|
||||
msgstr "Farbe %s konnte nicht erzeugt werden"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198
|
||||
#: ../../WINGs/wcolor.c:237
|
||||
msgid "white"
|
||||
msgstr "weiß"
|
||||
msgstr "Weiß"
|
||||
|
||||
#: ../../WINGs/wcolor.c:211
|
||||
#: ../../WINGs/wcolor.c:249
|
||||
msgid "black"
|
||||
msgstr "schwarz"
|
||||
msgstr "Schwarz"
|
||||
|
||||
#: ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:288
|
||||
msgid "gray"
|
||||
msgstr "grau"
|
||||
msgstr "Grau"
|
||||
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#: ../../WINGs/wcolor.c:329
|
||||
msgid "dark gray"
|
||||
msgstr "dunkelgrau"
|
||||
msgstr "Dunkelgrau"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:415
|
||||
#: ../../WINGs/wcolorpanel.c:420
|
||||
msgid "Colors"
|
||||
msgstr "Farben"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:605 ../../WINGs/wcolorpanel.c:2824
|
||||
#: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829
|
||||
msgid "Brightness"
|
||||
msgstr "Helligkeit"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:607 ../../WINGs/wcolorpanel.c:683
|
||||
#: ../../WINGs/wcolorpanel.c:716 ../../WINGs/wcolorpanel.c:750
|
||||
#: ../../WINGs/wcolorpanel.c:810 ../../WINGs/wcolorpanel.c:844
|
||||
#: ../../WINGs/wcolorpanel.c:878 ../../WINGs/wcolorpanel.c:913
|
||||
#: ../../WINGs/wcolorpanel.c:2164 ../../WINGs/wcolorpanel.c:2826
|
||||
#: ../../WINGs/wcolorpanel.c:2862 ../../WINGs/wcolorpanel.c:2898
|
||||
#: ../../WINGs/wcolorpanel.c:3746
|
||||
#: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688
|
||||
#: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755
|
||||
#: ../../WINGs/wcolorpanel.c:815 ../../WINGs/wcolorpanel.c:849
|
||||
#: ../../WINGs/wcolorpanel.c:883 ../../WINGs/wcolorpanel.c:918
|
||||
#: ../../WINGs/wcolorpanel.c:2169 ../../WINGs/wcolorpanel.c:2831
|
||||
#: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903
|
||||
#: ../../WINGs/wcolorpanel.c:3745
|
||||
msgid "Color Panel: Could not allocate memory"
|
||||
msgstr "Color Panel: Konnte keinen Speicher reservieren"
|
||||
msgstr "Farb-Panel: Speicher konnte nicht reserviert werden"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:680 ../../WINGs/wcolorpanel.c:681
|
||||
#: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686
|
||||
msgid "Red"
|
||||
msgstr "Rot"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:713 ../../WINGs/wcolorpanel.c:714
|
||||
#: ../../WINGs/wcolorpanel.c:718 ../../WINGs/wcolorpanel.c:719
|
||||
msgid "Green"
|
||||
msgstr "Grün"
|
||||
msgstr "Grün"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:747 ../../WINGs/wcolorpanel.c:748
|
||||
#: ../../WINGs/wcolorpanel.c:752 ../../WINGs/wcolorpanel.c:753
|
||||
msgid "Blue"
|
||||
msgstr "Blau"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:807 ../../WINGs/wcolorpanel.c:808
|
||||
#: ../../WINGs/wcolorpanel.c:812 ../../WINGs/wcolorpanel.c:813
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:841 ../../WINGs/wcolorpanel.c:842
|
||||
#: ../../WINGs/wcolorpanel.c:846 ../../WINGs/wcolorpanel.c:847
|
||||
msgid "Magenta"
|
||||
msgstr ""
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:875 ../../WINGs/wcolorpanel.c:876
|
||||
#: ../../WINGs/wcolorpanel.c:880 ../../WINGs/wcolorpanel.c:881
|
||||
msgid "Yellow"
|
||||
msgstr "Gelb"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:910 ../../WINGs/wcolorpanel.c:911
|
||||
#: ../../WINGs/wcolorpanel.c:915 ../../WINGs/wcolorpanel.c:916
|
||||
msgid "Black"
|
||||
msgstr "Schwarz"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:991
|
||||
#: ../../WINGs/wcolorpanel.c:996
|
||||
msgid "Spectrum"
|
||||
msgstr "Spektrum"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1021
|
||||
#: ../../WINGs/wcolorpanel.c:1026
|
||||
msgid "Palette"
|
||||
msgstr ""
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1027
|
||||
#: ../../WINGs/wcolorpanel.c:1032
|
||||
msgid "New from File..."
|
||||
msgstr "Neu aus Datei..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1028 ../../WINGs/wcolorpanel.c:1076
|
||||
#: ../../WINGs/wcolorpanel.c:1093
|
||||
#: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081
|
||||
#: ../../WINGs/wcolorpanel.c:1098
|
||||
msgid "Rename..."
|
||||
msgstr "Umbenennen..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1029 ../../WINGs/wcolorpanel.c:1077
|
||||
#: ../../WINGs/wcolorpanel.c:1094 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:1034 ../../WINGs/wcolorpanel.c:1082
|
||||
#: ../../WINGs/wcolorpanel.c:1099 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1030
|
||||
#: ../../WINGs/wcolorpanel.c:1035
|
||||
msgid "Copy"
|
||||
msgstr "Kopieren"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1031
|
||||
#: ../../WINGs/wcolorpanel.c:1036
|
||||
msgid "New from Clipboard"
|
||||
msgstr "Neu aus Zwischenablage"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1052
|
||||
#: ../../WINGs/wcolorpanel.c:1057
|
||||
msgid "X11-Colors"
|
||||
msgstr "X11-Farben"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1069
|
||||
#: ../../WINGs/wcolorpanel.c:1074
|
||||
msgid "Color"
|
||||
msgstr "Farbe"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1075
|
||||
#: ../../WINGs/wcolorpanel.c:1080
|
||||
msgid "Add..."
|
||||
msgstr "Hinzufügen..."
|
||||
msgstr "Hinzufügen..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1085
|
||||
#: ../../WINGs/wcolorpanel.c:1090
|
||||
msgid "List"
|
||||
msgstr "Liste"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1092
|
||||
#: ../../WINGs/wcolorpanel.c:1097
|
||||
msgid "New..."
|
||||
msgstr "Neu..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1231
|
||||
#: ../../WINGs/wcolorpanel.c:1236
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Color Panel: Could not create directory %s needed to store configurations"
|
||||
msgstr ""
|
||||
"Color Panel: Konnte das Verzeichnis %s zum Speichern der Konfiguration nicht erzeugen"
|
||||
msgid "Color Panel: Could not create directory %s needed to store configurations"
|
||||
msgstr "Farb-Panel: Verzeichnis %s konnte zum Speichern der Konfiguration nicht erzeugt werden"
|
||||
|
||||
#. Delete the file, it doesn't belong here
|
||||
#: ../../WINGs/wcolorpanel.c:1237 ../../WINGs/wcolorpanel.c:3207
|
||||
#: ../../WINGs/wcolorpanel.c:3211
|
||||
#: ../../WINGs/wcolorpanel.c:1242 ../../WINGs/wcolorpanel.c:3212
|
||||
#: ../../WINGs/wcolorpanel.c:3216
|
||||
msgid "File Error"
|
||||
msgstr "Dateifehler"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1238
|
||||
#: ../../WINGs/wcolorpanel.c:1243
|
||||
msgid "Could not create ColorPanel configuration directory"
|
||||
msgstr "Konnte Konfigurationsverzeichnis für Farbdialog nicht erzeugen"
|
||||
msgstr "Konfigurationsverzeichnis für Farb-Panel konnte nicht erzeugt werden"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1239 ../../WINGs/wcolorpanel.c:3208
|
||||
#: ../../WINGs/wcolorpanel.c:3213 ../../WINGs/wcolorpanel.c:3240
|
||||
#: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:647
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wfilepanel.c:971 ../../WINGs/wfontpanel.c:709
|
||||
#: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213
|
||||
#: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245
|
||||
#: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:650
|
||||
#: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763
|
||||
#: ../../WINGs/wfilepanel.c:974 ../../WINGs/wfontpanel.c:591
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
msgstr ""
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1245 ../../WINGs/wcolorpanel.c:1281
|
||||
#: ../../WINGs/wcolorpanel.c:1299
|
||||
#: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286
|
||||
#: ../../WINGs/wcolorpanel.c:1304
|
||||
msgid "Color Panel: Could not find file"
|
||||
msgstr "Color Panel: Konnte Datei nicht finden"
|
||||
msgstr "Farb-Panel: Datei konnte nicht gefunden werden"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1486 ../../WINGs/wcolorpanel.c:1551
|
||||
#: ../../WINGs/wcolorpanel.c:1615
|
||||
#: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556
|
||||
#: ../../WINGs/wcolorpanel.c:1620
|
||||
msgid "Color Panel: X failed request"
|
||||
msgstr "Color Panel: X Anfrage schlug fehl"
|
||||
msgstr "Farb-Panel: X-Anfrage fehlgeschlagen"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2860
|
||||
#: ../../WINGs/wcolorpanel.c:2865
|
||||
msgid "Saturation"
|
||||
msgstr "Sättigung"
|
||||
msgstr "Sättigung"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2896
|
||||
#: ../../WINGs/wcolorpanel.c:2901
|
||||
msgid "Hue"
|
||||
msgstr "Farbton"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3146
|
||||
#: ../../WINGs/wcolorpanel.c:3151
|
||||
msgid "Open Palette"
|
||||
msgstr "Palette öffnen"
|
||||
msgstr "Palette öffnen"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3208
|
||||
#: ../../WINGs/wcolorpanel.c:3213
|
||||
msgid "Invalid file format !"
|
||||
msgstr "Ungültiges Dateiformat!"
|
||||
msgstr "Ungültiges Dateiformat!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3210
|
||||
#: ../../WINGs/wcolorpanel.c:3215
|
||||
#, c-format
|
||||
msgid "can't remove file %s"
|
||||
msgstr "kann Datei %s nicht entfernen"
|
||||
msgstr "Datei %s konnte nicht entfert werden"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3212
|
||||
#: ../../WINGs/wcolorpanel.c:3217
|
||||
msgid "Couldn't remove file from Configuration Directory !"
|
||||
msgstr "Konnte Datei nicht aus Konfigurationsverzeichnis entfernen!"
|
||||
msgstr "Datei konnte nicht aus Konfigurationsverzeichnis entfernt werden!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
#: ../../WINGs/wcolorpanel.c:3244
|
||||
msgid "Rename"
|
||||
msgstr "Umbenennen"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
#: ../../WINGs/wcolorpanel.c:3244
|
||||
msgid "Rename palette to:"
|
||||
msgstr "Palette umbenennen in:"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3240 ../../WINGs/wfilepanel.c:259
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wcolorpanel.c:3245 ../../WINGs/wfilepanel.c:259
|
||||
#: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#. Careful, this palette exists already
|
||||
#: ../../WINGs/wcolorpanel.c:3256 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wcolorpanel.c:3261 ../../WINGs/wfilepanel.c:763
|
||||
msgid "Warning"
|
||||
msgstr "Warnung"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257
|
||||
#: ../../WINGs/wcolorpanel.c:3262
|
||||
msgid ""
|
||||
"Palette already exists !\n"
|
||||
"\n"
|
||||
@@ -392,26 +399,26 @@ msgid ""
|
||||
msgstr ""
|
||||
"Palette existiert bereits!\n"
|
||||
"\n"
|
||||
"Überschreiben?"
|
||||
"Überschreiben?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "No"
|
||||
msgstr "Nein"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3289
|
||||
#: ../../WINGs/wcolorpanel.c:3294
|
||||
#, c-format
|
||||
msgid "Couldn't rename palette %s to %s\n"
|
||||
msgstr "Konnte Palette %s nicht in %s umbenennen\n"
|
||||
msgstr "Palette %s konnte nicht nach %s umbenannt werden\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3315
|
||||
#: ../../WINGs/wcolorpanel.c:3320
|
||||
msgid "This will permanently remove the palette "
|
||||
msgstr "Das wird die Palette unwiderruflich löschen "
|
||||
msgstr "Hiermit wird die Palette unwiderruflich gelöscht "
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3318
|
||||
#: ../../WINGs/wcolorpanel.c:3323
|
||||
msgid ""
|
||||
".\n"
|
||||
"\n"
|
||||
@@ -419,31 +426,31 @@ msgid ""
|
||||
msgstr ""
|
||||
".\n"
|
||||
"\n"
|
||||
"Sind Sie sicher, dass Sie die Palette löschen wollen?"
|
||||
"Sind Sie sicher, dass Sie die Palette löschen wollen?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3343
|
||||
#: ../../WINGs/wcolorpanel.c:3348
|
||||
#, c-format
|
||||
msgid "Couldn't remove palette %s\n"
|
||||
msgstr "Konnte Palette %s nicht löschen\n"
|
||||
msgstr "Palette %s konnte nicht gelöscht werden\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3648
|
||||
#: ../../WINGs/wcolorpanel.c:3647
|
||||
#, c-format
|
||||
msgid "Could not open %s"
|
||||
msgstr "Konnte %s nicht öffnen"
|
||||
msgstr "%s konnte nicht geöffnet werden"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3655
|
||||
#: ../../WINGs/wcolorpanel.c:3654
|
||||
#, c-format
|
||||
msgid "Could not create %s"
|
||||
msgstr "Konnte %s nicht erzeugen"
|
||||
msgstr "%s konnte nicht erzeugt werden"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3666
|
||||
#: ../../WINGs/wcolorpanel.c:3665
|
||||
#, c-format
|
||||
msgid "Write error on file %s"
|
||||
msgstr "Schreibfehler bei Datei %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3711
|
||||
#: ../../WINGs/wcolorpanel.c:3710
|
||||
msgid "Color Panel: Color unspecified"
|
||||
msgstr "Color Panel: Farbe nicht spezifiziert"
|
||||
msgstr "Farb-Panel: Farbe nicht spezifiziert"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:235
|
||||
msgid "Name:"
|
||||
@@ -451,214 +458,170 @@ msgstr "Name:"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:562
|
||||
#: ../../WINGs/wfilepanel.c:565
|
||||
#, c-format
|
||||
msgid "WINGs: could not open directory %s\n"
|
||||
msgstr "WINGs: Konnte Verzeichnis %s nicht öffen\n"
|
||||
msgstr "WINGs: Verzeichnis %s konnte nicht geöffnet werden\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:580
|
||||
#: ../../WINGs/wfilepanel.c:583
|
||||
#, c-format
|
||||
msgid "WINGs: could not stat %s\n"
|
||||
msgstr "WINGs: Dateistatus von %s nicht bestimmbar\n"
|
||||
msgstr "WINGs: Dateistatus von %s unbestimmbar\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:647 ../../WINGs/wfilepanel.c:970
|
||||
#: ../../WINGs/wfontpanel.c:708
|
||||
#: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973
|
||||
#: ../../WINGs/wfontpanel.c:590
|
||||
msgid "Error"
|
||||
msgstr "Fehler"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:658
|
||||
#: ../../WINGs/wfilepanel.c:661
|
||||
msgid "Create Directory"
|
||||
msgstr "Verzeichnis anlegen"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:659
|
||||
#: ../../WINGs/wfilepanel.c:662
|
||||
msgid "Enter directory name"
|
||||
msgstr "Verzeichnisname eingeben"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:695 ../../WINGs/wfilepanel.c:734
|
||||
#: ../../WINGs/wfilepanel.c:765 ../../WINGs/wfilepanel.c:793
|
||||
#: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737
|
||||
#: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796
|
||||
msgid "Permission denied."
|
||||
msgstr "Zugriff verweigert."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:698
|
||||
#: ../../WINGs/wfilepanel.c:701
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "'%s' existiert bereits."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:701
|
||||
#: ../../WINGs/wfilepanel.c:704
|
||||
msgid "Path does not exist."
|
||||
msgstr "Pfad existiert nicht."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:731 ../../WINGs/wfilepanel.c:790
|
||||
#: ../../WINGs/wfilepanel.c:734 ../../WINGs/wfilepanel.c:793
|
||||
#, c-format
|
||||
msgid "'%s' does not exist."
|
||||
msgstr "'%s' existiert nicht."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:738 ../../WINGs/wfilepanel.c:797
|
||||
#: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800
|
||||
msgid "Insufficient memory available."
|
||||
msgstr "Nicht genügend Speicher verfügbar."
|
||||
msgstr "Nicht genügend Speicher verfügbar."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:742 ../../WINGs/wfilepanel.c:801
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804
|
||||
#, c-format
|
||||
msgid "'%s' is on a read-only filesystem."
|
||||
msgstr "'%s' liegt auf einem read-only Dateisystem."
|
||||
msgstr "'%s' liegt auf einem nur lesbaren Dateisystem."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:777
|
||||
#: ../../WINGs/wfilepanel.c:804
|
||||
#: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780
|
||||
#: ../../WINGs/wfilepanel.c:807
|
||||
#, c-format
|
||||
msgid "Can not delete '%s'."
|
||||
msgstr "Kann %s nicht löschen."
|
||||
msgstr "Kann %s nicht löschen."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:752
|
||||
#: ../../WINGs/wfilepanel.c:755
|
||||
#, c-format
|
||||
msgid "Delete directory %s ?"
|
||||
msgstr "Verzeichnis % s löschen?"
|
||||
msgstr "Verzeichnis %s löschen?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:756
|
||||
#: ../../WINGs/wfilepanel.c:759
|
||||
#, c-format
|
||||
msgid "Delete file %s ?"
|
||||
msgstr "Datei %s löschen?"
|
||||
msgstr "Datei %s löschen?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:768
|
||||
#: ../../WINGs/wfilepanel.c:771
|
||||
#, c-format
|
||||
msgid "Directory '%s' does not exist."
|
||||
msgstr "Verzeichnis '%s' existiert nicht."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:771
|
||||
#: ../../WINGs/wfilepanel.c:774
|
||||
#, c-format
|
||||
msgid "Directory '%s' is not empty."
|
||||
msgstr "Verzeichnis '%s' ist nicht leer."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:774
|
||||
#: ../../WINGs/wfilepanel.c:777
|
||||
#, c-format
|
||||
msgid "Directory '%s' is busy."
|
||||
msgstr "Verzeichnis '%s' ist belegt."
|
||||
msgstr "Verzeichnis '%s' wird benutz."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:787
|
||||
#: ../../WINGs/wfilepanel.c:790
|
||||
#, c-format
|
||||
msgid "'%s' is a directory."
|
||||
msgstr "'%s' ist ein Verzeichnis."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:829
|
||||
#: ../../WINGs/wfilepanel.c:832
|
||||
#, c-format
|
||||
msgid "An error occured browsing '%s'."
|
||||
msgstr "Fehler beim Lesen von '%s'."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:833
|
||||
#: ../../WINGs/wfilepanel.c:836
|
||||
#, c-format
|
||||
msgid "'%s' is not a directory."
|
||||
msgstr "'%s' ist kein Verzeichnis."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:970
|
||||
#: ../../WINGs/wfilepanel.c:973
|
||||
msgid "File does not exist."
|
||||
msgstr "Datei existiert nicht."
|
||||
|
||||
#: ../../WINGs/wfont.c:129
|
||||
#: ../../WINGs/wfont.c:40
|
||||
#, c-format
|
||||
msgid "the following character sets are missing in %s:"
|
||||
msgstr "die folgenden Zeichensätze fehlen in %s:"
|
||||
msgid "invalid font: %s. Trying '%s'"
|
||||
msgstr "Ungültige Schriftart: %s. Wird ersetzt durch %s."
|
||||
|
||||
#: ../../WINGs/wfont.c:136
|
||||
#: ../../WINGs/wfont.c:257 ../../WINGs/wfont.c:277
|
||||
#, c-format
|
||||
msgid ""
|
||||
"the string \"%s\" will be used in place of any characters from those sets."
|
||||
msgid "could not load font: %s."
|
||||
msgstr "Schriftart konnte nicht geladen werden: %s"
|
||||
|
||||
#. WMSetWidgetBackgroundColor(panel->win, WMWhiteColor(scr));
|
||||
#: ../../WINGs/wfontpanel.c:203
|
||||
msgid "Font Panel"
|
||||
msgstr "Schrift-Panel"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:239
|
||||
msgid "The quick brown fox jumps over the lazy dog"
|
||||
msgstr ""
|
||||
"die Zeichenkette \"%s\" ersetzt alle anderen Zeichen dieser Zeichensätze."
|
||||
|
||||
#: ../../WINGs/wfont.c:287 ../../WINGs/wfont.c:323
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgstr "konnte Fonts nicht laden. Nehme fixed-Font."
|
||||
|
||||
#: ../../WINGs/wfont.c:293 ../../WINGs/wfont.c:329
|
||||
#, c-format
|
||||
msgid "could not load font %s. Trying fixed."
|
||||
msgstr "Konnte Font %s nicht laden. Nehme fixed-Font."
|
||||
|
||||
#: ../../WINGs/wfont.c:297 ../../WINGs/wfont.c:333
|
||||
msgid "could not load fixed font!"
|
||||
msgstr "konnte fixed-Font nicht laden!"
|
||||
|
||||
#: ../../WINGs/wfont.c:428
|
||||
#, c-format
|
||||
msgid "font description %s is too large."
|
||||
msgstr "Fontbeschreibung ist zu groß."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:205
|
||||
msgid "Test!!!"
|
||||
msgstr "Test!"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:211
|
||||
#: ../../WINGs/wfontpanel.c:245
|
||||
msgid "Family"
|
||||
msgstr "Familie"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:222
|
||||
#: ../../WINGs/wfontpanel.c:256
|
||||
msgid "Typeface"
|
||||
msgstr "Schriftart"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:233
|
||||
#: ../../WINGs/wfontpanel.c:267
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
msgstr "Größe"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:252
|
||||
#: ../../WINGs/wfontpanel.c:286
|
||||
msgid "Set"
|
||||
msgstr "Setzen"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:257
|
||||
#: ../../WINGs/wfontpanel.c:292
|
||||
msgid "Revert"
|
||||
msgstr "Zurückn."
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:709
|
||||
msgid "Could not retrieve font list"
|
||||
msgstr "Konnte Fontliste nicht wiederherstellen"
|
||||
#: ../../WINGs/wfontpanel.c:591
|
||||
msgid "Could not init font config library\n"
|
||||
msgstr "\"font-config\"-Bibliothek konnte nicht initialisiert werden\n"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:721
|
||||
#, c-format
|
||||
msgid "font name %s is longer than 256, which is invalid."
|
||||
msgstr "Fontname %s ist ungültig, da länger als 256 Zeichen."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:868
|
||||
msgid "Roman"
|
||||
msgstr "Roman"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:871
|
||||
msgid "Italic"
|
||||
msgstr "Kursiv"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:873
|
||||
msgid "Oblique"
|
||||
msgstr "Schräg"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:875
|
||||
msgid "Rev Italic"
|
||||
msgstr ""
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:877
|
||||
msgid "Rev Oblique"
|
||||
msgstr ""
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:883
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#: ../../WINGs/widgets.c:415
|
||||
#: ../../WINGs/widgets.c:419
|
||||
#, c-format
|
||||
msgid "WINGs: could not load widget images file: %s"
|
||||
msgstr "WINGs: Konnte Widget-Bildatei %s nicht laden."
|
||||
msgstr "WINGs: Widget-Bilderdatei konnte nicht geladen werden: %s"
|
||||
|
||||
#: ../../WINGs/widgets.c:763
|
||||
#: ../../WINGs/widgets.c:767
|
||||
msgid ""
|
||||
"could not load any fonts. Make sure your font installation and locale "
|
||||
"settings are correct."
|
||||
msgstr ""
|
||||
"Konnte keine Fonts laden. Überprüfen Sie, ob Ihre Fontinstallation und "
|
||||
"-einstellungen korrekt sind."
|
||||
"Keine Schrifen konnten geladen werden. Überprüfen Sie, ob Ihre Schrifteninstallation und -"
|
||||
"Lokalisierungseinstellungen korrekt sind."
|
||||
|
||||
#: ../../WINGs/wruler.c:189
|
||||
#: ../../WINGs/wruler.c:192
|
||||
msgid "0 inches"
|
||||
msgstr "0 Inch"
|
||||
|
||||
|
||||
168
WINGs/po/fr.po
168
WINGs/po/fr.po
@@ -9,9 +9,9 @@ msgstr ""
|
||||
"POT-Creation-Date: 2003-05-02 15:39+0200\n"
|
||||
"PO-Revision-Date: 2002-01-09 21:20+0100\n"
|
||||
"Last-Translator: Emmanuel Benoit <tseeker@neptune.fr>\n"
|
||||
"Language-Team: Français <fr@li.org>\n"
|
||||
"Language-Team: Français <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: unknown\n"
|
||||
|
||||
#: ../../WINGs/connection.c:467 ../../WINGs/connection.c:532
|
||||
@@ -31,15 +31,15 @@ msgstr "Erreur %d"
|
||||
|
||||
#: ../../WINGs/error.c:110
|
||||
msgid " warning: "
|
||||
msgstr " Avertissement : "
|
||||
msgstr " Avertissement : "
|
||||
|
||||
#: ../../WINGs/error.c:137
|
||||
msgid " fatal error: "
|
||||
msgstr " erreur fatale : "
|
||||
msgstr " erreur fatale : "
|
||||
|
||||
#: ../../WINGs/error.c:163 ../../WINGs/error.c:192
|
||||
msgid " error: "
|
||||
msgstr " erreur : "
|
||||
msgstr " erreur : "
|
||||
|
||||
#: ../../WINGs/findfile.c:48
|
||||
#, c-format
|
||||
@@ -49,22 +49,22 @@ msgstr "Impossible de lire le mot de passe de l'UID %i"
|
||||
#: ../../WINGs/findfile.c:66
|
||||
#, c-format
|
||||
msgid "could not get password entry for user %s"
|
||||
msgstr "Impossible de lire le mot de passe de l'utilisateur %i"
|
||||
msgstr "Impossible de lire le mot de passe de l'utilisateur %s"
|
||||
|
||||
#: ../../WINGs/host.c:114
|
||||
msgid "Cannot get current host name"
|
||||
msgstr "Impossible de déterminer le nom de la machine"
|
||||
msgstr "Impossible de déterminer le nom de la machine"
|
||||
|
||||
# TODO pas de traduction correcte possible, cf source.
|
||||
#: ../../WINGs/proplist.c:91
|
||||
#, c-format
|
||||
msgid "syntax error in %s %s, line %i: %s"
|
||||
msgstr "Faute de syntaxe dans %s %s, ligne %i : %s"
|
||||
msgstr "Faute de syntaxe dans %s %s, ligne %i : %s"
|
||||
|
||||
#: ../../WINGs/proplist.c:150
|
||||
msgid "Only string or data is supported for a proplist dictionary key"
|
||||
msgstr ""
|
||||
"Seuls les types string ou data sont supportés pour une clé de dictionnaire "
|
||||
"Seuls les types string ou data sont supportés pour une clé de dictionnaire "
|
||||
"Proplist"
|
||||
|
||||
#: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236
|
||||
@@ -73,23 +73,23 @@ msgstr ""
|
||||
#: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372
|
||||
#: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540
|
||||
msgid "Used proplist functions on non-WMPropLists objects"
|
||||
msgstr "Une fonction Proplist a été utilisée sur des objets non-WMPropList"
|
||||
msgstr "Une fonction Proplist a été utilisée sur des objets non-WMPropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:630
|
||||
msgid "unterminated PropList string"
|
||||
msgstr "chaîne PropList sans fin"
|
||||
msgstr "chaîne PropList sans fin"
|
||||
|
||||
#: ../../WINGs/proplist.c:670
|
||||
msgid "unterminated PropList data"
|
||||
msgstr "données PropList sans fin"
|
||||
msgstr "données PropList sans fin"
|
||||
|
||||
#: ../../WINGs/proplist.c:678
|
||||
msgid "unterminated PropList data (missing hexdigit)"
|
||||
msgstr "données PropList sans fin (il manque un chiffre hexadécimal)"
|
||||
msgstr "données PropList sans fin (il manque un chiffre hexadécimal)"
|
||||
|
||||
#: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695
|
||||
msgid "non hexdigit character in PropList data"
|
||||
msgstr "caractère non-hexadécimal dans les données PropList"
|
||||
msgstr "caractère non-hexadécimal dans les données PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:729
|
||||
msgid "unterminated PropList array"
|
||||
@@ -101,7 +101,7 @@ msgstr "tableau PropList manquant ou sans fin"
|
||||
|
||||
#: ../../WINGs/proplist.c:747
|
||||
msgid "could not get PropList array element"
|
||||
msgstr "impossible de lire l'élément du tableau PropList"
|
||||
msgstr "impossible de lire l'élément du tableau PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:776
|
||||
msgid "unterminated PropList dictionary"
|
||||
@@ -121,39 +121,39 @@ msgstr "erreur lors de l'analyse de la clef de dictionnaire PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:811
|
||||
msgid "missing = in PropList dictionary entry"
|
||||
msgstr "signe '=' manquant dans l'entrée du dictionnaire PropList"
|
||||
msgstr "signe '=' manquant dans l'entrée du dictionnaire PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:819
|
||||
msgid "error parsing PropList dictionary entry value"
|
||||
msgstr ""
|
||||
"erreur lors de l'analyse de la valeur de l'entrée du dictionnaire PropList"
|
||||
"erreur lors de l'analyse de la valeur de l'entrée du dictionnaire PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:827
|
||||
msgid "missing ; in PropList dictionary entry"
|
||||
msgstr "signe ';' manquant dans l'entrée du dictionnaire PropList"
|
||||
msgstr "signe ';' manquant dans l'entrée du dictionnaire PropList"
|
||||
|
||||
#: ../../WINGs/proplist.c:888
|
||||
msgid ""
|
||||
"was expecting a string, data, array or dictionary. If it's a string, try "
|
||||
"enclosing it with \"."
|
||||
msgstr ""
|
||||
"une chaine, des données, un tableau ou un dictionnaire étaient attendus. "
|
||||
"S'il s'agit d'une chaîne, essayez de la délimiter grâce à '\"'."
|
||||
"une chaine, des données, un tableau ou un dictionnaire étaient attendus. "
|
||||
"S'il s'agit d'une chaîne, essayez de la délimiter grâce à '\"'."
|
||||
|
||||
#: ../../WINGs/proplist.c:892
|
||||
msgid "Comments are not allowed inside WindowMaker owned domain files."
|
||||
msgstr ""
|
||||
"Les commentaires ne sont pas autorisés dans les fichiers appartenant au "
|
||||
"Les commentaires ne sont pas autorisés dans les fichiers appartenant au "
|
||||
"domaine de Window Maker."
|
||||
|
||||
#: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1628
|
||||
msgid "extra data after end of property list"
|
||||
msgstr "données excédentaires après la fin de la liste de propriétés"
|
||||
msgstr "données excédentaires après la fin de la liste de propriétés"
|
||||
|
||||
#: ../../WINGs/proplist.c:1606
|
||||
#, c-format
|
||||
msgid "could not get size for file '%s'"
|
||||
msgstr "impossible de déterminer la taille du fichier '%s'"
|
||||
msgstr "impossible de déterminer la taille du fichier '%s'"
|
||||
|
||||
#: ../../WINGs/proplist.c:1618
|
||||
#, c-format
|
||||
@@ -163,22 +163,22 @@ msgstr "erreur pendant la lecture du fichier '%s'"
|
||||
#: ../../WINGs/proplist.c:1669
|
||||
#, c-format
|
||||
msgid "mkstemp (%s) failed"
|
||||
msgstr "mkstemp (%s) a échoué"
|
||||
msgstr "mkstemp (%s) a échoué"
|
||||
|
||||
#: ../../WINGs/proplist.c:1680
|
||||
#, c-format
|
||||
msgid "mktemp (%s) failed"
|
||||
msgstr "mktemp (%s) a échoué"
|
||||
msgstr "mktemp (%s) a échoué"
|
||||
|
||||
#: ../../WINGs/proplist.c:1691
|
||||
#, c-format
|
||||
msgid "open (%s) failed"
|
||||
msgstr "open (%s) a échoué"
|
||||
msgstr "open (%s) a échoué"
|
||||
|
||||
#: ../../WINGs/proplist.c:1698
|
||||
#, c-format
|
||||
msgid "writing to file: %s failed"
|
||||
msgstr "erreur pendant l'écriture dans le fichier '%s'"
|
||||
msgstr "erreur pendant l'écriture dans le fichier '%s'"
|
||||
|
||||
#: ../../WINGs/proplist.c:1706
|
||||
#, c-format
|
||||
@@ -226,7 +226,7 @@ msgstr "Couleurs"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829
|
||||
msgid "Brightness"
|
||||
msgstr "Luminosité"
|
||||
msgstr "Luminosité"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688
|
||||
#: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755
|
||||
@@ -236,7 +236,7 @@ msgstr "Luminosit
|
||||
#: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903
|
||||
#: ../../WINGs/wcolorpanel.c:3745
|
||||
msgid "Color Panel: Could not allocate memory"
|
||||
msgstr "Panneau de Sélection des Couleur: impossible d'allouer la mémoire"
|
||||
msgstr "Panneau de Sélection des Couleur: impossible d'allouer la mémoire"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686
|
||||
msgid "Red"
|
||||
@@ -276,7 +276,7 @@ msgstr "Palette"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1032
|
||||
msgid "New from File..."
|
||||
msgstr "Nouveau d'après le fichier..."
|
||||
msgstr "Nouveau d'après le fichier..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081
|
||||
#: ../../WINGs/wcolorpanel.c:1098
|
||||
@@ -294,7 +294,7 @@ msgstr "Copier"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1036
|
||||
msgid "New from Clipboard"
|
||||
msgstr "Nouveau d'après le presse-papier"
|
||||
msgstr "Nouveau d'après le presse-papier"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1057
|
||||
msgid "X11-Colors"
|
||||
@@ -321,7 +321,7 @@ msgstr "Nouveau..."
|
||||
msgid ""
|
||||
"Color Panel: Could not create directory %s needed to store configurations"
|
||||
msgstr ""
|
||||
"Panneau de sélection des couleurs : impossible de créer le répertoire %s "
|
||||
"Panneau de sélection des couleurs : impossible de créer le répertoire %s "
|
||||
"requis pour enregistrer les configurations."
|
||||
|
||||
#. Delete the file, it doesn't belong here
|
||||
@@ -333,8 +333,8 @@ msgstr "Erreur de fichier"
|
||||
#: ../../WINGs/wcolorpanel.c:1243
|
||||
msgid "Could not create ColorPanel configuration directory"
|
||||
msgstr ""
|
||||
"Impossible de créer le répertoire pour la configuration du panneau de "
|
||||
"sélection des couleurs."
|
||||
"Impossible de créer le répertoire pour la configuration du panneau de "
|
||||
"sélection des couleurs."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213
|
||||
#: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245
|
||||
@@ -347,12 +347,12 @@ msgstr "OK"
|
||||
#: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286
|
||||
#: ../../WINGs/wcolorpanel.c:1304
|
||||
msgid "Color Panel: Could not find file"
|
||||
msgstr "Panneau de sélection des couleurs : Impossible de trouver le fichier."
|
||||
msgstr "Panneau de sélection des couleurs : Impossible de trouver le fichier."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556
|
||||
#: ../../WINGs/wcolorpanel.c:1620
|
||||
msgid "Color Panel: X failed request"
|
||||
msgstr "Panneau de sélection des couleurs : échec d'une requête X"
|
||||
msgstr "Panneau de sélection des couleurs : échec d'une requête X"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2865
|
||||
msgid "Saturation"
|
||||
@@ -377,7 +377,7 @@ msgstr "Impossible de supprimer le fichier %s."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3217
|
||||
msgid "Couldn't remove file from Configuration Directory !"
|
||||
msgstr "Impossible de supprimer le fichier du répertoire de configuration !"
|
||||
msgstr "Impossible de supprimer le fichier du répertoire de configuration !"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3244
|
||||
msgid "Rename"
|
||||
@@ -403,9 +403,9 @@ msgid ""
|
||||
"\n"
|
||||
"Overwrite ?"
|
||||
msgstr ""
|
||||
"La palette existe déjà !\n"
|
||||
"La palette existe déjà !\n"
|
||||
"\n"
|
||||
"Écraser ?"
|
||||
"Écraser ?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "No"
|
||||
@@ -422,7 +422,7 @@ msgstr "Impossible de renommer la palette %s en %s.\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3320
|
||||
msgid "This will permanently remove the palette "
|
||||
msgstr "Ceci détruira définitivement la palette "
|
||||
msgstr "Ceci détruira définitivement la palette "
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3323
|
||||
msgid ""
|
||||
@@ -432,12 +432,12 @@ msgid ""
|
||||
msgstr ""
|
||||
".\n"
|
||||
"\n"
|
||||
"Êtes-vous sûr de vouloir supprimer cette palette ?"
|
||||
"Êtes-vous sûr de vouloir supprimer cette palette ?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3348
|
||||
#, c-format
|
||||
msgid "Couldn't remove palette %s\n"
|
||||
msgstr "Impossible de détruire la palette %s.\n"
|
||||
msgstr "Impossible de détruire la palette %s.\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3647
|
||||
#, c-format
|
||||
@@ -447,16 +447,16 @@ msgstr "Impossible d'ouvrir %s."
|
||||
#: ../../WINGs/wcolorpanel.c:3654
|
||||
#, c-format
|
||||
msgid "Could not create %s"
|
||||
msgstr "Impossible de créer %s."
|
||||
msgstr "Impossible de créer %s."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3665
|
||||
#, c-format
|
||||
msgid "Write error on file %s"
|
||||
msgstr "Erreur d'écriture dans le fichier %s."
|
||||
msgstr "Erreur d'écriture dans le fichier %s."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3710
|
||||
msgid "Color Panel: Color unspecified"
|
||||
msgstr "Panneau de sélection des couleurs: couleur non spécifiée."
|
||||
msgstr "Panneau de sélection des couleurs: couleur non spécifiée."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:235
|
||||
msgid "Name:"
|
||||
@@ -473,12 +473,12 @@ msgstr "Enregistrer"
|
||||
#: ../../WINGs/wfilepanel.c:565
|
||||
#, c-format
|
||||
msgid "WINGs: could not open directory %s\n"
|
||||
msgstr "WINGs : Impossible d'ouvrir le répertoire %s.\n"
|
||||
msgstr "WINGs : Impossible d'ouvrir le répertoire %s.\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:583
|
||||
#, c-format
|
||||
msgid "WINGs: could not stat %s\n"
|
||||
msgstr "WINGs : impossible de lire l'état du fichier %s.\n"
|
||||
msgstr "WINGs : impossible de lire l'état du fichier %s.\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973
|
||||
#: ../../WINGs/wfontpanel.c:750
|
||||
@@ -487,21 +487,21 @@ msgstr "Erreur"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:661
|
||||
msgid "Create Directory"
|
||||
msgstr "Créer un répertoire"
|
||||
msgstr "Créer un répertoire"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:662
|
||||
msgid "Enter directory name"
|
||||
msgstr "Saisissez le nom du répertoire"
|
||||
msgstr "Saisissez le nom du répertoire"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737
|
||||
#: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796
|
||||
msgid "Permission denied."
|
||||
msgstr "Permission refusée."
|
||||
msgstr "Permission refusée."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:701
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "'%s' existe déjà."
|
||||
msgstr "'%s' existe déjà."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:704
|
||||
msgid "Path does not exist."
|
||||
@@ -514,12 +514,12 @@ msgstr "'%s' n'existe pas."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800
|
||||
msgid "Insufficient memory available."
|
||||
msgstr "Mémoire disponible insuffisante."
|
||||
msgstr "Mémoire disponible insuffisante."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804
|
||||
#, c-format
|
||||
msgid "'%s' is on a read-only filesystem."
|
||||
msgstr "'%s' est sur un système de fichiers en lecture seule."
|
||||
msgstr "'%s' est sur un système de fichiers en lecture seule."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780
|
||||
#: ../../WINGs/wfilepanel.c:807
|
||||
@@ -530,7 +530,7 @@ msgstr "Impossible de supprimer '%s'."
|
||||
#: ../../WINGs/wfilepanel.c:755
|
||||
#, c-format
|
||||
msgid "Delete directory %s ?"
|
||||
msgstr "Supprimer le répertoire %s ?"
|
||||
msgstr "Supprimer le répertoire %s ?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:759
|
||||
#, c-format
|
||||
@@ -540,22 +540,22 @@ msgstr "Supprimer le fichier %s ?"
|
||||
#: ../../WINGs/wfilepanel.c:771
|
||||
#, c-format
|
||||
msgid "Directory '%s' does not exist."
|
||||
msgstr "Le répertoire '%s' n'existe pas."
|
||||
msgstr "Le répertoire '%s' n'existe pas."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:774
|
||||
#, c-format
|
||||
msgid "Directory '%s' is not empty."
|
||||
msgstr "Le répertoire '%s' n'est pas vide."
|
||||
msgstr "Le répertoire '%s' n'est pas vide."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:777
|
||||
#, c-format
|
||||
msgid "Directory '%s' is busy."
|
||||
msgstr "Le répertoire '%s' est occupé."
|
||||
msgstr "Le répertoire '%s' est occupé."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:790
|
||||
#, c-format
|
||||
msgid "'%s' is a directory."
|
||||
msgstr "'%s' est un répertoire."
|
||||
msgstr "'%s' est un répertoire."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:832
|
||||
#, c-format
|
||||
@@ -565,7 +565,7 @@ msgstr "Une erreur s'est produite pendant le parcours de '%s'."
|
||||
#: ../../WINGs/wfilepanel.c:836
|
||||
#, c-format
|
||||
msgid "'%s' is not a directory."
|
||||
msgstr "'%s' n'est pas un répertoire."
|
||||
msgstr "'%s' n'est pas un répertoire."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:973
|
||||
msgid "File does not exist."
|
||||
@@ -575,63 +575,63 @@ msgstr "Le fichier n'existe pas."
|
||||
#, c-format
|
||||
msgid "Invalid size specification '%s' in %s. Using default %d\n"
|
||||
msgstr ""
|
||||
"Taille invalide dans %2$s : '%1$s'. Utilisation de la valeur par défaut %3"
|
||||
"Taille invalide dans %2$s : '%1$s'. Utilisation de la valeur par défaut %3"
|
||||
"$d\n"
|
||||
|
||||
#: ../../WINGs/wfont.c:187
|
||||
#, c-format
|
||||
msgid "the following character sets are missing in %s:"
|
||||
msgstr "Les jeux de caractères suivants manquent dans %s :"
|
||||
msgstr "Les jeux de caractères suivants manquent dans %s :"
|
||||
|
||||
#: ../../WINGs/wfont.c:193
|
||||
#, c-format
|
||||
msgid ""
|
||||
"the string \"%s\" will be used in place of any characters from those sets."
|
||||
msgstr ""
|
||||
"La chaîne « %s » sera utilisée à la place de tous les caractères de ces jeux."
|
||||
"La chaîne « %s » sera utilisée à la place de tous les caractères de ces jeux."
|
||||
|
||||
#. is arial a good fallback for multibyte?
|
||||
#: ../../WINGs/wfont.c:599 ../../WINGs/wfont.c:614
|
||||
#, c-format
|
||||
msgid "could not load font %s. Trying arial."
|
||||
msgstr ""
|
||||
"Impossible de charger la police de caractères %s, essai de la police "
|
||||
"« arial »."
|
||||
"Impossible de charger la police de caractères %s, essai de la police "
|
||||
"« arial »."
|
||||
|
||||
#: ../../WINGs/wfont.c:606
|
||||
msgid "could not load antialiased font set. Reverting to standard font sets."
|
||||
msgstr ""
|
||||
"Impossible de charger les polices lissées, utilisation des polices normales."
|
||||
"Impossible de charger les polices lissées, utilisation des polices normales."
|
||||
|
||||
#: ../../WINGs/wfont.c:609
|
||||
#, c-format
|
||||
msgid "could not load FontSet %s. Trying fixed."
|
||||
msgstr ""
|
||||
"Impossible de charger la famille de polices %s, essai de la famille "
|
||||
"« fixed »."
|
||||
"« fixed »."
|
||||
|
||||
#: ../../WINGs/wfont.c:621
|
||||
msgid "could not load antialiased fonts. Reverting to normal fonts."
|
||||
msgstr ""
|
||||
"Impossible de charger les polices lissées, utilisation des polices normales."
|
||||
"Impossible de charger les polices lissées, utilisation des polices normales."
|
||||
|
||||
#: ../../WINGs/wfont.c:624 ../../WINGs/wfont.c:635
|
||||
#, c-format
|
||||
msgid "could not load font %s. Trying fixed."
|
||||
msgstr ""
|
||||
"Impossible de charger la police de caractères %s, essai de la police "
|
||||
"« fixed »."
|
||||
"Impossible de charger la police de caractères %s, essai de la police "
|
||||
"« fixed »."
|
||||
|
||||
#: ../../WINGs/wfont.c:629
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgstr ""
|
||||
"Impossible de charger la famille de polices %s, essai de la famille "
|
||||
"« fixed »."
|
||||
"« fixed »."
|
||||
|
||||
#: ../../WINGs/wfont.c:639
|
||||
msgid "could not load fixed font!"
|
||||
msgstr "Impossible de charger la police de caractères « fixed » !"
|
||||
msgstr "Impossible de charger la police de caractères « fixed » !"
|
||||
|
||||
#: ../../WINGs/wfont.c:704 ../../WINGs/wfont.c:765 ../../WINGs/wfont.c:836
|
||||
#, c-format
|
||||
@@ -639,19 +639,19 @@ msgid ""
|
||||
"Conversion to widechar failed (possible invalid multibyte sequence): '%s':"
|
||||
"(pos %d)\n"
|
||||
msgstr ""
|
||||
"Échec de la conversion en widechar (probablement une séquence d'octets "
|
||||
"erronée) : « %s » (pos %d)\n"
|
||||
"Échec de la conversion en widechar (probablement une séquence d'octets "
|
||||
"erronée) : « %s » (pos %d)\n"
|
||||
|
||||
#: ../../WINGs/wfont.c:887
|
||||
#, c-format
|
||||
msgid "font description %s is too large."
|
||||
msgstr "La description de la police de caractères %s est trop volumineuse."
|
||||
msgstr "La description de la police de caractères %s est trop volumineuse."
|
||||
|
||||
#. // remove warning later. or maybe not
|
||||
#: ../../WINGs/wfont.c:935
|
||||
#, c-format
|
||||
msgid "Invalid font specification: '%s'\n"
|
||||
msgstr "Déclaration de police invalide : « %s »\n"
|
||||
msgstr "Déclaration de police invalide : « %s »\n"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:235
|
||||
msgid "Test!!!"
|
||||
@@ -663,7 +663,7 @@ msgstr "Famille"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:252
|
||||
msgid "Typeface"
|
||||
msgstr "Caractère"
|
||||
msgstr "Caractère"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:263
|
||||
msgid "Size"
|
||||
@@ -679,13 +679,13 @@ msgstr "Revenir"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:751
|
||||
msgid "Could not retrieve font list"
|
||||
msgstr "Impossible de lire la liste des polices de caractères."
|
||||
msgstr "Impossible de lire la liste des polices de caractères."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:765
|
||||
#, c-format
|
||||
msgid "font name %s is longer than 256, which is invalid."
|
||||
msgstr ""
|
||||
"Le nom de police %s a plus de 256 caractères et est par conséquent invalide."
|
||||
"Le nom de police %s a plus de 256 caractères et est par conséquent invalide."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:913
|
||||
msgid "Roman"
|
||||
@@ -697,7 +697,7 @@ msgstr "Italique"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:918
|
||||
msgid "Oblique"
|
||||
msgstr "Penché"
|
||||
msgstr "Penché"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:920
|
||||
msgid "Rev Italic"
|
||||
@@ -705,7 +705,7 @@ msgstr "Italique inverse"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:922
|
||||
msgid "Rev Oblique"
|
||||
msgstr "Penché inverse"
|
||||
msgstr "Penché inverse"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:928
|
||||
msgid "Normal"
|
||||
@@ -722,8 +722,8 @@ msgid ""
|
||||
"have the required capabilities (missing RENDER extension). Disabling text "
|
||||
"antialiasing."
|
||||
msgstr ""
|
||||
"Le lissage du texte est activé dans la configuration mais le serveur X ne "
|
||||
"dispose pas de l'extension adéquate (extension RENDER). Desactivation du "
|
||||
"Le lissage du texte est activé dans la configuration mais le serveur X ne "
|
||||
"dispose pas de l'extension adéquate (extension RENDER). Desactivation du "
|
||||
"lissage."
|
||||
|
||||
#: ../../WINGs/widgets.c:787
|
||||
@@ -731,8 +731,8 @@ msgid ""
|
||||
"could not load any fonts. Make sure your font installation and locale "
|
||||
"settings are correct."
|
||||
msgstr ""
|
||||
"Aucune police n'a pu être chargée. Veuillez vérifier que vos polices sont "
|
||||
"correctement installées et que votre langue est bien configurée."
|
||||
"Aucune police n'a pu être chargée. Veuillez vérifier que vos polices sont "
|
||||
"correctement installées et que votre langue est bien configurée."
|
||||
|
||||
#: ../../WINGs/wruler.c:192
|
||||
msgid "0 inches"
|
||||
|
||||
597
WINGs/po/sk.po
597
WINGs/po/sk.po
@@ -10,27 +10,28 @@
|
||||
# 0.70.0 Jan "judas" Tomka <judas@linux.sk> Oct 15 2001
|
||||
# 0.70.1 Jan "judas" Tomka <judas@linux.sk> Nov 02 2001
|
||||
# 0.80.0 Jan "judas" Tomka <judas@linux.sk> Dec 20 2001
|
||||
# 0.80.2 Jan "judas" Tomka <judas@linux.sk> Jan 31 2004
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WINGs 0.80.0\n"
|
||||
"POT-Creation-Date: 2001-12-20 03:50+0100\n"
|
||||
"POT-Creation-Date: 2004-01-31 18:36+0100\n"
|
||||
"PO-Revision-Date: 2001-12-20 04:00+0100\n"
|
||||
"Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n"
|
||||
"Language-Team: Slovak <sk@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-2\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../../WINGs/connection.c:461 ../../WINGs/connection.c:526
|
||||
#: ../../WINGs/connection.c:569
|
||||
#: ../../WINGs/connection.c:467 ../../WINGs/connection.c:532
|
||||
#: ../../WINGs/connection.c:575
|
||||
msgid "Bad address-service-protocol combination"
|
||||
msgstr "Nesprávna kombinácia adresa-slu¾ba-protokol"
|
||||
msgstr "Nesprávna kombinácia adresa-služba-protokol"
|
||||
|
||||
#: ../../WINGs/error.c:54
|
||||
#, c-format
|
||||
msgid "Unknown error %d"
|
||||
msgstr "Nezmána chyba %d"
|
||||
msgstr "Nezmána chyba %d"
|
||||
|
||||
#: ../../WINGs/error.c:59
|
||||
#, c-format
|
||||
@@ -43,7 +44,7 @@ msgstr " varovanie: "
|
||||
|
||||
#: ../../WINGs/error.c:137
|
||||
msgid " fatal error: "
|
||||
msgstr " fatálna chyba: "
|
||||
msgstr " fatálna chyba: "
|
||||
|
||||
#: ../../WINGs/error.c:163 ../../WINGs/error.c:192
|
||||
msgid " error: "
|
||||
@@ -52,371 +53,376 @@ msgstr " chyba: "
|
||||
#: ../../WINGs/findfile.c:48
|
||||
#, c-format
|
||||
msgid "could not get password entry for UID %i"
|
||||
msgstr "nemo¾no zisti» informácie o UID %i"
|
||||
msgstr "nemožno zistiť informácie o UID %i"
|
||||
|
||||
#: ../../WINGs/findfile.c:66
|
||||
#, c-format
|
||||
msgid "could not get password entry for user %s"
|
||||
msgstr "nemo¾no zisti» informácie o u¾ívateµovi %s"
|
||||
msgstr "nemožno zistiť informácie o užívateľovi %s"
|
||||
|
||||
#: ../../WINGs/host.c:114
|
||||
msgid "Cannot get current host name"
|
||||
msgstr "Nemo¾no zisti» aktuálne meno poèítaèa"
|
||||
msgstr "Nemožno zistiť aktuálne meno počítača"
|
||||
|
||||
#: ../../WINGs/proplist.c:91
|
||||
#, c-format
|
||||
msgid "syntax error in %s %s, line %i: %s"
|
||||
msgstr "chyba syntaxe v %s %s, riadok %i: %s"
|
||||
|
||||
#: ../../WINGs/proplist.c:150
|
||||
msgid "Only string or data is supported for a proplist dictionary key"
|
||||
msgstr "Pre kµúè slovníka proplist je podporovaný len re»azec alebo dáta"
|
||||
msgstr "Pre kľúč slovníka proplist je podporovaný len reťazec alebo dáta"
|
||||
|
||||
#: ../../WINGs/proplist.c:184 ../../WINGs/proplist.c:236
|
||||
#: ../../WINGs/proplist.c:394 ../../WINGs/proplist.c:474
|
||||
#: ../../WINGs/proplist.c:1071 ../../WINGs/proplist.c:1123
|
||||
#: ../../WINGs/proplist.c:1251 ../../WINGs/proplist.c:1330
|
||||
#: ../../WINGs/proplist.c:1451 ../../WINGs/proplist.c:1498
|
||||
#: ../../WINGs/proplist.c:1075 ../../WINGs/proplist.c:1127
|
||||
#: ../../WINGs/proplist.c:1293 ../../WINGs/proplist.c:1372
|
||||
#: ../../WINGs/proplist.c:1493 ../../WINGs/proplist.c:1540
|
||||
msgid "Used proplist functions on non-WMPropLists objects"
|
||||
msgstr "Pou¾itá proplist funkcia na iných ako WMPropLists objektoch"
|
||||
msgstr "Použitá proplist funkcia na iných ako WMPropLists objektoch"
|
||||
|
||||
#: ../../WINGs/proplist.c:630
|
||||
msgid "unterminated PropList string"
|
||||
msgstr "neukonèený PropList re»azec"
|
||||
msgstr "neukončený PropList reťazec"
|
||||
|
||||
#: ../../WINGs/proplist.c:670
|
||||
msgid "unterminated PropList data"
|
||||
msgstr "neukonèené PropList dáta"
|
||||
msgstr "neukončené PropList dáta"
|
||||
|
||||
#: ../../WINGs/proplist.c:678
|
||||
msgid "unterminated PropList data (missing hexdigit)"
|
||||
msgstr "neukonèené PropList dáta (chýbajúca hex èíslica)"
|
||||
msgstr "neukončené PropList dáta (chýbajúca hex číslica)"
|
||||
|
||||
#: ../../WINGs/proplist.c:690
|
||||
#: ../../WINGs/proplist.c:690 ../../WINGs/proplist.c:695
|
||||
msgid "non hexdigit character in PropList data"
|
||||
msgstr "v PropList dátach je znak, ktorý nie je hex èíslicou"
|
||||
msgstr "v PropList dátach je znak, ktorý nie je hex číslicou"
|
||||
|
||||
#: ../../WINGs/proplist.c:725
|
||||
#: ../../WINGs/proplist.c:729
|
||||
msgid "unterminated PropList array"
|
||||
msgstr "neukonèené PropList pole"
|
||||
msgstr "neukončené PropList pole"
|
||||
|
||||
#: ../../WINGs/proplist.c:733
|
||||
#: ../../WINGs/proplist.c:737
|
||||
msgid "missing or unterminated PropList array"
|
||||
msgstr "chýbajúce alebo neukonèené PropList pole"
|
||||
msgstr "chýbajúce alebo neukončené PropList pole"
|
||||
|
||||
#: ../../WINGs/proplist.c:743
|
||||
#: ../../WINGs/proplist.c:747
|
||||
msgid "could not get PropList array element"
|
||||
msgstr "nemo¾no zisti» prvok PropList poµa"
|
||||
msgstr "nemožno zistiť prvok PropList poľa"
|
||||
|
||||
#: ../../WINGs/proplist.c:772
|
||||
#: ../../WINGs/proplist.c:776
|
||||
msgid "unterminated PropList dictionary"
|
||||
msgstr "neukonèený PropList slovník"
|
||||
msgstr "neukončený PropList slovník"
|
||||
|
||||
#: ../../WINGs/proplist.c:789
|
||||
#: ../../WINGs/proplist.c:793
|
||||
msgid "missing PropList dictionary key"
|
||||
msgstr "chýbajúci kµúè PropList slovníka"
|
||||
msgstr "chýbajúci kľúč PropList slovníka"
|
||||
|
||||
#: ../../WINGs/proplist.c:791
|
||||
#: ../../WINGs/proplist.c:795
|
||||
msgid "missing PropList dictionary entry key or unterminated dictionary"
|
||||
msgstr "chýbajúci kµúè polo¾ky PropList slovníka alebo neukonèený slovník"
|
||||
msgstr "chýbajúci kľúč položky PropList slovníka alebo neukončený slovník"
|
||||
|
||||
#: ../../WINGs/proplist.c:799
|
||||
#: ../../WINGs/proplist.c:803
|
||||
msgid "error parsing PropList dictionary key"
|
||||
msgstr "chyba pri parsovaní kµúèa PropList slovníka"
|
||||
msgstr "chyba pri parsovaní kľúča PropList slovníka"
|
||||
|
||||
#: ../../WINGs/proplist.c:807
|
||||
#: ../../WINGs/proplist.c:811
|
||||
msgid "missing = in PropList dictionary entry"
|
||||
msgstr "chýbajúce = v polo¾ke PropList slovníka"
|
||||
msgstr "chýbajúce = v položke PropList slovníka"
|
||||
|
||||
#: ../../WINGs/proplist.c:815
|
||||
#: ../../WINGs/proplist.c:819
|
||||
msgid "error parsing PropList dictionary entry value"
|
||||
msgstr "chyba pri parsovaní hodnoty polo¾ky PropList slovníka"
|
||||
msgstr "chyba pri parsovaní hodnoty položky PropList slovníka"
|
||||
|
||||
#: ../../WINGs/proplist.c:823
|
||||
#: ../../WINGs/proplist.c:827
|
||||
msgid "missing ; in PropList dictionary entry"
|
||||
msgstr "chýbajúca ; v polo¾ke PropList slovníka"
|
||||
msgstr "chýbajúca ; v položke PropList slovníka"
|
||||
|
||||
#: ../../WINGs/proplist.c:884
|
||||
#: ../../WINGs/proplist.c:888
|
||||
msgid ""
|
||||
"was expecting a string, data, array or dictionary. If it's a string, try "
|
||||
"enclosing it with \"."
|
||||
msgstr ""
|
||||
"oèakávaný bol re»azec, dáta, pole alebo slovník. Ak je to re»azec, skúste ho "
|
||||
"uzavrie» medzi \"."
|
||||
"očakávaný bol reťazec, dáta, pole alebo slovník. Ak je to reťazec, skúste ho "
|
||||
"uzavrieť medzi \"."
|
||||
|
||||
#: ../../WINGs/proplist.c:888
|
||||
#: ../../WINGs/proplist.c:892
|
||||
msgid "Comments are not allowed inside WindowMaker owned domain files."
|
||||
msgstr "Komentáre v doménových súboroch Window Makera nie sú povolené."
|
||||
msgstr "Komentáre v doménových súboroch Window Makera nie sú povolené."
|
||||
|
||||
#: ../../WINGs/proplist.c:1521 ../../WINGs/proplist.c:1586
|
||||
#: ../../WINGs/proplist.c:1563 ../../WINGs/proplist.c:1630
|
||||
msgid "extra data after end of property list"
|
||||
msgstr "prebytoèné dáta na konci property listu"
|
||||
msgstr "prebytočné dáta na konci property listu"
|
||||
|
||||
#: ../../WINGs/proplist.c:1564
|
||||
#: ../../WINGs/proplist.c:1606
|
||||
#, c-format
|
||||
msgid "could not get size for file '%s'"
|
||||
msgstr "nemo¾no zisti» veµkos» súboru '%s'"
|
||||
msgstr "nemožno zistiť veľkosť súboru '%s'"
|
||||
|
||||
#: ../../WINGs/proplist.c:1576
|
||||
#: ../../WINGs/proplist.c:1619
|
||||
#, c-format
|
||||
msgid "error reading from file '%s'"
|
||||
msgstr "chyba pri èítaní zo súboru '%s'"
|
||||
msgstr "chyba pri čítaní zo súboru '%s'"
|
||||
|
||||
#: ../../WINGs/proplist.c:1627
|
||||
#: ../../WINGs/proplist.c:1671
|
||||
#, c-format
|
||||
msgid "mkstemp (%s) failed"
|
||||
msgstr "chyba mkstemp (%s)"
|
||||
|
||||
#: ../../WINGs/proplist.c:1638
|
||||
#: ../../WINGs/proplist.c:1682
|
||||
#, c-format
|
||||
msgid "mktemp (%s) failed"
|
||||
msgstr "chyba mktemp(%s)"
|
||||
|
||||
#: ../../WINGs/proplist.c:1649
|
||||
#: ../../WINGs/proplist.c:1693
|
||||
#, c-format
|
||||
msgid "open (%s) failed"
|
||||
msgstr "chyba pri otváraní (%s)"
|
||||
msgstr "chyba pri otváraní (%s)"
|
||||
|
||||
#: ../../WINGs/proplist.c:1656
|
||||
#: ../../WINGs/proplist.c:1700
|
||||
#, c-format
|
||||
msgid "writing to file: %s failed"
|
||||
msgstr "chyba pri zápise do súboru: %s"
|
||||
msgstr "chyba pri zápise do súboru: %s"
|
||||
|
||||
#: ../../WINGs/proplist.c:1664
|
||||
#: ../../WINGs/proplist.c:1708
|
||||
#, c-format
|
||||
msgid "fclose (%s) failed"
|
||||
msgstr "chyba fclose (%s)"
|
||||
|
||||
#: ../../WINGs/proplist.c:1673
|
||||
#: ../../WINGs/proplist.c:1717
|
||||
#, c-format
|
||||
msgid "rename ('%s' to '%s') failed"
|
||||
msgstr "chyba rename ('%s' na '%s')"
|
||||
|
||||
#. something happened with the file. just overwrite it
|
||||
#: ../../WINGs/userdefaults.c:192 ../../WINGs/userdefaults.c:208
|
||||
#: ../../WINGs/userdefaults.c:188 ../../WINGs/userdefaults.c:204
|
||||
#, c-format
|
||||
msgid "cannot read domain from file '%s' when syncing"
|
||||
msgstr "nemo¾no èíta» doménu zo súboru '%s' pri synchronizácii"
|
||||
msgstr "nemožno čítať doménu zo súboru '%s' pri synchronizácii"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198 ../../WINGs/wcolor.c:211 ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#: ../../WINGs/wcolor.c:224 ../../WINGs/wcolor.c:236 ../../WINGs/wcolor.c:275
|
||||
#: ../../WINGs/wcolor.c:316
|
||||
#, c-format
|
||||
msgid "could not allocate %s color"
|
||||
msgstr "nemo¾no alokova» %s farbu"
|
||||
msgstr "nemožno alokovať %s farbu"
|
||||
|
||||
#: ../../WINGs/wcolor.c:198
|
||||
#: ../../WINGs/wcolor.c:224
|
||||
msgid "white"
|
||||
msgstr "bielu"
|
||||
|
||||
#: ../../WINGs/wcolor.c:211
|
||||
#: ../../WINGs/wcolor.c:236
|
||||
msgid "black"
|
||||
msgstr "èiernu"
|
||||
msgstr "čiernu"
|
||||
|
||||
#: ../../WINGs/wcolor.c:250
|
||||
#: ../../WINGs/wcolor.c:275
|
||||
msgid "gray"
|
||||
msgstr "¹edú"
|
||||
msgstr "šedú"
|
||||
|
||||
#: ../../WINGs/wcolor.c:291
|
||||
#: ../../WINGs/wcolor.c:316
|
||||
msgid "dark gray"
|
||||
msgstr "tmavo¹edú"
|
||||
msgstr "tmavošedú"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:415
|
||||
#: ../../WINGs/wcolorpanel.c:420
|
||||
msgid "Colors"
|
||||
msgstr "Farby"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:605 ../../WINGs/wcolorpanel.c:2824
|
||||
#: ../../WINGs/wcolorpanel.c:610 ../../WINGs/wcolorpanel.c:2829
|
||||
msgid "Brightness"
|
||||
msgstr "Svetlos»"
|
||||
msgstr "Svetlosť"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:607 ../../WINGs/wcolorpanel.c:683
|
||||
#: ../../WINGs/wcolorpanel.c:716 ../../WINGs/wcolorpanel.c:750
|
||||
#: ../../WINGs/wcolorpanel.c:810 ../../WINGs/wcolorpanel.c:844
|
||||
#: ../../WINGs/wcolorpanel.c:878 ../../WINGs/wcolorpanel.c:913
|
||||
#: ../../WINGs/wcolorpanel.c:2164 ../../WINGs/wcolorpanel.c:2826
|
||||
#: ../../WINGs/wcolorpanel.c:2862 ../../WINGs/wcolorpanel.c:2898
|
||||
#: ../../WINGs/wcolorpanel.c:3746
|
||||
#: ../../WINGs/wcolorpanel.c:612 ../../WINGs/wcolorpanel.c:688
|
||||
#: ../../WINGs/wcolorpanel.c:721 ../../WINGs/wcolorpanel.c:755
|
||||
#: ../../WINGs/wcolorpanel.c:815 ../../WINGs/wcolorpanel.c:849
|
||||
#: ../../WINGs/wcolorpanel.c:883 ../../WINGs/wcolorpanel.c:918
|
||||
#: ../../WINGs/wcolorpanel.c:2169 ../../WINGs/wcolorpanel.c:2831
|
||||
#: ../../WINGs/wcolorpanel.c:2867 ../../WINGs/wcolorpanel.c:2903
|
||||
#: ../../WINGs/wcolorpanel.c:3745
|
||||
msgid "Color Panel: Could not allocate memory"
|
||||
msgstr "Panel farieb: Nemo¾no alokova» pamä»"
|
||||
msgstr "Panel farieb: Nemožno alokovať pamäť"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:680 ../../WINGs/wcolorpanel.c:681
|
||||
#: ../../WINGs/wcolorpanel.c:685 ../../WINGs/wcolorpanel.c:686
|
||||
msgid "Red"
|
||||
msgstr "Èervená"
|
||||
msgstr "Červená"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:713 ../../WINGs/wcolorpanel.c:714
|
||||
#: ../../WINGs/wcolorpanel.c:718 ../../WINGs/wcolorpanel.c:719
|
||||
msgid "Green"
|
||||
msgstr "Zelená"
|
||||
msgstr "Zelená"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:747 ../../WINGs/wcolorpanel.c:748
|
||||
#: ../../WINGs/wcolorpanel.c:752 ../../WINGs/wcolorpanel.c:753
|
||||
msgid "Blue"
|
||||
msgstr "Modrá"
|
||||
msgstr "Modrá"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:807 ../../WINGs/wcolorpanel.c:808
|
||||
#: ../../WINGs/wcolorpanel.c:812 ../../WINGs/wcolorpanel.c:813
|
||||
msgid "Cyan"
|
||||
msgstr "Azúrová"
|
||||
msgstr "Azúrová"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:841 ../../WINGs/wcolorpanel.c:842
|
||||
#: ../../WINGs/wcolorpanel.c:846 ../../WINGs/wcolorpanel.c:847
|
||||
msgid "Magenta"
|
||||
msgstr "Purpurová"
|
||||
msgstr "Purpurová"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:875 ../../WINGs/wcolorpanel.c:876
|
||||
#: ../../WINGs/wcolorpanel.c:880 ../../WINGs/wcolorpanel.c:881
|
||||
msgid "Yellow"
|
||||
msgstr "®ltá"
|
||||
msgstr "Žltá"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:910 ../../WINGs/wcolorpanel.c:911
|
||||
#: ../../WINGs/wcolorpanel.c:915 ../../WINGs/wcolorpanel.c:916
|
||||
msgid "Black"
|
||||
msgstr "Èierna"
|
||||
msgstr "Čierna"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:991
|
||||
#: ../../WINGs/wcolorpanel.c:996
|
||||
msgid "Spectrum"
|
||||
msgstr "Spektrum"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1021
|
||||
#: ../../WINGs/wcolorpanel.c:1026
|
||||
msgid "Palette"
|
||||
msgstr "Paleta"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1027
|
||||
#: ../../WINGs/wcolorpanel.c:1032
|
||||
msgid "New from File..."
|
||||
msgstr "Nová zo súboru..."
|
||||
msgstr "Nová zo súboru..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1028 ../../WINGs/wcolorpanel.c:1076
|
||||
#: ../../WINGs/wcolorpanel.c:1093
|
||||
#: ../../WINGs/wcolorpanel.c:1033 ../../WINGs/wcolorpanel.c:1081
|
||||
#: ../../WINGs/wcolorpanel.c:1098
|
||||
msgid "Rename..."
|
||||
msgstr "Premenova»..."
|
||||
msgstr "Premenovať..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1029 ../../WINGs/wcolorpanel.c:1077
|
||||
#: ../../WINGs/wcolorpanel.c:1094 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:1034 ../../WINGs/wcolorpanel.c:1082
|
||||
#: ../../WINGs/wcolorpanel.c:1099 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "Remove"
|
||||
msgstr "Odstráni»"
|
||||
msgstr "Odstrániť"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1030
|
||||
#: ../../WINGs/wcolorpanel.c:1035
|
||||
msgid "Copy"
|
||||
msgstr "Kopírova»"
|
||||
msgstr "Kopírovať"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1031
|
||||
#: ../../WINGs/wcolorpanel.c:1036
|
||||
msgid "New from Clipboard"
|
||||
msgstr "Nová z nástenky"
|
||||
msgstr "Nová z nástenky"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1052
|
||||
#: ../../WINGs/wcolorpanel.c:1057
|
||||
msgid "X11-Colors"
|
||||
msgstr "Farby X11"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1069
|
||||
#: ../../WINGs/wcolorpanel.c:1074
|
||||
msgid "Color"
|
||||
msgstr "Farba"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1075
|
||||
#: ../../WINGs/wcolorpanel.c:1080
|
||||
msgid "Add..."
|
||||
msgstr "Prida»..."
|
||||
msgstr "Pridať..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1085
|
||||
#: ../../WINGs/wcolorpanel.c:1090
|
||||
msgid "List"
|
||||
msgstr "Zoznam"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1092
|
||||
#: ../../WINGs/wcolorpanel.c:1097
|
||||
msgid "New..."
|
||||
msgstr "Nový..."
|
||||
msgstr "Nový..."
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1231
|
||||
#: ../../WINGs/wcolorpanel.c:1236
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Color Panel: Could not create directory %s needed to store configurations"
|
||||
msgstr ""
|
||||
"Panel farieb: Nemo¾no vytvori» adresár %s potrebný na ulo¾enie nastavení"
|
||||
"Panel farieb: Nemožno vytvoriť adresár %s potrebný na uloženie nastavení"
|
||||
|
||||
#. Delete the file, it doesn't belong here
|
||||
#: ../../WINGs/wcolorpanel.c:1237 ../../WINGs/wcolorpanel.c:3207
|
||||
#: ../../WINGs/wcolorpanel.c:3211
|
||||
#: ../../WINGs/wcolorpanel.c:1242 ../../WINGs/wcolorpanel.c:3212
|
||||
#: ../../WINGs/wcolorpanel.c:3216
|
||||
msgid "File Error"
|
||||
msgstr "Chyba súboru"
|
||||
msgstr "Chyba súboru"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1238
|
||||
#: ../../WINGs/wcolorpanel.c:1243
|
||||
msgid "Could not create ColorPanel configuration directory"
|
||||
msgstr "Nemo¾no vytvori» konfiguraèný adresár panelu farieb"
|
||||
msgstr "Nemožno vytvoriť konfiguračný adresár panelu farieb"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1239 ../../WINGs/wcolorpanel.c:3208
|
||||
#: ../../WINGs/wcolorpanel.c:3213 ../../WINGs/wcolorpanel.c:3240
|
||||
#: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:647
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wfilepanel.c:971 ../../WINGs/wfontpanel.c:709
|
||||
#: ../../WINGs/wcolorpanel.c:1244 ../../WINGs/wcolorpanel.c:3213
|
||||
#: ../../WINGs/wcolorpanel.c:3218 ../../WINGs/wcolorpanel.c:3245
|
||||
#: ../../WINGs/wfilepanel.c:250 ../../WINGs/wfilepanel.c:650
|
||||
#: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763
|
||||
#: ../../WINGs/wfilepanel.c:974 ../../WINGs/wfontpanel.c:751
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1245 ../../WINGs/wcolorpanel.c:1281
|
||||
#: ../../WINGs/wcolorpanel.c:1299
|
||||
#: ../../WINGs/wcolorpanel.c:1250 ../../WINGs/wcolorpanel.c:1286
|
||||
#: ../../WINGs/wcolorpanel.c:1304
|
||||
msgid "Color Panel: Could not find file"
|
||||
msgstr "Panel farieb: Nemo¾no nájs» súbor"
|
||||
msgstr "Panel farieb: Nemožno nájsť súbor"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:1486 ../../WINGs/wcolorpanel.c:1551
|
||||
#: ../../WINGs/wcolorpanel.c:1615
|
||||
#: ../../WINGs/wcolorpanel.c:1491 ../../WINGs/wcolorpanel.c:1556
|
||||
#: ../../WINGs/wcolorpanel.c:1620
|
||||
msgid "Color Panel: X failed request"
|
||||
msgstr "Panel farieb: chyba po¾iadavky X"
|
||||
msgstr "Panel farieb: chyba požiadavky X"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2860
|
||||
#: ../../WINGs/wcolorpanel.c:2865
|
||||
msgid "Saturation"
|
||||
msgstr "Saturácia"
|
||||
msgstr "Saturácia"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:2896
|
||||
#: ../../WINGs/wcolorpanel.c:2901
|
||||
msgid "Hue"
|
||||
msgstr "Odtieò"
|
||||
msgstr "Odtieň"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3146
|
||||
#: ../../WINGs/wcolorpanel.c:3151
|
||||
msgid "Open Palette"
|
||||
msgstr "Otvori» paletu"
|
||||
msgstr "Otvoriť paletu"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3208
|
||||
#: ../../WINGs/wcolorpanel.c:3213
|
||||
msgid "Invalid file format !"
|
||||
msgstr "Nesprávny súborový formát!"
|
||||
msgstr "Nesprávny súborový formát!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3210
|
||||
#: ../../WINGs/wcolorpanel.c:3215
|
||||
#, c-format
|
||||
msgid "can't remove file %s"
|
||||
msgstr "namo¾no odstráni» súbor %s"
|
||||
msgstr "namožno odstrániť súbor %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3212
|
||||
#: ../../WINGs/wcolorpanel.c:3217
|
||||
msgid "Couldn't remove file from Configuration Directory !"
|
||||
msgstr "Nemo¾no odstráni» súbor z konfiguraèného adresára!"
|
||||
msgstr "Nemožno odstrániť súbor z konfiguračného adresára!"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
#: ../../WINGs/wcolorpanel.c:3244
|
||||
msgid "Rename"
|
||||
msgstr "Premenova»"
|
||||
msgstr "Premenovať"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3239
|
||||
#: ../../WINGs/wcolorpanel.c:3244
|
||||
msgid "Rename palette to:"
|
||||
msgstr "Premenova» paletu:"
|
||||
msgstr "Premenovať paletu:"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3240 ../../WINGs/wfilepanel.c:259
|
||||
#: ../../WINGs/wfilepanel.c:659 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wcolorpanel.c:3245 ../../WINGs/wfilepanel.c:259
|
||||
#: ../../WINGs/wfilepanel.c:662 ../../WINGs/wfilepanel.c:763
|
||||
msgid "Cancel"
|
||||
msgstr "Zru¹i»"
|
||||
msgstr "Zrušiť"
|
||||
|
||||
#. Careful, this palette exists already
|
||||
#: ../../WINGs/wcolorpanel.c:3256 ../../WINGs/wfilepanel.c:760
|
||||
#: ../../WINGs/wcolorpanel.c:3261 ../../WINGs/wfilepanel.c:763
|
||||
msgid "Warning"
|
||||
msgstr "Varovanie"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257
|
||||
#: ../../WINGs/wcolorpanel.c:3262
|
||||
msgid ""
|
||||
"Palette already exists !\n"
|
||||
"\n"
|
||||
"Overwrite ?"
|
||||
msgstr ""
|
||||
"Paleta u¾ existuje!\n"
|
||||
"Paleta už existuje!\n"
|
||||
"\n"
|
||||
"Prepísa»?"
|
||||
"Prepísať?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "No"
|
||||
msgstr "Nie"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3257 ../../WINGs/wcolorpanel.c:3321
|
||||
#: ../../WINGs/wcolorpanel.c:3262 ../../WINGs/wcolorpanel.c:3326
|
||||
msgid "Yes"
|
||||
msgstr "Áno"
|
||||
msgstr "Áno"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3289
|
||||
#: ../../WINGs/wcolorpanel.c:3294
|
||||
#, c-format
|
||||
msgid "Couldn't rename palette %s to %s\n"
|
||||
msgstr "Nemo¾no premenova» paletu %s na %s\n"
|
||||
msgstr "Nemožno premenovať paletu %s na %s\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3315
|
||||
#: ../../WINGs/wcolorpanel.c:3320
|
||||
msgid "This will permanently remove the palette "
|
||||
msgstr "Paleta bude natrvalo zmazaná"
|
||||
msgstr "Paleta bude natrvalo zmazaná"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3318
|
||||
#: ../../WINGs/wcolorpanel.c:3323
|
||||
msgid ""
|
||||
".\n"
|
||||
"\n"
|
||||
@@ -424,31 +430,31 @@ msgid ""
|
||||
msgstr ""
|
||||
".\n"
|
||||
"\n"
|
||||
"Ste si istý, ¾e chcete odstráni» túto paletu?"
|
||||
"Ste si istý, že chcete odstrániť túto paletu?"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3343
|
||||
#: ../../WINGs/wcolorpanel.c:3348
|
||||
#, c-format
|
||||
msgid "Couldn't remove palette %s\n"
|
||||
msgstr "Nemo¾no odstráni» paletu %s\n"
|
||||
msgstr "Nemožno odstrániť paletu %s\n"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3648
|
||||
#: ../../WINGs/wcolorpanel.c:3647
|
||||
#, c-format
|
||||
msgid "Could not open %s"
|
||||
msgstr "Nemo¾no otvori» %s"
|
||||
msgstr "Nemožno otvoriť %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3655
|
||||
#: ../../WINGs/wcolorpanel.c:3654
|
||||
#, c-format
|
||||
msgid "Could not create %s"
|
||||
msgstr "Nemo¾no vytvori» %s"
|
||||
msgstr "Nemožno vytvoriť %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3666
|
||||
#: ../../WINGs/wcolorpanel.c:3665
|
||||
#, c-format
|
||||
msgid "Write error on file %s"
|
||||
msgstr "Chyba zápisu do súboru %s"
|
||||
msgstr "Chyba zápisu do súboru %s"
|
||||
|
||||
#: ../../WINGs/wcolorpanel.c:3711
|
||||
#: ../../WINGs/wcolorpanel.c:3710
|
||||
msgid "Color Panel: Color unspecified"
|
||||
msgstr "Panel farieb: Ne¹pecifikovaná farba"
|
||||
msgstr "Panel farieb: Nešpecifikovaná farba"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:235
|
||||
msgid "Name:"
|
||||
@@ -456,213 +462,258 @@ msgstr "Meno:"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:332 ../../WINGs/wfilepanel.c:396
|
||||
msgid "Open"
|
||||
msgstr "Otvori»"
|
||||
msgstr "Otvoriť"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:350 ../../WINGs/wfilepanel.c:402
|
||||
msgid "Save"
|
||||
msgstr "Ulo¾i»"
|
||||
msgstr "Uložiť"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:562
|
||||
#: ../../WINGs/wfilepanel.c:565
|
||||
#, c-format
|
||||
msgid "WINGs: could not open directory %s\n"
|
||||
msgstr "WINGs: nemo¾no otvori» adresár %s\n"
|
||||
msgstr "WINGs: nemožno otvoriť adresár %s\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:580
|
||||
#: ../../WINGs/wfilepanel.c:583
|
||||
#, c-format
|
||||
msgid "WINGs: could not stat %s\n"
|
||||
msgstr "WINGs: nemo¾no zisti» informácie o %s\n"
|
||||
msgstr "WINGs: nemožno zistiť informácie o %s\n"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:647 ../../WINGs/wfilepanel.c:970
|
||||
#: ../../WINGs/wfontpanel.c:708
|
||||
#: ../../WINGs/wfilepanel.c:650 ../../WINGs/wfilepanel.c:973
|
||||
#: ../../WINGs/wfontpanel.c:750
|
||||
msgid "Error"
|
||||
msgstr "Chyba"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:658
|
||||
#: ../../WINGs/wfilepanel.c:661
|
||||
msgid "Create Directory"
|
||||
msgstr "Vytvori» adresár"
|
||||
msgstr "Vytvoriť adresár"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:659
|
||||
#: ../../WINGs/wfilepanel.c:662
|
||||
msgid "Enter directory name"
|
||||
msgstr "Meno adresára"
|
||||
msgstr "Meno adresára"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:695 ../../WINGs/wfilepanel.c:734
|
||||
#: ../../WINGs/wfilepanel.c:765 ../../WINGs/wfilepanel.c:793
|
||||
#: ../../WINGs/wfilepanel.c:698 ../../WINGs/wfilepanel.c:737
|
||||
#: ../../WINGs/wfilepanel.c:768 ../../WINGs/wfilepanel.c:796
|
||||
msgid "Permission denied."
|
||||
msgstr "Prístup zamietnutý."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:698
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "'%s' u¾ existuje"
|
||||
msgstr "Prístup zamietnutý."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:701
|
||||
#, c-format
|
||||
msgid "'%s' already exists."
|
||||
msgstr "'%s' už existuje"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:704
|
||||
msgid "Path does not exist."
|
||||
msgstr "Cesta neexistuje."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:731 ../../WINGs/wfilepanel.c:790
|
||||
#: ../../WINGs/wfilepanel.c:734 ../../WINGs/wfilepanel.c:793
|
||||
#, c-format
|
||||
msgid "'%s' does not exist."
|
||||
msgstr "'%s' neexistuje."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:738 ../../WINGs/wfilepanel.c:797
|
||||
#: ../../WINGs/wfilepanel.c:741 ../../WINGs/wfilepanel.c:800
|
||||
msgid "Insufficient memory available."
|
||||
msgstr "Nedostatok pamäti."
|
||||
msgstr "Nedostatok pamäti."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:742 ../../WINGs/wfilepanel.c:801
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:804
|
||||
#, c-format
|
||||
msgid "'%s' is on a read-only filesystem."
|
||||
msgstr "'%s' je na súborovom systéme len pre èítanie."
|
||||
msgstr "'%s' je na súborovom systéme len pre čítanie."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:745 ../../WINGs/wfilepanel.c:777
|
||||
#: ../../WINGs/wfilepanel.c:804
|
||||
#: ../../WINGs/wfilepanel.c:748 ../../WINGs/wfilepanel.c:780
|
||||
#: ../../WINGs/wfilepanel.c:807
|
||||
#, c-format
|
||||
msgid "Can not delete '%s'."
|
||||
msgstr "Nemo¾no odstráni» '%s'."
|
||||
msgstr "Nemožno odstrániť '%s'."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:752
|
||||
#: ../../WINGs/wfilepanel.c:755
|
||||
#, c-format
|
||||
msgid "Delete directory %s ?"
|
||||
msgstr "Odstráni» adresár %s?"
|
||||
msgstr "Odstrániť adresár %s?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:756
|
||||
#: ../../WINGs/wfilepanel.c:759
|
||||
#, c-format
|
||||
msgid "Delete file %s ?"
|
||||
msgstr "Odstráni» súbor %s?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:768
|
||||
#, c-format
|
||||
msgid "Directory '%s' does not exist."
|
||||
msgstr "Adresár '%s' neexistuje."
|
||||
msgstr "Odstrániť súbor %s?"
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:771
|
||||
#, c-format
|
||||
msgid "Directory '%s' is not empty."
|
||||
msgstr "Adresár '%s' nie je prázdny."
|
||||
msgid "Directory '%s' does not exist."
|
||||
msgstr "Adresár '%s' neexistuje."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:774
|
||||
#, c-format
|
||||
msgid "Directory '%s' is busy."
|
||||
msgstr "Adresár '%s' je pou¾ívaný."
|
||||
msgid "Directory '%s' is not empty."
|
||||
msgstr "Adresár '%s' nie je prázdny."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:787
|
||||
#: ../../WINGs/wfilepanel.c:777
|
||||
#, c-format
|
||||
msgid "Directory '%s' is busy."
|
||||
msgstr "Adresár '%s' je používaný."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:790
|
||||
#, c-format
|
||||
msgid "'%s' is a directory."
|
||||
msgstr "'%s' je adresár."
|
||||
msgstr "'%s' je adresár."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:829
|
||||
#: ../../WINGs/wfilepanel.c:832
|
||||
#, c-format
|
||||
msgid "An error occured browsing '%s'."
|
||||
msgstr "Pri prehliadaní '%s' nastala chyba."
|
||||
msgstr "Pri prehliadaní '%s' nastala chyba."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:833
|
||||
#: ../../WINGs/wfilepanel.c:836
|
||||
#, c-format
|
||||
msgid "'%s' is not a directory."
|
||||
msgstr "'%s' nie je adresár."
|
||||
msgstr "'%s' nie je adresár."
|
||||
|
||||
#: ../../WINGs/wfilepanel.c:970
|
||||
#: ../../WINGs/wfilepanel.c:973
|
||||
msgid "File does not exist."
|
||||
msgstr "Súbor neexistuje."
|
||||
msgstr "Súbor neexistuje."
|
||||
|
||||
#: ../../WINGs/wfont.c:129
|
||||
#: ../../WINGs/wfont.c:324 ../../WINGs/wfont.c:344
|
||||
#, c-format
|
||||
msgid "could not load font %s."
|
||||
msgstr "nemožno načítať font %s."
|
||||
|
||||
#: ../../WINGs/wfont.c:375 ../../WINGs/wfont.c:420 ../../WINGs/wfont.c:475
|
||||
#: ../../WINGs/wfont.c:1337 ../../WINGs/wfont.c:1398 ../../WINGs/wfont.c:1469
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Conversion to widechar failed (possible invalid multibyte sequence): '%s':"
|
||||
"(pos %d)\n"
|
||||
msgstr ""
|
||||
"Konverzia do widechar zlyhala (možno nesprávna multibyte sekvencia): '%s':"
|
||||
"(pos %d)\n"
|
||||
|
||||
#. // remove warning later. or maybe not
|
||||
#: ../../WINGs/wfont.c:591 ../../WINGs/wfont.c:1568
|
||||
#, c-format
|
||||
msgid "Invalid font specification: '%s'\n"
|
||||
msgstr "Chybná špecifikácia fontu: '%s'\n"
|
||||
|
||||
#: ../../WINGs/wfont.c:770 ../../WINGs/wfont.c:780
|
||||
#, c-format
|
||||
msgid "Invalid size specification '%s' in %s. Using default %d\n"
|
||||
msgstr "Chybná špecifikácia veľkosti '%s' v %s. Použije sa implicitná %d\n"
|
||||
|
||||
#: ../../WINGs/wfont.c:824
|
||||
#, c-format
|
||||
msgid "the following character sets are missing in %s:"
|
||||
msgstr "nasledujúce sady znakov chýbajú v %s:"
|
||||
msgstr "nasledujúce sady znakov chýbajú v %s:"
|
||||
|
||||
#: ../../WINGs/wfont.c:136
|
||||
#: ../../WINGs/wfont.c:830
|
||||
#, c-format
|
||||
msgid ""
|
||||
"the string \"%s\" will be used in place of any characters from those sets."
|
||||
msgstr "re»azec \"%s\" bude pou¾itý namiesto znakov z týchto sád."
|
||||
msgstr "reťazec \"%s\" bude použitý namiesto znakov z týchto sád."
|
||||
|
||||
#: ../../WINGs/wfont.c:282 ../../WINGs/wfont.c:318
|
||||
#. is arial a good fallback for multibyte?
|
||||
#: ../../WINGs/wfont.c:1232 ../../WINGs/wfont.c:1247
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgstr "nemo¾no naèíta» font %s. Skú¹a sa naèíta» fixed."
|
||||
msgid "could not load font %s. Trying arial."
|
||||
msgstr "nemožno načítať font %s. Skúša sa načítať arial."
|
||||
|
||||
#: ../../WINGs/wfont.c:288 ../../WINGs/wfont.c:324
|
||||
#: ../../WINGs/wfont.c:1239
|
||||
msgid "could not load antialiased font set. Reverting to standard font sets."
|
||||
msgstr "nemožno načítať antialiasovanú sadu fontov. Späť k štandardnej sade fontov."
|
||||
|
||||
#: ../../WINGs/wfont.c:1242
|
||||
#, c-format
|
||||
msgid "could not load FontSet %s. Trying fixed."
|
||||
msgstr "nemožno načítať sadu fontov %s. Skúša sa načítať fixed."
|
||||
|
||||
#: ../../WINGs/wfont.c:1254
|
||||
msgid "could not load antialiased fonts. Reverting to normal fonts."
|
||||
msgstr "nemožno zaviesť antialiasovaný font. Návrat k normálnemu fontu."
|
||||
|
||||
#: ../../WINGs/wfont.c:1257 ../../WINGs/wfont.c:1268
|
||||
#, c-format
|
||||
msgid "could not load font %s. Trying fixed."
|
||||
msgstr "nemo¾no naèíta» font %s. Skú¹a sa naèíta» fixed."
|
||||
msgstr "nemožno načítať font %s. Skúša sa načítať fixed."
|
||||
|
||||
#: ../../WINGs/wfont.c:292 ../../WINGs/wfont.c:328
|
||||
#: ../../WINGs/wfont.c:1262
|
||||
#, c-format
|
||||
msgid "could not load font set %s. Trying fixed."
|
||||
msgstr "nemožno načítať font %s. Skúša sa načítať fixed."
|
||||
|
||||
#: ../../WINGs/wfont.c:1272
|
||||
msgid "could not load fixed font!"
|
||||
msgstr "nemo¾no naèíta» font fixed!"
|
||||
msgstr "nemožno načítať font fixed!"
|
||||
|
||||
#: ../../WINGs/wfont.c:423
|
||||
#: ../../WINGs/wfont.c:1520
|
||||
#, c-format
|
||||
msgid "font description %s is too large."
|
||||
msgstr "popis fontu %s je príli¹ veµký."
|
||||
msgstr "popis fontu %s je príliš veľký."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:205
|
||||
#: ../../WINGs/wfontpanel.c:235
|
||||
msgid "Test!!!"
|
||||
msgstr "Skú¹ka!!!"
|
||||
msgstr "Skúška!!!"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:211
|
||||
#: ../../WINGs/wfontpanel.c:241
|
||||
msgid "Family"
|
||||
msgstr "Rodina"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:222
|
||||
msgid "Typeface"
|
||||
msgstr "Vzhµad"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:233
|
||||
msgid "Size"
|
||||
msgstr "Veµkos»"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:252
|
||||
msgid "Typeface"
|
||||
msgstr "Vzhľad"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:263
|
||||
msgid "Size"
|
||||
msgstr "Veľkosť"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:282
|
||||
msgid "Set"
|
||||
msgstr "Sada"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:257
|
||||
#: ../../WINGs/wfontpanel.c:288
|
||||
msgid "Revert"
|
||||
msgstr "Obráti»"
|
||||
msgstr "Obrátiť"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:709
|
||||
#: ../../WINGs/wfontpanel.c:751
|
||||
msgid "Could not retrieve font list"
|
||||
msgstr "Nemo¾no obdr¾a» zoznam fontov"
|
||||
msgstr "Nemožno obdržať zoznam fontov"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:721
|
||||
#: ../../WINGs/wfontpanel.c:765
|
||||
#, c-format
|
||||
msgid "font name %s is longer than 256, which is invalid."
|
||||
msgstr "meno fontu %s je dlh¹ie ako 256, èo je nesprávne."
|
||||
msgstr "meno fontu %s je dlhšie ako 256, čo je nesprávne."
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:868
|
||||
#: ../../WINGs/wfontpanel.c:913
|
||||
msgid "Roman"
|
||||
msgstr "roman"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:871
|
||||
#: ../../WINGs/wfontpanel.c:916
|
||||
msgid "Italic"
|
||||
msgstr "kurzíva"
|
||||
msgstr "kurzíva"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:873
|
||||
#: ../../WINGs/wfontpanel.c:918
|
||||
msgid "Oblique"
|
||||
msgstr "¹ikmé"
|
||||
msgstr "šikmé"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:875
|
||||
#: ../../WINGs/wfontpanel.c:920
|
||||
msgid "Rev Italic"
|
||||
msgstr "obr. kurzíva"
|
||||
msgstr "obr. kurzíva"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:877
|
||||
#: ../../WINGs/wfontpanel.c:922
|
||||
msgid "Rev Oblique"
|
||||
msgstr "obr. ¹ikmé"
|
||||
msgstr "obr. šikmé"
|
||||
|
||||
#: ../../WINGs/wfontpanel.c:883
|
||||
#: ../../WINGs/wfontpanel.c:928
|
||||
msgid "Normal"
|
||||
msgstr "normálne"
|
||||
msgstr "normálne"
|
||||
|
||||
#: ../../WINGs/widgets.c:415
|
||||
#: ../../WINGs/widgets.c:419
|
||||
#, c-format
|
||||
msgid "WINGs: could not load widget images file: %s"
|
||||
msgstr "WINGs: nemo¾no naèíta» súbor s obrázkami pre widgety: %s"
|
||||
msgstr "WINGs: nemožno načítať súbor s obrázkami pre widgety: %s"
|
||||
|
||||
#: ../../WINGs/widgets.c:761
|
||||
#: ../../WINGs/widgets.c:772
|
||||
msgid ""
|
||||
"could not load any fonts. Make sure your font installation and locale "
|
||||
"settings are correct."
|
||||
msgstr ""
|
||||
"nemo¾no naèíta» ¾iadny font. Ubezpeète sa, ¾e in¹talácia fontov a miestne "
|
||||
"nastavenia sú v poriadku."
|
||||
"nemožno načítať žiadny font. Ubezpečte sa, že inštalácia fontov a miestne "
|
||||
"nastavenia sú v poriadku."
|
||||
|
||||
#: ../../WINGs/wruler.c:189
|
||||
#: ../../WINGs/wruler.c:192
|
||||
msgid "0 inches"
|
||||
msgstr "0 palcov"
|
||||
|
||||
311
WINGs/proplist.c
311
WINGs/proplist.c
@@ -1,5 +1,4 @@
|
||||
|
||||
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
@@ -12,8 +11,6 @@
|
||||
#include "WUtil.h"
|
||||
#include "wconfig.h"
|
||||
|
||||
|
||||
|
||||
typedef enum {
|
||||
WPLString = 0x57504c01,
|
||||
WPLData = 0x57504c02,
|
||||
@@ -21,7 +18,6 @@ typedef enum {
|
||||
WPLDictionary = 0x57504c04
|
||||
} WPLType;
|
||||
|
||||
|
||||
typedef struct W_PropList {
|
||||
WPLType type;
|
||||
|
||||
@@ -35,7 +31,6 @@ typedef struct W_PropList {
|
||||
int retainCount;
|
||||
} W_PropList;
|
||||
|
||||
|
||||
typedef struct PLData {
|
||||
char *ptr;
|
||||
int pos;
|
||||
@@ -43,13 +38,11 @@ typedef struct PLData {
|
||||
int lineNumber;
|
||||
} PLData;
|
||||
|
||||
|
||||
typedef struct StringBuffer {
|
||||
char *str;
|
||||
int size;
|
||||
} StringBuffer;
|
||||
|
||||
|
||||
static unsigned hashPropList(WMPropList * plist);
|
||||
static WMPropList *getPLString(PLData * pldata);
|
||||
static WMPropList *getPLQString(PLData * pldata);
|
||||
@@ -58,8 +51,6 @@ static WMPropList* getPLArray(PLData *pldata);
|
||||
static WMPropList *getPLDictionary(PLData * pldata);
|
||||
static WMPropList *getPropList(PLData * pldata);
|
||||
|
||||
|
||||
|
||||
typedef unsigned (*hashFunc) (const void *);
|
||||
typedef Bool(*isEqualFunc) (const void *, const void *);
|
||||
typedef void *(*retainFunc) (const void *);
|
||||
@@ -72,16 +63,11 @@ static const WMHashTableCallbacks WMPropListHashCallbacks = {
|
||||
(releaseFunc) NULL
|
||||
};
|
||||
|
||||
|
||||
|
||||
static Bool caseSensitive = True;
|
||||
|
||||
|
||||
|
||||
#define BUFFERSIZE 8192
|
||||
#define BUFFERSIZE_INCREMENT 1024
|
||||
|
||||
|
||||
#if 0
|
||||
# define DPUT(s) puts(s)
|
||||
#else
|
||||
@@ -102,7 +88,6 @@ static Bool caseSensitive = True;
|
||||
(buf).str = wrealloc((buf).str, (buf).size);\
|
||||
}
|
||||
|
||||
|
||||
#define inrange(ch, min, max) ((ch)>=(min) && (ch)<=(max))
|
||||
#define noquote(ch) (inrange(ch, 'a', 'z') || inrange(ch, 'A', 'Z') || inrange(ch, '0', '9') || ((ch)=='_') || ((ch)=='.') || ((ch)=='$'))
|
||||
#define charesc(ch) (inrange(ch, 0x07, 0x0c) || ((ch)=='"') || ((ch)=='\\'))
|
||||
@@ -111,12 +96,9 @@ static Bool caseSensitive = True;
|
||||
#define char2num(ch) (inrange(ch,'0','9') ? ((ch)-'0') : (inrange(ch,'a','f') ? ((ch)-0x57) : ((ch)-0x37)))
|
||||
#define num2char(num) ((num) < 0xa ? ((num)+'0') : ((num)+0x57))
|
||||
|
||||
|
||||
|
||||
#define MaxHashLength 64
|
||||
|
||||
static unsigned
|
||||
hashPropList(WMPropList *plist)
|
||||
static unsigned hashPropList(WMPropList * plist)
|
||||
{
|
||||
unsigned ret = 0;
|
||||
unsigned ctr = 0;
|
||||
@@ -155,8 +137,7 @@ hashPropList(WMPropList *plist)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static WMPropList*
|
||||
retainPropListByCount(WMPropList *plist, int count)
|
||||
static WMPropList *retainPropListByCount(WMPropList * plist, int count)
|
||||
{
|
||||
WMPropList *key, *value;
|
||||
WMHashEnumerator e;
|
||||
@@ -189,9 +170,7 @@ retainPropListByCount(WMPropList *plist, int count)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
releasePropListByCount(WMPropList *plist, int count)
|
||||
static void releasePropListByCount(WMPropList * plist, int count)
|
||||
{
|
||||
WMPropList *key, *value;
|
||||
WMHashEnumerator e;
|
||||
@@ -239,9 +218,7 @@ releasePropListByCount(WMPropList *plist, int count)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
dataDescription(WMPropList *plist)
|
||||
static char *dataDescription(WMPropList * plist)
|
||||
{
|
||||
const unsigned char *data;
|
||||
char *retVal;
|
||||
@@ -267,9 +244,7 @@ dataDescription(WMPropList *plist)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
stringDescription(WMPropList *plist)
|
||||
static char *stringDescription(WMPropList * plist)
|
||||
{
|
||||
const char *str;
|
||||
char *retVal, *sPtr, *dPtr;
|
||||
@@ -314,13 +289,26 @@ stringDescription(WMPropList *plist)
|
||||
if (charesc(ch)) {
|
||||
*(dPtr++) = '\\';
|
||||
switch (ch) {
|
||||
case '\a': *dPtr = 'a'; break;
|
||||
case '\b': *dPtr = 'b'; break;
|
||||
case '\t': *dPtr = 't'; break;
|
||||
case '\n': *dPtr = 'n'; break;
|
||||
case '\v': *dPtr = 'v'; break;
|
||||
case '\f': *dPtr = 'f'; break;
|
||||
default: *dPtr = ch; /* " or \ */
|
||||
case '\a':
|
||||
*dPtr = 'a';
|
||||
break;
|
||||
case '\b':
|
||||
*dPtr = 'b';
|
||||
break;
|
||||
case '\t':
|
||||
*dPtr = 't';
|
||||
break;
|
||||
case '\n':
|
||||
*dPtr = 'n';
|
||||
break;
|
||||
case '\v':
|
||||
*dPtr = 'v';
|
||||
break;
|
||||
case '\f':
|
||||
*dPtr = 'f';
|
||||
break;
|
||||
default:
|
||||
*dPtr = ch; /* " or \ */
|
||||
}
|
||||
} else if (numesc(ch)) {
|
||||
*(dPtr++) = '\\';
|
||||
@@ -342,9 +330,7 @@ stringDescription(WMPropList *plist)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
description(WMPropList *plist)
|
||||
static char *description(WMPropList * plist)
|
||||
{
|
||||
WMPropList *key, *val;
|
||||
char *retstr = NULL;
|
||||
@@ -399,9 +385,7 @@ description(WMPropList *plist)
|
||||
return retstr;
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
indentedDescription(WMPropList *plist, int level)
|
||||
static char *indentedDescription(WMPropList * plist, int level)
|
||||
{
|
||||
WMPropList *key, *val;
|
||||
char *retstr = NULL;
|
||||
@@ -430,8 +414,7 @@ indentedDescription(WMPropList *plist, int level)
|
||||
case WPLArray:
|
||||
retstr = wstrdup("(\n");
|
||||
for (i = 0; i < WMGetArrayItemCount(plist->d.array); i++) {
|
||||
str = indentedDescription(WMGetFromArray(plist->d.array, i),
|
||||
level+1);
|
||||
str = indentedDescription(WMGetFromArray(plist->d.array, i), level + 1);
|
||||
if (i == 0) {
|
||||
tmp = (char *)wmalloc(2 * (level + 1) + strlen(retstr) + strlen(str) + 1);
|
||||
sprintf(tmp, "%s%*s%s", retstr, 2 * (level + 1), "", str);
|
||||
@@ -458,8 +441,7 @@ indentedDescription(WMPropList *plist, int level)
|
||||
sval = indentedDescription(val, level + 1);
|
||||
tmp = (char *)wmalloc(2 * (level + 1) + strlen(retstr) + strlen(skey)
|
||||
+ strlen(sval) + 6);
|
||||
sprintf(tmp, "%s%*s%s = %s;\n", retstr, 2*(level+1), "",
|
||||
skey, sval);
|
||||
sprintf(tmp, "%s%*s%s = %s;\n", retstr, 2 * (level + 1), "", skey, sval);
|
||||
wfree(skey);
|
||||
wfree(sval);
|
||||
wfree(retstr);
|
||||
@@ -479,9 +461,7 @@ indentedDescription(WMPropList *plist, int level)
|
||||
return retstr;
|
||||
}
|
||||
|
||||
|
||||
static INLINE int
|
||||
getChar(PLData *pldata)
|
||||
static INLINE int getChar(PLData * pldata)
|
||||
{
|
||||
int c;
|
||||
|
||||
@@ -498,9 +478,7 @@ getChar(PLData *pldata)
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
static INLINE int
|
||||
getNonSpaceChar(PLData *pldata)
|
||||
static INLINE int getNonSpaceChar(PLData * pldata)
|
||||
{
|
||||
int c;
|
||||
|
||||
@@ -520,15 +498,12 @@ getNonSpaceChar(PLData *pldata)
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
unescapestr(char *src)
|
||||
static char *unescapestr(char *src)
|
||||
{
|
||||
char *dest = wmalloc(strlen(src) + 1);
|
||||
char *sPtr, *dPtr;
|
||||
char ch;
|
||||
|
||||
|
||||
for (sPtr = src, dPtr = dest; *sPtr; sPtr++, dPtr++) {
|
||||
if (*sPtr != '\\') {
|
||||
*dPtr = *sPtr;
|
||||
@@ -541,14 +516,29 @@ unescapestr(char *src)
|
||||
*dPtr |= *(++sPtr) & 07;
|
||||
} else {
|
||||
switch (ch) {
|
||||
case 'a' : *dPtr = '\a'; break;
|
||||
case 'b' : *dPtr = '\b'; break;
|
||||
case 't' : *dPtr = '\t'; break;
|
||||
case 'r' : *dPtr = '\r'; break;
|
||||
case 'n' : *dPtr = '\n'; break;
|
||||
case 'v' : *dPtr = '\v'; break;
|
||||
case 'f' : *dPtr = '\f'; break;
|
||||
default : *dPtr = *sPtr;
|
||||
case 'a':
|
||||
*dPtr = '\a';
|
||||
break;
|
||||
case 'b':
|
||||
*dPtr = '\b';
|
||||
break;
|
||||
case 't':
|
||||
*dPtr = '\t';
|
||||
break;
|
||||
case 'r':
|
||||
*dPtr = '\r';
|
||||
break;
|
||||
case 'n':
|
||||
*dPtr = '\n';
|
||||
break;
|
||||
case 'v':
|
||||
*dPtr = '\v';
|
||||
break;
|
||||
case 'f':
|
||||
*dPtr = '\f';
|
||||
break;
|
||||
default:
|
||||
*dPtr = *sPtr;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -559,9 +549,7 @@ unescapestr(char *src)
|
||||
return dest;
|
||||
}
|
||||
|
||||
|
||||
static WMPropList*
|
||||
getPLString(PLData *pldata)
|
||||
static WMPropList *getPLString(PLData * pldata)
|
||||
{
|
||||
WMPropList *plist;
|
||||
StringBuffer sBuf;
|
||||
@@ -599,9 +587,7 @@ getPLString(PLData *pldata)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
static WMPropList*
|
||||
getPLQString(PLData *pldata)
|
||||
static WMPropList *getPLQString(PLData * pldata)
|
||||
{
|
||||
WMPropList *plist;
|
||||
int ptr = 0, escaping = 0, ok = 1;
|
||||
@@ -651,9 +637,7 @@ getPLQString(PLData *pldata)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
static WMPropList*
|
||||
getPLData(PLData *pldata)
|
||||
static WMPropList *getPLData(PLData * pldata)
|
||||
{
|
||||
int ok = 1;
|
||||
int len = 0;
|
||||
@@ -712,9 +696,7 @@ getPLData(PLData *pldata)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
static WMPropList*
|
||||
getPLArray(PLData *pldata)
|
||||
static WMPropList *getPLArray(PLData * pldata)
|
||||
{
|
||||
Bool first = True;
|
||||
int ok = 1;
|
||||
@@ -760,9 +742,7 @@ getPLArray(PLData *pldata)
|
||||
return array;
|
||||
}
|
||||
|
||||
|
||||
static WMPropList*
|
||||
getPLDictionary(PLData *pldata)
|
||||
static WMPropList *getPLDictionary(PLData * pldata)
|
||||
{
|
||||
int ok = 1;
|
||||
int c;
|
||||
@@ -844,9 +824,7 @@ getPLDictionary(PLData *pldata)
|
||||
return dict;
|
||||
}
|
||||
|
||||
|
||||
static WMPropList*
|
||||
getPropList(PLData *pldata)
|
||||
static WMPropList *getPropList(PLData * pldata)
|
||||
{
|
||||
WMPropList *plist;
|
||||
int c;
|
||||
@@ -865,7 +843,7 @@ getPropList(PLData *pldata)
|
||||
break;
|
||||
|
||||
case '(':
|
||||
DPUT("Getting PropList srrsy");
|
||||
DPUT("Getting PropList array");
|
||||
plist = getPLArray(pldata);
|
||||
break;
|
||||
|
||||
@@ -886,11 +864,9 @@ getPropList(PLData *pldata)
|
||||
plist = getPLString(pldata);
|
||||
} else {
|
||||
COMPLAIN(pldata, _("was expecting a string, data, array or "
|
||||
"dictionary. If it's a string, try enclosing "
|
||||
"it with \"."));
|
||||
"dictionary. If it's a string, try enclosing " "it with \"."));
|
||||
if (c == '#' || c == '/') {
|
||||
wwarning(_("Comments are not allowed inside WindowMaker owned"
|
||||
" domain files."));
|
||||
wwarning(_("Comments are not allowed inside WindowMaker owned" " domain files."));
|
||||
}
|
||||
plist = NULL;
|
||||
}
|
||||
@@ -900,16 +876,12 @@ getPropList(PLData *pldata)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMPLSetCaseSensitive(Bool caseSensitiveness)
|
||||
void WMPLSetCaseSensitive(Bool caseSensitiveness)
|
||||
{
|
||||
caseSensitive = caseSensitiveness;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMCreatePLString(char *str)
|
||||
WMPropList *WMCreatePLString(char *str)
|
||||
{
|
||||
WMPropList *plist;
|
||||
|
||||
@@ -924,9 +896,7 @@ WMCreatePLString(char *str)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMCreatePLData(WMData *data)
|
||||
WMPropList *WMCreatePLData(WMData * data)
|
||||
{
|
||||
WMPropList *plist;
|
||||
|
||||
@@ -941,9 +911,7 @@ WMCreatePLData(WMData *data)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMCreatePLDataWithBytes(unsigned char *bytes, unsigned int length)
|
||||
WMPropList *WMCreatePLDataWithBytes(unsigned char *bytes, unsigned int length)
|
||||
{
|
||||
WMPropList *plist;
|
||||
|
||||
@@ -958,10 +926,7 @@ WMCreatePLDataWithBytes(unsigned char *bytes, unsigned int length)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMCreatePLDataWithBytesNoCopy(unsigned char *bytes, unsigned int length,
|
||||
WMFreeDataProc *destructor)
|
||||
WMPropList *WMCreatePLDataWithBytesNoCopy(unsigned char *bytes, unsigned int length, WMFreeDataProc * destructor)
|
||||
{
|
||||
WMPropList *plist;
|
||||
|
||||
@@ -976,9 +941,7 @@ WMCreatePLDataWithBytesNoCopy(unsigned char *bytes, unsigned int length,
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMCreatePLArray(WMPropList *elem, ...)
|
||||
WMPropList *WMCreatePLArray(WMPropList * elem, ...)
|
||||
{
|
||||
WMPropList *plist, *nelem;
|
||||
va_list ap;
|
||||
@@ -1005,9 +968,7 @@ WMCreatePLArray(WMPropList *elem, ...)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMCreatePLDictionary(WMPropList *key, WMPropList *value, ...)
|
||||
WMPropList *WMCreatePLDictionary(WMPropList * key, WMPropList * value, ...)
|
||||
{
|
||||
WMPropList *plist, *nkey, *nvalue, *k, *v;
|
||||
va_list ap;
|
||||
@@ -1040,14 +1001,11 @@ WMCreatePLDictionary(WMPropList *key, WMPropList *value, ...)
|
||||
WMReleasePropList(k);
|
||||
WMReleasePropList(v);
|
||||
}
|
||||
WMHashInsert(plist->d.dict, WMRetainPropList(nkey),
|
||||
WMRetainPropList(nvalue));
|
||||
WMHashInsert(plist->d.dict, WMRetainPropList(nkey), WMRetainPropList(nvalue));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMRetainPropList(WMPropList *plist)
|
||||
WMPropList *WMRetainPropList(WMPropList * plist)
|
||||
{
|
||||
WMPropList *key, *value;
|
||||
WMHashEnumerator e;
|
||||
@@ -1080,9 +1038,7 @@ WMRetainPropList(WMPropList *plist)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMReleasePropList(WMPropList *plist)
|
||||
void WMReleasePropList(WMPropList * plist)
|
||||
{
|
||||
WMPropList *key, *value;
|
||||
WMHashEnumerator e;
|
||||
@@ -1130,9 +1086,7 @@ WMReleasePropList(WMPropList *plist)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMInsertInPLArray(WMPropList *plist, int index, WMPropList *item)
|
||||
void WMInsertInPLArray(WMPropList * plist, int index, WMPropList * item)
|
||||
{
|
||||
wassertr(plist->type == WPLArray);
|
||||
|
||||
@@ -1140,9 +1094,7 @@ WMInsertInPLArray(WMPropList *plist, int index, WMPropList *item)
|
||||
WMInsertInArray(plist->d.array, index, item);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMAddToPLArray(WMPropList *plist, WMPropList *item)
|
||||
void WMAddToPLArray(WMPropList * plist, WMPropList * item)
|
||||
{
|
||||
wassertr(plist->type == WPLArray);
|
||||
|
||||
@@ -1150,9 +1102,7 @@ WMAddToPLArray(WMPropList *plist, WMPropList *item)
|
||||
WMAddToArray(plist->d.array, item);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMDeleteFromPLArray(WMPropList *plist, int index)
|
||||
void WMDeleteFromPLArray(WMPropList * plist, int index)
|
||||
{
|
||||
WMPropList *item;
|
||||
|
||||
@@ -1165,9 +1115,7 @@ WMDeleteFromPLArray(WMPropList *plist, int index)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMRemoveFromPLArray(WMPropList *plist, WMPropList *item)
|
||||
void WMRemoveFromPLArray(WMPropList * plist, WMPropList * item)
|
||||
{
|
||||
WMPropList *iPtr;
|
||||
int i;
|
||||
@@ -1184,9 +1132,7 @@ WMRemoveFromPLArray(WMPropList *plist, WMPropList *item)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMPutInPLDictionary(WMPropList *plist, WMPropList *key, WMPropList *value)
|
||||
void WMPutInPLDictionary(WMPropList * plist, WMPropList * key, WMPropList * value)
|
||||
{
|
||||
wassertr(plist->type == WPLDictionary);
|
||||
|
||||
@@ -1198,9 +1144,7 @@ WMPutInPLDictionary(WMPropList *plist, WMPropList *key, WMPropList *value)
|
||||
/*WMReleasePropList(key); */
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMRemoveFromPLDictionary(WMPropList *plist, WMPropList *key)
|
||||
void WMRemoveFromPLDictionary(WMPropList * plist, WMPropList * key)
|
||||
{
|
||||
WMPropList *k, *v;
|
||||
|
||||
@@ -1213,9 +1157,7 @@ WMRemoveFromPLDictionary(WMPropList *plist, WMPropList *key)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMMergePLDictionaries(WMPropList *dest, WMPropList *source, Bool recursive)
|
||||
WMPropList *WMMergePLDictionaries(WMPropList * dest, WMPropList * source, Bool recursive)
|
||||
{
|
||||
WMPropList *key, *value, *dvalue;
|
||||
WMHashEnumerator e;
|
||||
@@ -1242,9 +1184,7 @@ WMMergePLDictionaries(WMPropList *dest, WMPropList *source, Bool recursive)
|
||||
return dest;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMSubtractPLDictionaries(WMPropList *dest, WMPropList *source, Bool recursive)
|
||||
WMPropList *WMSubtractPLDictionaries(WMPropList * dest, WMPropList * source, Bool recursive)
|
||||
{
|
||||
WMPropList *key, *value, *dvalue;
|
||||
WMHashEnumerator e;
|
||||
@@ -1268,8 +1208,7 @@ WMSubtractPLDictionaries(WMPropList *dest, WMPropList *source, Bool recursive)
|
||||
continue;
|
||||
if (WMIsPropListEqualTo(value, dvalue)) {
|
||||
WMRemoveFromPLDictionary(dest, key);
|
||||
} else if (recursive && value->type==WPLDictionary &&
|
||||
dvalue->type==WPLDictionary) {
|
||||
} else if (recursive && value->type == WPLDictionary && dvalue->type == WPLDictionary) {
|
||||
WMSubtractPLDictionaries(dvalue, value, True);
|
||||
}
|
||||
}
|
||||
@@ -1277,9 +1216,7 @@ WMSubtractPLDictionaries(WMPropList *dest, WMPropList *source, Bool recursive)
|
||||
return dest;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetPropListItemCount(WMPropList *plist)
|
||||
int WMGetPropListItemCount(WMPropList * plist)
|
||||
{
|
||||
switch (plist->type) {
|
||||
case WPLString:
|
||||
@@ -1298,37 +1235,27 @@ WMGetPropListItemCount(WMPropList *plist)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMIsPLString(WMPropList *plist)
|
||||
Bool WMIsPLString(WMPropList * plist)
|
||||
{
|
||||
return (plist->type == WPLString);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMIsPLData(WMPropList *plist)
|
||||
Bool WMIsPLData(WMPropList * plist)
|
||||
{
|
||||
return (plist->type == WPLData);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMIsPLArray(WMPropList *plist)
|
||||
Bool WMIsPLArray(WMPropList * plist)
|
||||
{
|
||||
return (plist->type == WPLArray);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMIsPLDictionary(WMPropList *plist)
|
||||
Bool WMIsPLDictionary(WMPropList * plist)
|
||||
{
|
||||
return (plist->type == WPLDictionary);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
WMIsPropListEqualTo(WMPropList *plist, WMPropList *other)
|
||||
Bool WMIsPropListEqualTo(WMPropList * plist, WMPropList * other)
|
||||
{
|
||||
WMPropList *key1, *item1, *item2;
|
||||
WMHashEnumerator enumerator;
|
||||
@@ -1361,8 +1288,7 @@ WMIsPropListEqualTo(WMPropList *plist, WMPropList *other)
|
||||
if (WMCountHashTable(plist->d.dict) != WMCountHashTable(other->d.dict))
|
||||
return False;
|
||||
enumerator = WMEnumerateHashTable(plist->d.dict);
|
||||
while (WMNextHashEnumeratorItemAndKey(&enumerator, (void**)&item1,
|
||||
(void**)&key1)) {
|
||||
while (WMNextHashEnumeratorItemAndKey(&enumerator, (void **)&item1, (void **)&key1)) {
|
||||
item2 = WMHashGet(other->d.dict, key1);
|
||||
if (!item2 || !item1 || !WMIsPropListEqualTo(item1, item2))
|
||||
return False;
|
||||
@@ -1377,63 +1303,49 @@ WMIsPropListEqualTo(WMPropList *plist, WMPropList *other)
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
WMGetFromPLString(WMPropList *plist)
|
||||
char *WMGetFromPLString(WMPropList * plist)
|
||||
{
|
||||
wassertrv(plist->type == WPLString, NULL);
|
||||
|
||||
return plist->d.string;
|
||||
}
|
||||
|
||||
|
||||
WMData*
|
||||
WMGetFromPLData(WMPropList *plist)
|
||||
WMData *WMGetFromPLData(WMPropList * plist)
|
||||
{
|
||||
wassertrv(plist->type == WPLData, NULL);
|
||||
|
||||
return plist->d.data;
|
||||
}
|
||||
|
||||
|
||||
const unsigned char*
|
||||
WMGetPLDataBytes(WMPropList *plist)
|
||||
const unsigned char *WMGetPLDataBytes(WMPropList * plist)
|
||||
{
|
||||
wassertrv(plist->type == WPLData, NULL);
|
||||
|
||||
return WMDataBytes(plist->d.data);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetPLDataLength(WMPropList *plist)
|
||||
int WMGetPLDataLength(WMPropList * plist)
|
||||
{
|
||||
wassertrv(plist->type == WPLData, 0);
|
||||
|
||||
return WMGetDataLength(plist->d.data);
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMGetFromPLArray(WMPropList *plist, int index)
|
||||
WMPropList *WMGetFromPLArray(WMPropList * plist, int index)
|
||||
{
|
||||
wassertrv(plist->type == WPLArray, NULL);
|
||||
|
||||
return WMGetFromArray(plist->d.array, index);
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMGetFromPLDictionary(WMPropList *plist, WMPropList *key)
|
||||
WMPropList *WMGetFromPLDictionary(WMPropList * plist, WMPropList * key)
|
||||
{
|
||||
wassertrv(plist->type == WPLDictionary, NULL);
|
||||
|
||||
return WMHashGet(plist->d.dict, key);
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMGetPLDictionaryKeys(WMPropList *plist)
|
||||
WMPropList *WMGetPLDictionaryKeys(WMPropList * plist)
|
||||
{
|
||||
WMPropList *array, *key;
|
||||
WMHashEnumerator enumerator;
|
||||
@@ -1453,9 +1365,7 @@ WMGetPLDictionaryKeys(WMPropList *plist)
|
||||
return array;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMShallowCopyPropList(WMPropList *plist)
|
||||
WMPropList *WMShallowCopyPropList(WMPropList * plist)
|
||||
{
|
||||
WMPropList *ret = NULL;
|
||||
WMPropList *key, *item;
|
||||
@@ -1498,9 +1408,7 @@ WMShallowCopyPropList(WMPropList *plist)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMDeepCopyPropList(WMPropList *plist)
|
||||
WMPropList *WMDeepCopyPropList(WMPropList * plist)
|
||||
{
|
||||
WMPropList *ret = NULL;
|
||||
WMPropList *key, *item;
|
||||
@@ -1532,8 +1440,7 @@ WMDeepCopyPropList(WMPropList *plist)
|
||||
* pair before inserting the new key/value.
|
||||
*/
|
||||
while (WMNextHashEnumeratorItemAndKey(&e, (void **)&item, (void **)&key)) {
|
||||
WMHashInsert(ret->d.dict, WMDeepCopyPropList(key),
|
||||
WMDeepCopyPropList(item));
|
||||
WMHashInsert(ret->d.dict, WMDeepCopyPropList(key), WMDeepCopyPropList(item));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -1545,9 +1452,7 @@ WMDeepCopyPropList(WMPropList *plist)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMCreatePropListFromDescription(char *desc)
|
||||
WMPropList *WMCreatePropListFromDescription(char *desc)
|
||||
{
|
||||
WMPropList *plist = NULL;
|
||||
PLData *pldata;
|
||||
@@ -1576,16 +1481,12 @@ WMCreatePropListFromDescription(char *desc)
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
WMGetPropListDescription(WMPropList *plist, Bool indented)
|
||||
char *WMGetPropListDescription(WMPropList * plist, Bool indented)
|
||||
{
|
||||
return (indented ? indentedDescription(plist, 0) : description(plist));
|
||||
}
|
||||
|
||||
|
||||
WMPropList*
|
||||
WMReadPropListFromFile(char *file)
|
||||
WMPropList *WMReadPropListFromFile(char *file)
|
||||
{
|
||||
WMPropList *plist = NULL;
|
||||
PLData *pldata;
|
||||
@@ -1646,11 +1547,9 @@ cleanup:
|
||||
return plist;
|
||||
}
|
||||
|
||||
|
||||
/* TODO: review this function's code */
|
||||
|
||||
Bool
|
||||
WMWritePropListToFile(WMPropList *plist, char *path, Bool atomically)
|
||||
Bool WMWritePropListToFile(WMPropList * plist, char *path, Bool atomically)
|
||||
{
|
||||
char *thePath = NULL;
|
||||
char *desc;
|
||||
@@ -1730,5 +1629,3 @@ failure:
|
||||
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <WINGs.h>
|
||||
|
||||
|
||||
|
||||
#define MAX_SIZE 10*10
|
||||
|
||||
|
||||
WMWindow *win;
|
||||
WMButton *Button[MAX_SIZE];
|
||||
char Map[MAX_SIZE];
|
||||
@@ -20,7 +15,6 @@ int MoveCount;
|
||||
|
||||
int WinSize = 120;
|
||||
|
||||
|
||||
Bool CheckWin(void)
|
||||
{
|
||||
int i;
|
||||
@@ -33,13 +27,11 @@ Bool CheckWin(void)
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
void MoveButton(int button, int x, int y)
|
||||
{
|
||||
WMMoveWidget(Button[button], x * (WinSize / Size), y * (WinSize / Size));
|
||||
}
|
||||
|
||||
|
||||
Bool SlideButton(int button)
|
||||
{
|
||||
int x, y, done = 0;
|
||||
@@ -78,14 +70,12 @@ Bool SlideButton(int button)
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
#define SWAP(a,b) {int tmp; tmp=a; a=b; b=tmp;}
|
||||
|
||||
void ResetGame(void)
|
||||
{
|
||||
int i, x, y, ox, oy;
|
||||
|
||||
|
||||
MoveCount = 0;
|
||||
|
||||
for (i = 0; i < Size * Size - 1; i++) {
|
||||
@@ -99,16 +89,28 @@ void ResetGame(void)
|
||||
ok = 1;
|
||||
switch (rand() % 4) {
|
||||
case 0:
|
||||
if (x > 0) x--; else ok = 0;
|
||||
if (x > 0)
|
||||
x--;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
case 2:
|
||||
if (x < Size-1) x++; else ok = 0;
|
||||
if (x < Size - 1)
|
||||
x++;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
case 1:
|
||||
if (y > 0) y--; else ok = 0;
|
||||
if (y > 0)
|
||||
y--;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
case 3:
|
||||
if (y < Size-1) y++; else ok = 0;
|
||||
if (y < Size - 1)
|
||||
y++;
|
||||
else
|
||||
ok = 0;
|
||||
break;
|
||||
}
|
||||
if (ok) {
|
||||
@@ -127,7 +129,6 @@ void ResetGame(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void buttonClick(WMWidget * w, void *ptr)
|
||||
{
|
||||
char buffer[300];
|
||||
@@ -148,7 +149,6 @@ void buttonClick(WMWidget *w, void *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void resizeObserver(void *self, WMNotification * notif)
|
||||
{
|
||||
WMSize size = WMGetViewSize(WMWidgetView(win));
|
||||
@@ -158,17 +158,14 @@ static void resizeObserver(void *self, WMNotification *notif)
|
||||
for (y = 0; y < Size; y++) {
|
||||
for (x = 0; x < Size; x++) {
|
||||
if (MAP(x, y) >= 0) {
|
||||
WMResizeWidget(Button[(int)MAP(x,y)],
|
||||
WinSize/Size, WinSize/Size);
|
||||
WMMoveWidget(Button[(int)MAP(x,y)],
|
||||
x*(WinSize/Size), y*(WinSize/Size));
|
||||
WMResizeWidget(Button[(int)MAP(x, y)], WinSize / Size, WinSize / Size);
|
||||
WMMoveWidget(Button[(int)MAP(x, y)], x * (WinSize / Size), y * (WinSize / Size));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
Display *dpy;
|
||||
@@ -177,7 +174,6 @@ int main(int argc, char **argv)
|
||||
|
||||
WMInitializeApplication("Puzzle", &argc, argv);
|
||||
|
||||
|
||||
dpy = XOpenDisplay("");
|
||||
if (!dpy) {
|
||||
printf("could not open display\n");
|
||||
@@ -193,11 +189,7 @@ int main(int argc, char **argv)
|
||||
WMSetWindowAspectRatio(win, 2, 2, 2, 2);
|
||||
WMSetWindowResizeIncrements(win, Size, Size);
|
||||
WMSetViewNotifySizeChanges(WMWidgetView(win), True);
|
||||
WMAddNotificationObserver(resizeObserver, NULL,
|
||||
WMViewSizeDidChangeNotification,
|
||||
WMWidgetView(win));
|
||||
|
||||
|
||||
WMAddNotificationObserver(resizeObserver, NULL, WMViewSizeDidChangeNotification, WMWidgetView(win));
|
||||
|
||||
for (i = y = 0; y < Size && i < Size * Size - 1; y++) {
|
||||
for (x = 0; x < Size && i < Size * Size - 1; x++) {
|
||||
@@ -212,8 +204,7 @@ int main(int argc, char **argv)
|
||||
|
||||
RHSVtoRGB(&hsv, &col);
|
||||
|
||||
color = WMCreateRGBColor(scr, col.red<<8, col.green<<8,
|
||||
col.blue<<8, False);
|
||||
color = WMCreateRGBColor(scr, col.red << 8, col.green << 8, col.blue << 8, False);
|
||||
|
||||
MAP(x, y) = i;
|
||||
Button[i] = WMCreateButton(win, WBTMomentaryLight);
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
build
|
||||
WINGs.c
|
||||
wings.so
|
||||
*.pyc
|
||||
*.pyo
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
This is a python wrapper for the WINGs library. With it you can write python
|
||||
based programs which will have WINGs based graphic interfaces.
|
||||
This is a python wrapper for the WINGs library, that can be used to write python
|
||||
based programs with WINGs-based graphic interfaces.
|
||||
|
||||
This module in not built by default. To build it you need python2.1 or later
|
||||
and swig-1.3.14 or later.
|
||||
@@ -8,14 +8,13 @@ and swig-1.3.14 or later.
|
||||
To build it, first compile and install WINGs. after that run 'make' in this
|
||||
directory. 'make install' will install the python module into the python tree.
|
||||
|
||||
run test.py or even WINGs.py for an example.
|
||||
run test.py or WINGs.py for an example.
|
||||
|
||||
the code is not yet finished and probably won't do everything you expect it
|
||||
to do.
|
||||
the code is not finished yet and may fail to work as expected in some cases.
|
||||
|
||||
Note: currently the module expects WINGs installed to build. it won't take
|
||||
the WINGs libraries and header files from the source tree. You need to
|
||||
install WINGs first. Even if an old version of WINGs is already installed,
|
||||
you still need to nstall the newly built WINGs, else the python module will
|
||||
be built against the old version
|
||||
you still need to install the newly built WINGs, else the python module will
|
||||
be built against the old version.
|
||||
|
||||
|
||||
@@ -26,10 +26,11 @@ class WMTimer:
|
||||
self._o = wings.pyWMAddPersistentTimerHandler(milliseconds, (callback, cdata))
|
||||
else:
|
||||
self._o = wings.pyWMAddTimerHandler(milliseconds, (callback, cdata))
|
||||
self.__WMDeleteTimerHandler = wings.pyWMDeleteTimerHandler
|
||||
|
||||
def __del__(self):
|
||||
wings.pyWMDeleteTimerHandler(self._o)
|
||||
#delete = __del__
|
||||
self.__WMDeleteTimerHandler(self._o)
|
||||
|
||||
|
||||
class WMPersistentTimer(WMTimer):
|
||||
def __init__(self, milliseconds, callback, cdata=None):
|
||||
@@ -55,6 +56,16 @@ class WMScreen:
|
||||
raise Error, "'%s' is a read-only WMScreen attribute" % name
|
||||
self.__dict__[name] = value
|
||||
|
||||
def __delattr__(self, name):
|
||||
if name in self.__readonly:
|
||||
#raise AttributeError, "'%s' attribute cannot be deleted from WMScreen instance" % name
|
||||
raise Error, "'%s' attribute cannot be deleted from WMScreen instance" % name
|
||||
try:
|
||||
del(self.__dict__[name])
|
||||
except KeyError:
|
||||
raise AttributeError, "%s instance has no attribute '%s'" % \
|
||||
(self.__class__.__name__, name)
|
||||
|
||||
def mainLoop(self):
|
||||
wings.pyWMScreenMainLoop(self._o)
|
||||
|
||||
@@ -77,13 +88,14 @@ class WMView:
|
||||
|
||||
class WMWidget(WMView):
|
||||
def __init__(self):
|
||||
self._o = None
|
||||
if self.__class__ == WMWidget:
|
||||
raise Error, "a WMWidget can't be instantiated directly"
|
||||
self._o = None
|
||||
self.__WMDestroyWidget = wings.WMDestroyWidget
|
||||
|
||||
def __del__(self):
|
||||
if (self._o != None):
|
||||
wings.WMDestroyWidget(self._o)
|
||||
if self._o is not None:
|
||||
self.__WMDestroyWidget(self._o)
|
||||
|
||||
def resize(self, width, height):
|
||||
wings.WMResizeWidget(self._o, width, height)
|
||||
|
||||
@@ -8,24 +8,21 @@ from distutils.extension import Extension
|
||||
|
||||
## Get the include dirs
|
||||
wings = os.popen("get-wings-flags --cflags", "r")
|
||||
lines = [x.strip() for x in wings.readlines()]
|
||||
flags = reduce(lambda x,y: x+y, [x.split() for x in lines if x])
|
||||
flags = wings.read().split()
|
||||
include_dirs = [x[2:] for x in flags]
|
||||
#include_dirs += [".."]
|
||||
wings.close()
|
||||
|
||||
## Get the library dirs
|
||||
wings = os.popen("get-wings-flags --ldflags", "r")
|
||||
lines = [x.strip() for x in wings.readlines()]
|
||||
flags = reduce(lambda x,y: x+y, [x.split() for x in lines if x])
|
||||
flags = wings.read().split()
|
||||
library_dirs = [x[2:] for x in flags]
|
||||
#library_dirs += [".."]
|
||||
wings.close()
|
||||
|
||||
## Get the libraries
|
||||
wings = os.popen("get-wings-flags --libs", "r")
|
||||
lines = [x.strip() for x in wings.readlines()]
|
||||
flags = reduce(lambda x,y: x+y, [x.split() for x in lines if x])
|
||||
flags = wings.read().split()
|
||||
libraries = [x[2:] for x in flags]
|
||||
wings.close()
|
||||
|
||||
@@ -52,10 +49,10 @@ setup (# Distribution meta-data
|
||||
description = "A python interface to WINGs",
|
||||
long_description=long_description,
|
||||
author = "Dan Pascu",
|
||||
author_email = "dan@windowmaker.org",
|
||||
author_email = "dan@windowmaker.info",
|
||||
license = "GPL",
|
||||
platforms = "ALL",
|
||||
url = "http://windowmaker.org/",
|
||||
url = "http://windowmaker.info/",
|
||||
|
||||
# Description of the modules and packages in the distribution
|
||||
|
||||
|
||||
771
WINGs/rgb.h
Normal file
771
WINGs/rgb.h
Normal file
@@ -0,0 +1,771 @@
|
||||
|
||||
/* Automatically generated file. Do NOT edit. Regenerate it using make-rgb */
|
||||
|
||||
#ifndef RGB_H_
|
||||
#define RGB_H_
|
||||
|
||||
#include <wraster.h>
|
||||
|
||||
typedef struct RGBColor {
|
||||
RColor color;
|
||||
char *name;
|
||||
} RGBColor;
|
||||
|
||||
RGBColor rgbColors[] = {
|
||||
{{255, 250, 250, 0}, "snow"},
|
||||
{{248, 248, 255, 0}, "ghost"},
|
||||
{{248, 248, 255, 0}, "GhostWhite"},
|
||||
{{245, 245, 245, 0}, "white"},
|
||||
{{245, 245, 245, 0}, "WhiteSmoke"},
|
||||
{{220, 220, 220, 0}, "gainsboro"},
|
||||
{{255, 250, 240, 0}, "floral"},
|
||||
{{255, 250, 240, 0}, "FloralWhite"},
|
||||
{{253, 245, 230, 0}, "old"},
|
||||
{{253, 245, 230, 0}, "OldLace"},
|
||||
{{250, 240, 230, 0}, "linen"},
|
||||
{{250, 235, 215, 0}, "antique"},
|
||||
{{250, 235, 215, 0}, "AntiqueWhite"},
|
||||
{{255, 239, 213, 0}, "papaya"},
|
||||
{{255, 239, 213, 0}, "PapayaWhip"},
|
||||
{{255, 235, 205, 0}, "blanched"},
|
||||
{{255, 235, 205, 0}, "BlanchedAlmond"},
|
||||
{{255, 228, 196, 0}, "bisque"},
|
||||
{{255, 218, 185, 0}, "peach"},
|
||||
{{255, 218, 185, 0}, "PeachPuff"},
|
||||
{{255, 222, 173, 0}, "navajo"},
|
||||
{{255, 222, 173, 0}, "NavajoWhite"},
|
||||
{{255, 228, 181, 0}, "moccasin"},
|
||||
{{255, 248, 220, 0}, "cornsilk"},
|
||||
{{255, 255, 240, 0}, "ivory"},
|
||||
{{255, 250, 205, 0}, "lemon"},
|
||||
{{255, 250, 205, 0}, "LemonChiffon"},
|
||||
{{255, 245, 238, 0}, "seashell"},
|
||||
{{240, 255, 240, 0}, "honeydew"},
|
||||
{{245, 255, 250, 0}, "mint"},
|
||||
{{245, 255, 250, 0}, "MintCream"},
|
||||
{{240, 255, 255, 0}, "azure"},
|
||||
{{240, 248, 255, 0}, "alice"},
|
||||
{{240, 248, 255, 0}, "AliceBlue"},
|
||||
{{230, 230, 250, 0}, "lavender"},
|
||||
{{255, 240, 245, 0}, "lavender"},
|
||||
{{255, 240, 245, 0}, "LavenderBlush"},
|
||||
{{255, 228, 225, 0}, "misty"},
|
||||
{{255, 228, 225, 0}, "MistyRose"},
|
||||
{{255, 255, 255, 0}, "white"},
|
||||
{{ 0, 0, 0, 0}, "black"},
|
||||
{{ 47, 79, 79, 0}, "dark"},
|
||||
{{ 47, 79, 79, 0}, "DarkSlateGray"},
|
||||
{{ 47, 79, 79, 0}, "dark"},
|
||||
{{ 47, 79, 79, 0}, "DarkSlateGrey"},
|
||||
{{105, 105, 105, 0}, "dim"},
|
||||
{{105, 105, 105, 0}, "DimGray"},
|
||||
{{105, 105, 105, 0}, "dim"},
|
||||
{{105, 105, 105, 0}, "DimGrey"},
|
||||
{{112, 128, 144, 0}, "slate"},
|
||||
{{112, 128, 144, 0}, "SlateGray"},
|
||||
{{112, 128, 144, 0}, "slate"},
|
||||
{{112, 128, 144, 0}, "SlateGrey"},
|
||||
{{119, 136, 153, 0}, "light"},
|
||||
{{119, 136, 153, 0}, "LightSlateGray"},
|
||||
{{119, 136, 153, 0}, "light"},
|
||||
{{119, 136, 153, 0}, "LightSlateGrey"},
|
||||
{{190, 190, 190, 0}, "gray"},
|
||||
{{190, 190, 190, 0}, "grey"},
|
||||
{{211, 211, 211, 0}, "light"},
|
||||
{{211, 211, 211, 0}, "LightGrey"},
|
||||
{{211, 211, 211, 0}, "light"},
|
||||
{{211, 211, 211, 0}, "LightGray"},
|
||||
{{ 25, 25, 112, 0}, "midnight"},
|
||||
{{ 25, 25, 112, 0}, "MidnightBlue"},
|
||||
{{ 0, 0, 128, 0}, "navy"},
|
||||
{{ 0, 0, 128, 0}, "navy"},
|
||||
{{ 0, 0, 128, 0}, "NavyBlue"},
|
||||
{{100, 149, 237, 0}, "cornflower"},
|
||||
{{100, 149, 237, 0}, "CornflowerBlue"},
|
||||
{{ 72, 61, 139, 0}, "dark"},
|
||||
{{ 72, 61, 139, 0}, "DarkSlateBlue"},
|
||||
{{106, 90, 205, 0}, "slate"},
|
||||
{{106, 90, 205, 0}, "SlateBlue"},
|
||||
{{123, 104, 238, 0}, "medium"},
|
||||
{{123, 104, 238, 0}, "MediumSlateBlue"},
|
||||
{{132, 112, 255, 0}, "light"},
|
||||
{{132, 112, 255, 0}, "LightSlateBlue"},
|
||||
{{ 0, 0, 205, 0}, "medium"},
|
||||
{{ 0, 0, 205, 0}, "MediumBlue"},
|
||||
{{ 65, 105, 225, 0}, "royal"},
|
||||
{{ 65, 105, 225, 0}, "RoyalBlue"},
|
||||
{{ 0, 0, 255, 0}, "blue"},
|
||||
{{ 30, 144, 255, 0}, "dodger"},
|
||||
{{ 30, 144, 255, 0}, "DodgerBlue"},
|
||||
{{ 0, 191, 255, 0}, "deep"},
|
||||
{{ 0, 191, 255, 0}, "DeepSkyBlue"},
|
||||
{{135, 206, 235, 0}, "sky"},
|
||||
{{135, 206, 235, 0}, "SkyBlue"},
|
||||
{{135, 206, 250, 0}, "light"},
|
||||
{{135, 206, 250, 0}, "LightSkyBlue"},
|
||||
{{ 70, 130, 180, 0}, "steel"},
|
||||
{{ 70, 130, 180, 0}, "SteelBlue"},
|
||||
{{176, 196, 222, 0}, "light"},
|
||||
{{176, 196, 222, 0}, "LightSteelBlue"},
|
||||
{{173, 216, 230, 0}, "light"},
|
||||
{{173, 216, 230, 0}, "LightBlue"},
|
||||
{{176, 224, 230, 0}, "powder"},
|
||||
{{176, 224, 230, 0}, "PowderBlue"},
|
||||
{{175, 238, 238, 0}, "pale"},
|
||||
{{175, 238, 238, 0}, "PaleTurquoise"},
|
||||
{{ 0, 206, 209, 0}, "dark"},
|
||||
{{ 0, 206, 209, 0}, "DarkTurquoise"},
|
||||
{{ 72, 209, 204, 0}, "medium"},
|
||||
{{ 72, 209, 204, 0}, "MediumTurquoise"},
|
||||
{{ 64, 224, 208, 0}, "turquoise"},
|
||||
{{ 0, 255, 255, 0}, "cyan"},
|
||||
{{224, 255, 255, 0}, "light"},
|
||||
{{224, 255, 255, 0}, "LightCyan"},
|
||||
{{ 95, 158, 160, 0}, "cadet"},
|
||||
{{ 95, 158, 160, 0}, "CadetBlue"},
|
||||
{{102, 205, 170, 0}, "medium"},
|
||||
{{102, 205, 170, 0}, "MediumAquamarine"},
|
||||
{{127, 255, 212, 0}, "aquamarine"},
|
||||
{{ 0, 100, 0, 0}, "dark"},
|
||||
{{ 0, 100, 0, 0}, "DarkGreen"},
|
||||
{{ 85, 107, 47, 0}, "dark"},
|
||||
{{ 85, 107, 47, 0}, "DarkOliveGreen"},
|
||||
{{143, 188, 143, 0}, "dark"},
|
||||
{{143, 188, 143, 0}, "DarkSeaGreen"},
|
||||
{{ 46, 139, 87, 0}, "sea"},
|
||||
{{ 46, 139, 87, 0}, "SeaGreen"},
|
||||
{{ 60, 179, 113, 0}, "medium"},
|
||||
{{ 60, 179, 113, 0}, "MediumSeaGreen"},
|
||||
{{ 32, 178, 170, 0}, "light"},
|
||||
{{ 32, 178, 170, 0}, "LightSeaGreen"},
|
||||
{{152, 251, 152, 0}, "pale"},
|
||||
{{152, 251, 152, 0}, "PaleGreen"},
|
||||
{{ 0, 255, 127, 0}, "spring"},
|
||||
{{ 0, 255, 127, 0}, "SpringGreen"},
|
||||
{{124, 252, 0, 0}, "lawn"},
|
||||
{{124, 252, 0, 0}, "LawnGreen"},
|
||||
{{ 0, 255, 0, 0}, "green"},
|
||||
{{127, 255, 0, 0}, "chartreuse"},
|
||||
{{ 0, 250, 154, 0}, "medium"},
|
||||
{{ 0, 250, 154, 0}, "MediumSpringGreen"},
|
||||
{{173, 255, 47, 0}, "green"},
|
||||
{{173, 255, 47, 0}, "GreenYellow"},
|
||||
{{ 50, 205, 50, 0}, "lime"},
|
||||
{{ 50, 205, 50, 0}, "LimeGreen"},
|
||||
{{154, 205, 50, 0}, "yellow"},
|
||||
{{154, 205, 50, 0}, "YellowGreen"},
|
||||
{{ 34, 139, 34, 0}, "forest"},
|
||||
{{ 34, 139, 34, 0}, "ForestGreen"},
|
||||
{{107, 142, 35, 0}, "olive"},
|
||||
{{107, 142, 35, 0}, "OliveDrab"},
|
||||
{{189, 183, 107, 0}, "dark"},
|
||||
{{189, 183, 107, 0}, "DarkKhaki"},
|
||||
{{240, 230, 140, 0}, "khaki"},
|
||||
{{238, 232, 170, 0}, "pale"},
|
||||
{{238, 232, 170, 0}, "PaleGoldenrod"},
|
||||
{{250, 250, 210, 0}, "light"},
|
||||
{{250, 250, 210, 0}, "LightGoldenrodYellow"},
|
||||
{{255, 255, 224, 0}, "light"},
|
||||
{{255, 255, 224, 0}, "LightYellow"},
|
||||
{{255, 255, 0, 0}, "yellow"},
|
||||
{{255, 215, 0, 0}, "gold"},
|
||||
{{238, 221, 130, 0}, "light"},
|
||||
{{238, 221, 130, 0}, "LightGoldenrod"},
|
||||
{{218, 165, 32, 0}, "goldenrod"},
|
||||
{{184, 134, 11, 0}, "dark"},
|
||||
{{184, 134, 11, 0}, "DarkGoldenrod"},
|
||||
{{188, 143, 143, 0}, "rosy"},
|
||||
{{188, 143, 143, 0}, "RosyBrown"},
|
||||
{{205, 92, 92, 0}, "indian"},
|
||||
{{205, 92, 92, 0}, "IndianRed"},
|
||||
{{139, 69, 19, 0}, "saddle"},
|
||||
{{139, 69, 19, 0}, "SaddleBrown"},
|
||||
{{160, 82, 45, 0}, "sienna"},
|
||||
{{205, 133, 63, 0}, "peru"},
|
||||
{{222, 184, 135, 0}, "burlywood"},
|
||||
{{245, 245, 220, 0}, "beige"},
|
||||
{{245, 222, 179, 0}, "wheat"},
|
||||
{{244, 164, 96, 0}, "sandy"},
|
||||
{{244, 164, 96, 0}, "SandyBrown"},
|
||||
{{210, 180, 140, 0}, "tan"},
|
||||
{{210, 105, 30, 0}, "chocolate"},
|
||||
{{178, 34, 34, 0}, "firebrick"},
|
||||
{{165, 42, 42, 0}, "brown"},
|
||||
{{233, 150, 122, 0}, "dark"},
|
||||
{{233, 150, 122, 0}, "DarkSalmon"},
|
||||
{{250, 128, 114, 0}, "salmon"},
|
||||
{{255, 160, 122, 0}, "light"},
|
||||
{{255, 160, 122, 0}, "LightSalmon"},
|
||||
{{255, 165, 0, 0}, "orange"},
|
||||
{{255, 140, 0, 0}, "dark"},
|
||||
{{255, 140, 0, 0}, "DarkOrange"},
|
||||
{{255, 127, 80, 0}, "coral"},
|
||||
{{240, 128, 128, 0}, "light"},
|
||||
{{240, 128, 128, 0}, "LightCoral"},
|
||||
{{255, 99, 71, 0}, "tomato"},
|
||||
{{255, 69, 0, 0}, "orange"},
|
||||
{{255, 69, 0, 0}, "OrangeRed"},
|
||||
{{255, 0, 0, 0}, "red"},
|
||||
{{255, 105, 180, 0}, "hot"},
|
||||
{{255, 105, 180, 0}, "HotPink"},
|
||||
{{255, 20, 147, 0}, "deep"},
|
||||
{{255, 20, 147, 0}, "DeepPink"},
|
||||
{{255, 192, 203, 0}, "pink"},
|
||||
{{255, 182, 193, 0}, "light"},
|
||||
{{255, 182, 193, 0}, "LightPink"},
|
||||
{{219, 112, 147, 0}, "pale"},
|
||||
{{219, 112, 147, 0}, "PaleVioletRed"},
|
||||
{{176, 48, 96, 0}, "maroon"},
|
||||
{{199, 21, 133, 0}, "medium"},
|
||||
{{199, 21, 133, 0}, "MediumVioletRed"},
|
||||
{{208, 32, 144, 0}, "violet"},
|
||||
{{208, 32, 144, 0}, "VioletRed"},
|
||||
{{255, 0, 255, 0}, "magenta"},
|
||||
{{238, 130, 238, 0}, "violet"},
|
||||
{{221, 160, 221, 0}, "plum"},
|
||||
{{218, 112, 214, 0}, "orchid"},
|
||||
{{186, 85, 211, 0}, "medium"},
|
||||
{{186, 85, 211, 0}, "MediumOrchid"},
|
||||
{{153, 50, 204, 0}, "dark"},
|
||||
{{153, 50, 204, 0}, "DarkOrchid"},
|
||||
{{148, 0, 211, 0}, "dark"},
|
||||
{{148, 0, 211, 0}, "DarkViolet"},
|
||||
{{138, 43, 226, 0}, "blue"},
|
||||
{{138, 43, 226, 0}, "BlueViolet"},
|
||||
{{160, 32, 240, 0}, "purple"},
|
||||
{{147, 112, 219, 0}, "medium"},
|
||||
{{147, 112, 219, 0}, "MediumPurple"},
|
||||
{{216, 191, 216, 0}, "thistle"},
|
||||
{{255, 250, 250, 0}, "snow1"},
|
||||
{{238, 233, 233, 0}, "snow2"},
|
||||
{{205, 201, 201, 0}, "snow3"},
|
||||
{{139, 137, 137, 0}, "snow4"},
|
||||
{{255, 245, 238, 0}, "seashell1"},
|
||||
{{238, 229, 222, 0}, "seashell2"},
|
||||
{{205, 197, 191, 0}, "seashell3"},
|
||||
{{139, 134, 130, 0}, "seashell4"},
|
||||
{{255, 239, 219, 0}, "AntiqueWhite1"},
|
||||
{{238, 223, 204, 0}, "AntiqueWhite2"},
|
||||
{{205, 192, 176, 0}, "AntiqueWhite3"},
|
||||
{{139, 131, 120, 0}, "AntiqueWhite4"},
|
||||
{{255, 228, 196, 0}, "bisque1"},
|
||||
{{238, 213, 183, 0}, "bisque2"},
|
||||
{{205, 183, 158, 0}, "bisque3"},
|
||||
{{139, 125, 107, 0}, "bisque4"},
|
||||
{{255, 218, 185, 0}, "PeachPuff1"},
|
||||
{{238, 203, 173, 0}, "PeachPuff2"},
|
||||
{{205, 175, 149, 0}, "PeachPuff3"},
|
||||
{{139, 119, 101, 0}, "PeachPuff4"},
|
||||
{{255, 222, 173, 0}, "NavajoWhite1"},
|
||||
{{238, 207, 161, 0}, "NavajoWhite2"},
|
||||
{{205, 179, 139, 0}, "NavajoWhite3"},
|
||||
{{139, 121, 94, 0}, "NavajoWhite4"},
|
||||
{{255, 250, 205, 0}, "LemonChiffon1"},
|
||||
{{238, 233, 191, 0}, "LemonChiffon2"},
|
||||
{{205, 201, 165, 0}, "LemonChiffon3"},
|
||||
{{139, 137, 112, 0}, "LemonChiffon4"},
|
||||
{{255, 248, 220, 0}, "cornsilk1"},
|
||||
{{238, 232, 205, 0}, "cornsilk2"},
|
||||
{{205, 200, 177, 0}, "cornsilk3"},
|
||||
{{139, 136, 120, 0}, "cornsilk4"},
|
||||
{{255, 255, 240, 0}, "ivory1"},
|
||||
{{238, 238, 224, 0}, "ivory2"},
|
||||
{{205, 205, 193, 0}, "ivory3"},
|
||||
{{139, 139, 131, 0}, "ivory4"},
|
||||
{{240, 255, 240, 0}, "honeydew1"},
|
||||
{{224, 238, 224, 0}, "honeydew2"},
|
||||
{{193, 205, 193, 0}, "honeydew3"},
|
||||
{{131, 139, 131, 0}, "honeydew4"},
|
||||
{{255, 240, 245, 0}, "LavenderBlush1"},
|
||||
{{238, 224, 229, 0}, "LavenderBlush2"},
|
||||
{{205, 193, 197, 0}, "LavenderBlush3"},
|
||||
{{139, 131, 134, 0}, "LavenderBlush4"},
|
||||
{{255, 228, 225, 0}, "MistyRose1"},
|
||||
{{238, 213, 210, 0}, "MistyRose2"},
|
||||
{{205, 183, 181, 0}, "MistyRose3"},
|
||||
{{139, 125, 123, 0}, "MistyRose4"},
|
||||
{{240, 255, 255, 0}, "azure1"},
|
||||
{{224, 238, 238, 0}, "azure2"},
|
||||
{{193, 205, 205, 0}, "azure3"},
|
||||
{{131, 139, 139, 0}, "azure4"},
|
||||
{{131, 111, 255, 0}, "SlateBlue1"},
|
||||
{{122, 103, 238, 0}, "SlateBlue2"},
|
||||
{{105, 89, 205, 0}, "SlateBlue3"},
|
||||
{{ 71, 60, 139, 0}, "SlateBlue4"},
|
||||
{{ 72, 118, 255, 0}, "RoyalBlue1"},
|
||||
{{ 67, 110, 238, 0}, "RoyalBlue2"},
|
||||
{{ 58, 95, 205, 0}, "RoyalBlue3"},
|
||||
{{ 39, 64, 139, 0}, "RoyalBlue4"},
|
||||
{{ 0, 0, 255, 0}, "blue1"},
|
||||
{{ 0, 0, 238, 0}, "blue2"},
|
||||
{{ 0, 0, 205, 0}, "blue3"},
|
||||
{{ 0, 0, 139, 0}, "blue4"},
|
||||
{{ 30, 144, 255, 0}, "DodgerBlue1"},
|
||||
{{ 28, 134, 238, 0}, "DodgerBlue2"},
|
||||
{{ 24, 116, 205, 0}, "DodgerBlue3"},
|
||||
{{ 16, 78, 139, 0}, "DodgerBlue4"},
|
||||
{{ 99, 184, 255, 0}, "SteelBlue1"},
|
||||
{{ 92, 172, 238, 0}, "SteelBlue2"},
|
||||
{{ 79, 148, 205, 0}, "SteelBlue3"},
|
||||
{{ 54, 100, 139, 0}, "SteelBlue4"},
|
||||
{{ 0, 191, 255, 0}, "DeepSkyBlue1"},
|
||||
{{ 0, 178, 238, 0}, "DeepSkyBlue2"},
|
||||
{{ 0, 154, 205, 0}, "DeepSkyBlue3"},
|
||||
{{ 0, 104, 139, 0}, "DeepSkyBlue4"},
|
||||
{{135, 206, 255, 0}, "SkyBlue1"},
|
||||
{{126, 192, 238, 0}, "SkyBlue2"},
|
||||
{{108, 166, 205, 0}, "SkyBlue3"},
|
||||
{{ 74, 112, 139, 0}, "SkyBlue4"},
|
||||
{{176, 226, 255, 0}, "LightSkyBlue1"},
|
||||
{{164, 211, 238, 0}, "LightSkyBlue2"},
|
||||
{{141, 182, 205, 0}, "LightSkyBlue3"},
|
||||
{{ 96, 123, 139, 0}, "LightSkyBlue4"},
|
||||
{{198, 226, 255, 0}, "SlateGray1"},
|
||||
{{185, 211, 238, 0}, "SlateGray2"},
|
||||
{{159, 182, 205, 0}, "SlateGray3"},
|
||||
{{108, 123, 139, 0}, "SlateGray4"},
|
||||
{{202, 225, 255, 0}, "LightSteelBlue1"},
|
||||
{{188, 210, 238, 0}, "LightSteelBlue2"},
|
||||
{{162, 181, 205, 0}, "LightSteelBlue3"},
|
||||
{{110, 123, 139, 0}, "LightSteelBlue4"},
|
||||
{{191, 239, 255, 0}, "LightBlue1"},
|
||||
{{178, 223, 238, 0}, "LightBlue2"},
|
||||
{{154, 192, 205, 0}, "LightBlue3"},
|
||||
{{104, 131, 139, 0}, "LightBlue4"},
|
||||
{{224, 255, 255, 0}, "LightCyan1"},
|
||||
{{209, 238, 238, 0}, "LightCyan2"},
|
||||
{{180, 205, 205, 0}, "LightCyan3"},
|
||||
{{122, 139, 139, 0}, "LightCyan4"},
|
||||
{{187, 255, 255, 0}, "PaleTurquoise1"},
|
||||
{{174, 238, 238, 0}, "PaleTurquoise2"},
|
||||
{{150, 205, 205, 0}, "PaleTurquoise3"},
|
||||
{{102, 139, 139, 0}, "PaleTurquoise4"},
|
||||
{{152, 245, 255, 0}, "CadetBlue1"},
|
||||
{{142, 229, 238, 0}, "CadetBlue2"},
|
||||
{{122, 197, 205, 0}, "CadetBlue3"},
|
||||
{{ 83, 134, 139, 0}, "CadetBlue4"},
|
||||
{{ 0, 245, 255, 0}, "turquoise1"},
|
||||
{{ 0, 229, 238, 0}, "turquoise2"},
|
||||
{{ 0, 197, 205, 0}, "turquoise3"},
|
||||
{{ 0, 134, 139, 0}, "turquoise4"},
|
||||
{{ 0, 255, 255, 0}, "cyan1"},
|
||||
{{ 0, 238, 238, 0}, "cyan2"},
|
||||
{{ 0, 205, 205, 0}, "cyan3"},
|
||||
{{ 0, 139, 139, 0}, "cyan4"},
|
||||
{{151, 255, 255, 0}, "DarkSlateGray1"},
|
||||
{{141, 238, 238, 0}, "DarkSlateGray2"},
|
||||
{{121, 205, 205, 0}, "DarkSlateGray3"},
|
||||
{{ 82, 139, 139, 0}, "DarkSlateGray4"},
|
||||
{{127, 255, 212, 0}, "aquamarine1"},
|
||||
{{118, 238, 198, 0}, "aquamarine2"},
|
||||
{{102, 205, 170, 0}, "aquamarine3"},
|
||||
{{ 69, 139, 116, 0}, "aquamarine4"},
|
||||
{{193, 255, 193, 0}, "DarkSeaGreen1"},
|
||||
{{180, 238, 180, 0}, "DarkSeaGreen2"},
|
||||
{{155, 205, 155, 0}, "DarkSeaGreen3"},
|
||||
{{105, 139, 105, 0}, "DarkSeaGreen4"},
|
||||
{{ 84, 255, 159, 0}, "SeaGreen1"},
|
||||
{{ 78, 238, 148, 0}, "SeaGreen2"},
|
||||
{{ 67, 205, 128, 0}, "SeaGreen3"},
|
||||
{{ 46, 139, 87, 0}, "SeaGreen4"},
|
||||
{{154, 255, 154, 0}, "PaleGreen1"},
|
||||
{{144, 238, 144, 0}, "PaleGreen2"},
|
||||
{{124, 205, 124, 0}, "PaleGreen3"},
|
||||
{{ 84, 139, 84, 0}, "PaleGreen4"},
|
||||
{{ 0, 255, 127, 0}, "SpringGreen1"},
|
||||
{{ 0, 238, 118, 0}, "SpringGreen2"},
|
||||
{{ 0, 205, 102, 0}, "SpringGreen3"},
|
||||
{{ 0, 139, 69, 0}, "SpringGreen4"},
|
||||
{{ 0, 255, 0, 0}, "green1"},
|
||||
{{ 0, 238, 0, 0}, "green2"},
|
||||
{{ 0, 205, 0, 0}, "green3"},
|
||||
{{ 0, 139, 0, 0}, "green4"},
|
||||
{{127, 255, 0, 0}, "chartreuse1"},
|
||||
{{118, 238, 0, 0}, "chartreuse2"},
|
||||
{{102, 205, 0, 0}, "chartreuse3"},
|
||||
{{ 69, 139, 0, 0}, "chartreuse4"},
|
||||
{{192, 255, 62, 0}, "OliveDrab1"},
|
||||
{{179, 238, 58, 0}, "OliveDrab2"},
|
||||
{{154, 205, 50, 0}, "OliveDrab3"},
|
||||
{{105, 139, 34, 0}, "OliveDrab4"},
|
||||
{{202, 255, 112, 0}, "DarkOliveGreen1"},
|
||||
{{188, 238, 104, 0}, "DarkOliveGreen2"},
|
||||
{{162, 205, 90, 0}, "DarkOliveGreen3"},
|
||||
{{110, 139, 61, 0}, "DarkOliveGreen4"},
|
||||
{{255, 246, 143, 0}, "khaki1"},
|
||||
{{238, 230, 133, 0}, "khaki2"},
|
||||
{{205, 198, 115, 0}, "khaki3"},
|
||||
{{139, 134, 78, 0}, "khaki4"},
|
||||
{{255, 236, 139, 0}, "LightGoldenrod1"},
|
||||
{{238, 220, 130, 0}, "LightGoldenrod2"},
|
||||
{{205, 190, 112, 0}, "LightGoldenrod3"},
|
||||
{{139, 129, 76, 0}, "LightGoldenrod4"},
|
||||
{{255, 255, 224, 0}, "LightYellow1"},
|
||||
{{238, 238, 209, 0}, "LightYellow2"},
|
||||
{{205, 205, 180, 0}, "LightYellow3"},
|
||||
{{139, 139, 122, 0}, "LightYellow4"},
|
||||
{{255, 255, 0, 0}, "yellow1"},
|
||||
{{238, 238, 0, 0}, "yellow2"},
|
||||
{{205, 205, 0, 0}, "yellow3"},
|
||||
{{139, 139, 0, 0}, "yellow4"},
|
||||
{{255, 215, 0, 0}, "gold1"},
|
||||
{{238, 201, 0, 0}, "gold2"},
|
||||
{{205, 173, 0, 0}, "gold3"},
|
||||
{{139, 117, 0, 0}, "gold4"},
|
||||
{{255, 193, 37, 0}, "goldenrod1"},
|
||||
{{238, 180, 34, 0}, "goldenrod2"},
|
||||
{{205, 155, 29, 0}, "goldenrod3"},
|
||||
{{139, 105, 20, 0}, "goldenrod4"},
|
||||
{{255, 185, 15, 0}, "DarkGoldenrod1"},
|
||||
{{238, 173, 14, 0}, "DarkGoldenrod2"},
|
||||
{{205, 149, 12, 0}, "DarkGoldenrod3"},
|
||||
{{139, 101, 8, 0}, "DarkGoldenrod4"},
|
||||
{{255, 193, 193, 0}, "RosyBrown1"},
|
||||
{{238, 180, 180, 0}, "RosyBrown2"},
|
||||
{{205, 155, 155, 0}, "RosyBrown3"},
|
||||
{{139, 105, 105, 0}, "RosyBrown4"},
|
||||
{{255, 106, 106, 0}, "IndianRed1"},
|
||||
{{238, 99, 99, 0}, "IndianRed2"},
|
||||
{{205, 85, 85, 0}, "IndianRed3"},
|
||||
{{139, 58, 58, 0}, "IndianRed4"},
|
||||
{{255, 130, 71, 0}, "sienna1"},
|
||||
{{238, 121, 66, 0}, "sienna2"},
|
||||
{{205, 104, 57, 0}, "sienna3"},
|
||||
{{139, 71, 38, 0}, "sienna4"},
|
||||
{{255, 211, 155, 0}, "burlywood1"},
|
||||
{{238, 197, 145, 0}, "burlywood2"},
|
||||
{{205, 170, 125, 0}, "burlywood3"},
|
||||
{{139, 115, 85, 0}, "burlywood4"},
|
||||
{{255, 231, 186, 0}, "wheat1"},
|
||||
{{238, 216, 174, 0}, "wheat2"},
|
||||
{{205, 186, 150, 0}, "wheat3"},
|
||||
{{139, 126, 102, 0}, "wheat4"},
|
||||
{{255, 165, 79, 0}, "tan1"},
|
||||
{{238, 154, 73, 0}, "tan2"},
|
||||
{{205, 133, 63, 0}, "tan3"},
|
||||
{{139, 90, 43, 0}, "tan4"},
|
||||
{{255, 127, 36, 0}, "chocolate1"},
|
||||
{{238, 118, 33, 0}, "chocolate2"},
|
||||
{{205, 102, 29, 0}, "chocolate3"},
|
||||
{{139, 69, 19, 0}, "chocolate4"},
|
||||
{{255, 48, 48, 0}, "firebrick1"},
|
||||
{{238, 44, 44, 0}, "firebrick2"},
|
||||
{{205, 38, 38, 0}, "firebrick3"},
|
||||
{{139, 26, 26, 0}, "firebrick4"},
|
||||
{{255, 64, 64, 0}, "brown1"},
|
||||
{{238, 59, 59, 0}, "brown2"},
|
||||
{{205, 51, 51, 0}, "brown3"},
|
||||
{{139, 35, 35, 0}, "brown4"},
|
||||
{{255, 140, 105, 0}, "salmon1"},
|
||||
{{238, 130, 98, 0}, "salmon2"},
|
||||
{{205, 112, 84, 0}, "salmon3"},
|
||||
{{139, 76, 57, 0}, "salmon4"},
|
||||
{{255, 160, 122, 0}, "LightSalmon1"},
|
||||
{{238, 149, 114, 0}, "LightSalmon2"},
|
||||
{{205, 129, 98, 0}, "LightSalmon3"},
|
||||
{{139, 87, 66, 0}, "LightSalmon4"},
|
||||
{{255, 165, 0, 0}, "orange1"},
|
||||
{{238, 154, 0, 0}, "orange2"},
|
||||
{{205, 133, 0, 0}, "orange3"},
|
||||
{{139, 90, 0, 0}, "orange4"},
|
||||
{{255, 127, 0, 0}, "DarkOrange1"},
|
||||
{{238, 118, 0, 0}, "DarkOrange2"},
|
||||
{{205, 102, 0, 0}, "DarkOrange3"},
|
||||
{{139, 69, 0, 0}, "DarkOrange4"},
|
||||
{{255, 114, 86, 0}, "coral1"},
|
||||
{{238, 106, 80, 0}, "coral2"},
|
||||
{{205, 91, 69, 0}, "coral3"},
|
||||
{{139, 62, 47, 0}, "coral4"},
|
||||
{{255, 99, 71, 0}, "tomato1"},
|
||||
{{238, 92, 66, 0}, "tomato2"},
|
||||
{{205, 79, 57, 0}, "tomato3"},
|
||||
{{139, 54, 38, 0}, "tomato4"},
|
||||
{{255, 69, 0, 0}, "OrangeRed1"},
|
||||
{{238, 64, 0, 0}, "OrangeRed2"},
|
||||
{{205, 55, 0, 0}, "OrangeRed3"},
|
||||
{{139, 37, 0, 0}, "OrangeRed4"},
|
||||
{{255, 0, 0, 0}, "red1"},
|
||||
{{238, 0, 0, 0}, "red2"},
|
||||
{{205, 0, 0, 0}, "red3"},
|
||||
{{139, 0, 0, 0}, "red4"},
|
||||
{{255, 20, 147, 0}, "DeepPink1"},
|
||||
{{238, 18, 137, 0}, "DeepPink2"},
|
||||
{{205, 16, 118, 0}, "DeepPink3"},
|
||||
{{139, 10, 80, 0}, "DeepPink4"},
|
||||
{{255, 110, 180, 0}, "HotPink1"},
|
||||
{{238, 106, 167, 0}, "HotPink2"},
|
||||
{{205, 96, 144, 0}, "HotPink3"},
|
||||
{{139, 58, 98, 0}, "HotPink4"},
|
||||
{{255, 181, 197, 0}, "pink1"},
|
||||
{{238, 169, 184, 0}, "pink2"},
|
||||
{{205, 145, 158, 0}, "pink3"},
|
||||
{{139, 99, 108, 0}, "pink4"},
|
||||
{{255, 174, 185, 0}, "LightPink1"},
|
||||
{{238, 162, 173, 0}, "LightPink2"},
|
||||
{{205, 140, 149, 0}, "LightPink3"},
|
||||
{{139, 95, 101, 0}, "LightPink4"},
|
||||
{{255, 130, 171, 0}, "PaleVioletRed1"},
|
||||
{{238, 121, 159, 0}, "PaleVioletRed2"},
|
||||
{{205, 104, 137, 0}, "PaleVioletRed3"},
|
||||
{{139, 71, 93, 0}, "PaleVioletRed4"},
|
||||
{{255, 52, 179, 0}, "maroon1"},
|
||||
{{238, 48, 167, 0}, "maroon2"},
|
||||
{{205, 41, 144, 0}, "maroon3"},
|
||||
{{139, 28, 98, 0}, "maroon4"},
|
||||
{{255, 62, 150, 0}, "VioletRed1"},
|
||||
{{238, 58, 140, 0}, "VioletRed2"},
|
||||
{{205, 50, 120, 0}, "VioletRed3"},
|
||||
{{139, 34, 82, 0}, "VioletRed4"},
|
||||
{{255, 0, 255, 0}, "magenta1"},
|
||||
{{238, 0, 238, 0}, "magenta2"},
|
||||
{{205, 0, 205, 0}, "magenta3"},
|
||||
{{139, 0, 139, 0}, "magenta4"},
|
||||
{{255, 131, 250, 0}, "orchid1"},
|
||||
{{238, 122, 233, 0}, "orchid2"},
|
||||
{{205, 105, 201, 0}, "orchid3"},
|
||||
{{139, 71, 137, 0}, "orchid4"},
|
||||
{{255, 187, 255, 0}, "plum1"},
|
||||
{{238, 174, 238, 0}, "plum2"},
|
||||
{{205, 150, 205, 0}, "plum3"},
|
||||
{{139, 102, 139, 0}, "plum4"},
|
||||
{{224, 102, 255, 0}, "MediumOrchid1"},
|
||||
{{209, 95, 238, 0}, "MediumOrchid2"},
|
||||
{{180, 82, 205, 0}, "MediumOrchid3"},
|
||||
{{122, 55, 139, 0}, "MediumOrchid4"},
|
||||
{{191, 62, 255, 0}, "DarkOrchid1"},
|
||||
{{178, 58, 238, 0}, "DarkOrchid2"},
|
||||
{{154, 50, 205, 0}, "DarkOrchid3"},
|
||||
{{104, 34, 139, 0}, "DarkOrchid4"},
|
||||
{{155, 48, 255, 0}, "purple1"},
|
||||
{{145, 44, 238, 0}, "purple2"},
|
||||
{{125, 38, 205, 0}, "purple3"},
|
||||
{{ 85, 26, 139, 0}, "purple4"},
|
||||
{{171, 130, 255, 0}, "MediumPurple1"},
|
||||
{{159, 121, 238, 0}, "MediumPurple2"},
|
||||
{{137, 104, 205, 0}, "MediumPurple3"},
|
||||
{{ 93, 71, 139, 0}, "MediumPurple4"},
|
||||
{{255, 225, 255, 0}, "thistle1"},
|
||||
{{238, 210, 238, 0}, "thistle2"},
|
||||
{{205, 181, 205, 0}, "thistle3"},
|
||||
{{139, 123, 139, 0}, "thistle4"},
|
||||
{{ 0, 0, 0, 0}, "gray0"},
|
||||
{{ 0, 0, 0, 0}, "grey0"},
|
||||
{{ 3, 3, 3, 0}, "gray1"},
|
||||
{{ 3, 3, 3, 0}, "grey1"},
|
||||
{{ 5, 5, 5, 0}, "gray2"},
|
||||
{{ 5, 5, 5, 0}, "grey2"},
|
||||
{{ 8, 8, 8, 0}, "gray3"},
|
||||
{{ 8, 8, 8, 0}, "grey3"},
|
||||
{{ 10, 10, 10, 0}, "gray4"},
|
||||
{{ 10, 10, 10, 0}, "grey4"},
|
||||
{{ 13, 13, 13, 0}, "gray5"},
|
||||
{{ 13, 13, 13, 0}, "grey5"},
|
||||
{{ 15, 15, 15, 0}, "gray6"},
|
||||
{{ 15, 15, 15, 0}, "grey6"},
|
||||
{{ 18, 18, 18, 0}, "gray7"},
|
||||
{{ 18, 18, 18, 0}, "grey7"},
|
||||
{{ 20, 20, 20, 0}, "gray8"},
|
||||
{{ 20, 20, 20, 0}, "grey8"},
|
||||
{{ 23, 23, 23, 0}, "gray9"},
|
||||
{{ 23, 23, 23, 0}, "grey9"},
|
||||
{{ 26, 26, 26, 0}, "gray10"},
|
||||
{{ 26, 26, 26, 0}, "grey10"},
|
||||
{{ 28, 28, 28, 0}, "gray11"},
|
||||
{{ 28, 28, 28, 0}, "grey11"},
|
||||
{{ 31, 31, 31, 0}, "gray12"},
|
||||
{{ 31, 31, 31, 0}, "grey12"},
|
||||
{{ 33, 33, 33, 0}, "gray13"},
|
||||
{{ 33, 33, 33, 0}, "grey13"},
|
||||
{{ 36, 36, 36, 0}, "gray14"},
|
||||
{{ 36, 36, 36, 0}, "grey14"},
|
||||
{{ 38, 38, 38, 0}, "gray15"},
|
||||
{{ 38, 38, 38, 0}, "grey15"},
|
||||
{{ 41, 41, 41, 0}, "gray16"},
|
||||
{{ 41, 41, 41, 0}, "grey16"},
|
||||
{{ 43, 43, 43, 0}, "gray17"},
|
||||
{{ 43, 43, 43, 0}, "grey17"},
|
||||
{{ 46, 46, 46, 0}, "gray18"},
|
||||
{{ 46, 46, 46, 0}, "grey18"},
|
||||
{{ 48, 48, 48, 0}, "gray19"},
|
||||
{{ 48, 48, 48, 0}, "grey19"},
|
||||
{{ 51, 51, 51, 0}, "gray20"},
|
||||
{{ 51, 51, 51, 0}, "grey20"},
|
||||
{{ 54, 54, 54, 0}, "gray21"},
|
||||
{{ 54, 54, 54, 0}, "grey21"},
|
||||
{{ 56, 56, 56, 0}, "gray22"},
|
||||
{{ 56, 56, 56, 0}, "grey22"},
|
||||
{{ 59, 59, 59, 0}, "gray23"},
|
||||
{{ 59, 59, 59, 0}, "grey23"},
|
||||
{{ 61, 61, 61, 0}, "gray24"},
|
||||
{{ 61, 61, 61, 0}, "grey24"},
|
||||
{{ 64, 64, 64, 0}, "gray25"},
|
||||
{{ 64, 64, 64, 0}, "grey25"},
|
||||
{{ 66, 66, 66, 0}, "gray26"},
|
||||
{{ 66, 66, 66, 0}, "grey26"},
|
||||
{{ 69, 69, 69, 0}, "gray27"},
|
||||
{{ 69, 69, 69, 0}, "grey27"},
|
||||
{{ 71, 71, 71, 0}, "gray28"},
|
||||
{{ 71, 71, 71, 0}, "grey28"},
|
||||
{{ 74, 74, 74, 0}, "gray29"},
|
||||
{{ 74, 74, 74, 0}, "grey29"},
|
||||
{{ 77, 77, 77, 0}, "gray30"},
|
||||
{{ 77, 77, 77, 0}, "grey30"},
|
||||
{{ 79, 79, 79, 0}, "gray31"},
|
||||
{{ 79, 79, 79, 0}, "grey31"},
|
||||
{{ 82, 82, 82, 0}, "gray32"},
|
||||
{{ 82, 82, 82, 0}, "grey32"},
|
||||
{{ 84, 84, 84, 0}, "gray33"},
|
||||
{{ 84, 84, 84, 0}, "grey33"},
|
||||
{{ 87, 87, 87, 0}, "gray34"},
|
||||
{{ 87, 87, 87, 0}, "grey34"},
|
||||
{{ 89, 89, 89, 0}, "gray35"},
|
||||
{{ 89, 89, 89, 0}, "grey35"},
|
||||
{{ 92, 92, 92, 0}, "gray36"},
|
||||
{{ 92, 92, 92, 0}, "grey36"},
|
||||
{{ 94, 94, 94, 0}, "gray37"},
|
||||
{{ 94, 94, 94, 0}, "grey37"},
|
||||
{{ 97, 97, 97, 0}, "gray38"},
|
||||
{{ 97, 97, 97, 0}, "grey38"},
|
||||
{{ 99, 99, 99, 0}, "gray39"},
|
||||
{{ 99, 99, 99, 0}, "grey39"},
|
||||
{{102, 102, 102, 0}, "gray40"},
|
||||
{{102, 102, 102, 0}, "grey40"},
|
||||
{{105, 105, 105, 0}, "gray41"},
|
||||
{{105, 105, 105, 0}, "grey41"},
|
||||
{{107, 107, 107, 0}, "gray42"},
|
||||
{{107, 107, 107, 0}, "grey42"},
|
||||
{{110, 110, 110, 0}, "gray43"},
|
||||
{{110, 110, 110, 0}, "grey43"},
|
||||
{{112, 112, 112, 0}, "gray44"},
|
||||
{{112, 112, 112, 0}, "grey44"},
|
||||
{{115, 115, 115, 0}, "gray45"},
|
||||
{{115, 115, 115, 0}, "grey45"},
|
||||
{{117, 117, 117, 0}, "gray46"},
|
||||
{{117, 117, 117, 0}, "grey46"},
|
||||
{{120, 120, 120, 0}, "gray47"},
|
||||
{{120, 120, 120, 0}, "grey47"},
|
||||
{{122, 122, 122, 0}, "gray48"},
|
||||
{{122, 122, 122, 0}, "grey48"},
|
||||
{{125, 125, 125, 0}, "gray49"},
|
||||
{{125, 125, 125, 0}, "grey49"},
|
||||
{{127, 127, 127, 0}, "gray50"},
|
||||
{{127, 127, 127, 0}, "grey50"},
|
||||
{{130, 130, 130, 0}, "gray51"},
|
||||
{{130, 130, 130, 0}, "grey51"},
|
||||
{{133, 133, 133, 0}, "gray52"},
|
||||
{{133, 133, 133, 0}, "grey52"},
|
||||
{{135, 135, 135, 0}, "gray53"},
|
||||
{{135, 135, 135, 0}, "grey53"},
|
||||
{{138, 138, 138, 0}, "gray54"},
|
||||
{{138, 138, 138, 0}, "grey54"},
|
||||
{{140, 140, 140, 0}, "gray55"},
|
||||
{{140, 140, 140, 0}, "grey55"},
|
||||
{{143, 143, 143, 0}, "gray56"},
|
||||
{{143, 143, 143, 0}, "grey56"},
|
||||
{{145, 145, 145, 0}, "gray57"},
|
||||
{{145, 145, 145, 0}, "grey57"},
|
||||
{{148, 148, 148, 0}, "gray58"},
|
||||
{{148, 148, 148, 0}, "grey58"},
|
||||
{{150, 150, 150, 0}, "gray59"},
|
||||
{{150, 150, 150, 0}, "grey59"},
|
||||
{{153, 153, 153, 0}, "gray60"},
|
||||
{{153, 153, 153, 0}, "grey60"},
|
||||
{{156, 156, 156, 0}, "gray61"},
|
||||
{{156, 156, 156, 0}, "grey61"},
|
||||
{{158, 158, 158, 0}, "gray62"},
|
||||
{{158, 158, 158, 0}, "grey62"},
|
||||
{{161, 161, 161, 0}, "gray63"},
|
||||
{{161, 161, 161, 0}, "grey63"},
|
||||
{{163, 163, 163, 0}, "gray64"},
|
||||
{{163, 163, 163, 0}, "grey64"},
|
||||
{{166, 166, 166, 0}, "gray65"},
|
||||
{{166, 166, 166, 0}, "grey65"},
|
||||
{{168, 168, 168, 0}, "gray66"},
|
||||
{{168, 168, 168, 0}, "grey66"},
|
||||
{{171, 171, 171, 0}, "gray67"},
|
||||
{{171, 171, 171, 0}, "grey67"},
|
||||
{{173, 173, 173, 0}, "gray68"},
|
||||
{{173, 173, 173, 0}, "grey68"},
|
||||
{{176, 176, 176, 0}, "gray69"},
|
||||
{{176, 176, 176, 0}, "grey69"},
|
||||
{{179, 179, 179, 0}, "gray70"},
|
||||
{{179, 179, 179, 0}, "grey70"},
|
||||
{{181, 181, 181, 0}, "gray71"},
|
||||
{{181, 181, 181, 0}, "grey71"},
|
||||
{{184, 184, 184, 0}, "gray72"},
|
||||
{{184, 184, 184, 0}, "grey72"},
|
||||
{{186, 186, 186, 0}, "gray73"},
|
||||
{{186, 186, 186, 0}, "grey73"},
|
||||
{{189, 189, 189, 0}, "gray74"},
|
||||
{{189, 189, 189, 0}, "grey74"},
|
||||
{{191, 191, 191, 0}, "gray75"},
|
||||
{{191, 191, 191, 0}, "grey75"},
|
||||
{{194, 194, 194, 0}, "gray76"},
|
||||
{{194, 194, 194, 0}, "grey76"},
|
||||
{{196, 196, 196, 0}, "gray77"},
|
||||
{{196, 196, 196, 0}, "grey77"},
|
||||
{{199, 199, 199, 0}, "gray78"},
|
||||
{{199, 199, 199, 0}, "grey78"},
|
||||
{{201, 201, 201, 0}, "gray79"},
|
||||
{{201, 201, 201, 0}, "grey79"},
|
||||
{{204, 204, 204, 0}, "gray80"},
|
||||
{{204, 204, 204, 0}, "grey80"},
|
||||
{{207, 207, 207, 0}, "gray81"},
|
||||
{{207, 207, 207, 0}, "grey81"},
|
||||
{{209, 209, 209, 0}, "gray82"},
|
||||
{{209, 209, 209, 0}, "grey82"},
|
||||
{{212, 212, 212, 0}, "gray83"},
|
||||
{{212, 212, 212, 0}, "grey83"},
|
||||
{{214, 214, 214, 0}, "gray84"},
|
||||
{{214, 214, 214, 0}, "grey84"},
|
||||
{{217, 217, 217, 0}, "gray85"},
|
||||
{{217, 217, 217, 0}, "grey85"},
|
||||
{{219, 219, 219, 0}, "gray86"},
|
||||
{{219, 219, 219, 0}, "grey86"},
|
||||
{{222, 222, 222, 0}, "gray87"},
|
||||
{{222, 222, 222, 0}, "grey87"},
|
||||
{{224, 224, 224, 0}, "gray88"},
|
||||
{{224, 224, 224, 0}, "grey88"},
|
||||
{{227, 227, 227, 0}, "gray89"},
|
||||
{{227, 227, 227, 0}, "grey89"},
|
||||
{{229, 229, 229, 0}, "gray90"},
|
||||
{{229, 229, 229, 0}, "grey90"},
|
||||
{{232, 232, 232, 0}, "gray91"},
|
||||
{{232, 232, 232, 0}, "grey91"},
|
||||
{{235, 235, 235, 0}, "gray92"},
|
||||
{{235, 235, 235, 0}, "grey92"},
|
||||
{{237, 237, 237, 0}, "gray93"},
|
||||
{{237, 237, 237, 0}, "grey93"},
|
||||
{{240, 240, 240, 0}, "gray94"},
|
||||
{{240, 240, 240, 0}, "grey94"},
|
||||
{{242, 242, 242, 0}, "gray95"},
|
||||
{{242, 242, 242, 0}, "grey95"},
|
||||
{{245, 245, 245, 0}, "gray96"},
|
||||
{{245, 245, 245, 0}, "grey96"},
|
||||
{{247, 247, 247, 0}, "gray97"},
|
||||
{{247, 247, 247, 0}, "grey97"},
|
||||
{{250, 250, 250, 0}, "gray98"},
|
||||
{{250, 250, 250, 0}, "grey98"},
|
||||
{{252, 252, 252, 0}, "gray99"},
|
||||
{{252, 252, 252, 0}, "grey99"},
|
||||
{{255, 255, 255, 0}, "gray100"},
|
||||
{{255, 255, 255, 0}, "grey100"},
|
||||
{{169, 169, 169, 0}, "dark"},
|
||||
{{169, 169, 169, 0}, "DarkGrey"},
|
||||
{{169, 169, 169, 0}, "dark"},
|
||||
{{169, 169, 169, 0}, "DarkGray"},
|
||||
{{ 0, 0, 139, 0}, "dark"},
|
||||
{{ 0, 0, 139, 0}, "DarkBlue"},
|
||||
{{ 0, 139, 139, 0}, "dark"},
|
||||
{{ 0, 139, 139, 0}, "DarkCyan"},
|
||||
{{139, 0, 139, 0}, "dark"},
|
||||
{{139, 0, 139, 0}, "DarkMagenta"},
|
||||
{{139, 0, 0, 0}, "dark"},
|
||||
{{139, 0, 0, 0}, "DarkRed"},
|
||||
{{144, 238, 144, 0}, "light"},
|
||||
{{144, 238, 144, 0}, "LightGreen"},
|
||||
{{ 0, 0, 0, 0}, NULL}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <X11/Xatom.h>
|
||||
@@ -8,10 +7,8 @@
|
||||
|
||||
#define MAX_PROPERTY_SIZE 8*1024
|
||||
|
||||
|
||||
char *WMSelectionOwnerDidChangeNotification = "WMSelectionOwnerDidChange";
|
||||
|
||||
|
||||
typedef struct SelectionHandler {
|
||||
WMView *view;
|
||||
Atom selection;
|
||||
@@ -25,7 +22,6 @@ typedef struct SelectionHandler {
|
||||
} flags;
|
||||
} SelectionHandler;
|
||||
|
||||
|
||||
typedef struct SelectionCallback {
|
||||
WMView *view;
|
||||
Atom selection;
|
||||
@@ -40,19 +36,13 @@ typedef struct SelectionCallback {
|
||||
} flags;
|
||||
} SelectionCallback;
|
||||
|
||||
|
||||
|
||||
static WMArray *selCallbacks = NULL;
|
||||
|
||||
static WMArray *selHandlers = NULL;
|
||||
|
||||
static Bool gotXError = False;
|
||||
|
||||
|
||||
|
||||
|
||||
void
|
||||
WMDeleteSelectionHandler(WMView *view, Atom selection, Time timestamp)
|
||||
void WMDeleteSelectionHandler(WMView * view, Atom selection, Time timestamp)
|
||||
{
|
||||
SelectionHandler *handler;
|
||||
Display *dpy = W_VIEW_SCREEN(view)->display;
|
||||
@@ -65,8 +55,7 @@ WMDeleteSelectionHandler(WMView *view, Atom selection, Time timestamp)
|
||||
/*//printf("deleting selection handler for %d", win); */
|
||||
|
||||
WM_ITERATE_ARRAY(selHandlers, handler, iter) {
|
||||
if (handler->view == view
|
||||
&& (handler->selection == selection || selection == None)
|
||||
if (handler->view == view && (handler->selection == selection || selection == None)
|
||||
&& (handler->timestamp == timestamp || timestamp == CurrentTime)) {
|
||||
|
||||
if (handler->flags.done_pending) {
|
||||
@@ -89,10 +78,7 @@ WMDeleteSelectionHandler(WMView *view, Atom selection, Time timestamp)
|
||||
XUngrabServer(dpy);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
WMDeleteSelectionCallback(WMView *view, Atom selection, Time timestamp)
|
||||
void WMDeleteSelectionCallback(WMView * view, Atom selection, Time timestamp)
|
||||
{
|
||||
SelectionCallback *handler;
|
||||
WMArrayIterator iter;
|
||||
@@ -101,8 +87,7 @@ WMDeleteSelectionCallback(WMView *view, Atom selection, Time timestamp)
|
||||
return;
|
||||
|
||||
WM_ITERATE_ARRAY(selCallbacks, handler, iter) {
|
||||
if (handler->view == view
|
||||
&& (handler->selection == selection || selection == None)
|
||||
if (handler->view == view && (handler->selection == selection || selection == None)
|
||||
&& (handler->timestamp == timestamp || timestamp == CurrentTime)) {
|
||||
|
||||
if (handler->flags.done_pending) {
|
||||
@@ -115,19 +100,14 @@ WMDeleteSelectionCallback(WMView *view, Atom selection, Time timestamp)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
handleXError(Display *dpy, XErrorEvent *ev)
|
||||
static int handleXError(Display * dpy, XErrorEvent * ev)
|
||||
{
|
||||
gotXError = True;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static Bool
|
||||
writeSelection(Display *dpy, Window requestor, Atom property, Atom type,
|
||||
WMData *data)
|
||||
static Bool writeSelection(Display * dpy, Window requestor, Atom property, Atom type, WMData * data)
|
||||
{
|
||||
static void *oldHandler;
|
||||
int format, bpi;
|
||||
@@ -154,9 +134,7 @@ writeSelection(Display *dpy, Window requestor, Atom property, Atom type,
|
||||
return !gotXError;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
notifySelection(XEvent *event, Atom prop)
|
||||
static void notifySelection(XEvent * event, Atom prop)
|
||||
{
|
||||
XEvent ev;
|
||||
|
||||
@@ -172,14 +150,11 @@ notifySelection(XEvent *event, Atom prop)
|
||||
ev.xselection.property = prop;
|
||||
ev.xselection.time = event->xselectionrequest.time;
|
||||
|
||||
XSendEvent(event->xany.display, event->xselectionrequest.requestor,
|
||||
False, 0, &ev);
|
||||
XSendEvent(event->xany.display, event->xselectionrequest.requestor, False, 0, &ev);
|
||||
XFlush(event->xany.display);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
handleRequestEvent(XEvent *event)
|
||||
static void handleRequestEvent(XEvent * event)
|
||||
{
|
||||
SelectionHandler *handler;
|
||||
WMArrayIterator iter;
|
||||
@@ -197,9 +172,7 @@ handleRequestEvent(XEvent *event)
|
||||
|
||||
handler->flags.done_pending = 1;
|
||||
if (handler->procs.selectionLost)
|
||||
handler->procs.selectionLost(handler->view,
|
||||
handler->selection,
|
||||
handler->data);
|
||||
handler->procs.selectionLost(handler->view, handler->selection, handler->data);
|
||||
handler->flags.done_pending = 0;
|
||||
handler->flags.delete_pending = 1;
|
||||
break;
|
||||
@@ -229,8 +202,7 @@ handleRequestEvent(XEvent *event)
|
||||
data = handler->procs.convertSelection(handler->view,
|
||||
handler->selection,
|
||||
event->xselectionrequest.target,
|
||||
handler->data,
|
||||
&atom);
|
||||
handler->data, &atom);
|
||||
|
||||
prop = event->xselectionrequest.property;
|
||||
/* obsolete clients that don't set the property field */
|
||||
@@ -239,8 +211,7 @@ handleRequestEvent(XEvent *event)
|
||||
|
||||
if (data) {
|
||||
if (writeSelection(event->xselectionrequest.display,
|
||||
event->xselectionrequest.requestor,
|
||||
prop, atom, data)) {
|
||||
event->xselectionrequest.requestor, prop, atom, data)) {
|
||||
handledRequest = True;
|
||||
}
|
||||
WMReleaseData(data);
|
||||
@@ -265,27 +236,22 @@ handleRequestEvent(XEvent *event)
|
||||
copy = WMDuplicateArray(selHandlers);
|
||||
WM_ITERATE_ARRAY(copy, handler, iter) {
|
||||
if (handler && handler->flags.delete_pending) {
|
||||
WMDeleteSelectionHandler(handler->view, handler->selection,
|
||||
handler->timestamp);
|
||||
WMDeleteSelectionHandler(handler->view, handler->selection, handler->timestamp);
|
||||
}
|
||||
}
|
||||
WMFreeArray(copy);
|
||||
}
|
||||
|
||||
|
||||
static WMData*
|
||||
getSelectionData(Display *dpy, Window win, Atom where)
|
||||
static WMData *getSelectionData(Display * dpy, Window win, Atom where)
|
||||
{
|
||||
WMData *wdata;
|
||||
unsigned char *data;
|
||||
Atom rtype;
|
||||
unsigned bits, bpi;
|
||||
int bits, bpi;
|
||||
unsigned long len, bytes;
|
||||
|
||||
|
||||
if (XGetWindowProperty(dpy, win, where, 0, MAX_PROPERTY_SIZE,
|
||||
False, AnyPropertyType, &rtype, &bits, &len,
|
||||
&bytes, &data)!=Success) {
|
||||
False, AnyPropertyType, &rtype, &bits, &len, &bytes, &data) != Success) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -297,9 +263,7 @@ getSelectionData(Display *dpy, Window win, Atom where)
|
||||
return wdata;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
handleNotifyEvent(XEvent *event)
|
||||
static void handleNotifyEvent(XEvent * event)
|
||||
{
|
||||
SelectionCallback *handler;
|
||||
WMArrayIterator iter;
|
||||
@@ -318,13 +282,11 @@ handleNotifyEvent(XEvent *event)
|
||||
data = NULL;
|
||||
} else {
|
||||
data = getSelectionData(event->xselection.display,
|
||||
event->xselection.requestor,
|
||||
event->xselection.property);
|
||||
event->xselection.requestor, event->xselection.property);
|
||||
}
|
||||
|
||||
(*handler->callback) (handler->view, handler->selection,
|
||||
handler->target, handler->timestamp,
|
||||
handler->data, data);
|
||||
handler->target, handler->timestamp, handler->data, data);
|
||||
|
||||
if (data != NULL) {
|
||||
WMReleaseData(data);
|
||||
@@ -337,17 +299,13 @@ handleNotifyEvent(XEvent *event)
|
||||
copy = WMDuplicateArray(selCallbacks);
|
||||
WM_ITERATE_ARRAY(copy, handler, iter) {
|
||||
if (handler && handler->flags.delete_pending) {
|
||||
WMDeleteSelectionCallback(handler->view, handler->selection,
|
||||
handler->timestamp);
|
||||
WMDeleteSelectionCallback(handler->view, handler->selection, handler->timestamp);
|
||||
}
|
||||
}
|
||||
WMFreeArray(copy);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
W_HandleSelectionEvent(XEvent *event)
|
||||
void W_HandleSelectionEvent(XEvent * event)
|
||||
{
|
||||
/*//printf("%d received selection ", event->xany.window); */
|
||||
/*//switch(event->type) {
|
||||
@@ -368,11 +326,7 @@ W_HandleSelectionEvent(XEvent *event)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Bool
|
||||
WMCreateSelectionHandler(WMView *view, Atom selection, Time timestamp,
|
||||
WMSelectionProcs *procs, void *cdata)
|
||||
Bool WMCreateSelectionHandler(WMView * view, Atom selection, Time timestamp, WMSelectionProcs * procs, void *cdata)
|
||||
{
|
||||
SelectionHandler *handler;
|
||||
Display *dpy = W_VIEW_SCREEN(view)->display;
|
||||
@@ -382,8 +336,7 @@ WMCreateSelectionHandler(WMView *view, Atom selection, Time timestamp,
|
||||
return False;
|
||||
}
|
||||
|
||||
WMPostNotificationName(WMSelectionOwnerDidChangeNotification,
|
||||
(void*)selection, (void*)view);
|
||||
WMPostNotificationName(WMSelectionOwnerDidChangeNotification, (void *)selection, (void *)view);
|
||||
|
||||
/*//printf("created selection handler for %d\n", W_VIEW_DRAWABLE(view)); */
|
||||
|
||||
@@ -405,8 +358,6 @@ WMCreateSelectionHandler(WMView *view, Atom selection, Time timestamp,
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Bool
|
||||
WMRequestSelection(WMView * view, Atom selection, Atom target, Time timestamp,
|
||||
WMSelectionCallback * callback, void *cdata)
|
||||
@@ -417,8 +368,7 @@ WMRequestSelection(WMView *view, Atom selection, Atom target, Time timestamp,
|
||||
return False;
|
||||
|
||||
if (!XConvertSelection(W_VIEW_SCREEN(view)->display, selection, target,
|
||||
W_VIEW_SCREEN(view)->clipboardAtom,
|
||||
W_VIEW_DRAWABLE(view), timestamp)) {
|
||||
W_VIEW_SCREEN(view)->clipboardAtom, W_VIEW_DRAWABLE(view), timestamp)) {
|
||||
return False;
|
||||
}
|
||||
|
||||
@@ -440,4 +390,3 @@ WMRequestSelection(WMView *view, Atom selection, Atom target, Time timestamp,
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,9 @@
|
||||
/* only include stdio.h if we are not re-defining snprintf or vsnprintf */
|
||||
#include <stdio.h>
|
||||
/* make the compiler happy with an empty file */
|
||||
void dummy_snprintf(void) {}
|
||||
void dummy_snprintf(void)
|
||||
{
|
||||
}
|
||||
#else
|
||||
|
||||
#ifdef HAVE_LONG_DOUBLE
|
||||
@@ -94,14 +96,11 @@ void dummy_snprintf(void) {}
|
||||
#define LLONG long
|
||||
#endif
|
||||
|
||||
static size_t dopr(char *buffer, size_t maxlen, const char *format,
|
||||
va_list args);
|
||||
static void fmtstr(char *buffer, size_t *currlen, size_t maxlen,
|
||||
char *value, int flags, int min, int max);
|
||||
static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args);
|
||||
static void fmtstr(char *buffer, size_t * currlen, size_t maxlen, char *value, int flags, int min, int max);
|
||||
static void fmtint(char *buffer, size_t * currlen, size_t maxlen,
|
||||
long value, int base, int min, int max, int flags);
|
||||
static void fmtfp(char *buffer, size_t *currlen, size_t maxlen,
|
||||
LDOUBLE fvalue, int min, int max, int flags);
|
||||
static void fmtfp(char *buffer, size_t * currlen, size_t maxlen, LDOUBLE fvalue, int min, int max, int flags);
|
||||
static void dopr_outch(char *buffer, size_t * currlen, size_t maxlen, char c);
|
||||
|
||||
/*
|
||||
@@ -336,7 +335,8 @@ static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args
|
||||
if (max == -1) {
|
||||
max = strlen(strvalue);
|
||||
}
|
||||
if (min > 0 && max >= 0 && min > max) max = min;
|
||||
if (min > 0 && max >= 0 && min > max)
|
||||
max = min;
|
||||
fmtstr(buffer, &currlen, maxlen, strvalue, flags, min, max);
|
||||
break;
|
||||
case 'p':
|
||||
@@ -395,8 +395,7 @@ static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args
|
||||
return currlen;
|
||||
}
|
||||
|
||||
static void fmtstr(char *buffer, size_t *currlen, size_t maxlen,
|
||||
char *value, int flags, int min, int max)
|
||||
static void fmtstr(char *buffer, size_t * currlen, size_t maxlen, char *value, int flags, int min, int max)
|
||||
{
|
||||
int padlen, strln; /* amount to pad */
|
||||
int cnt = 0;
|
||||
@@ -461,21 +460,24 @@ static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
|
||||
}
|
||||
}
|
||||
|
||||
if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */
|
||||
if (flags & DP_F_UP)
|
||||
caps = 1; /* Should characters be upper case? */
|
||||
|
||||
do {
|
||||
convert[place++] =
|
||||
(caps? "0123456789ABCDEF":"0123456789abcdef")
|
||||
convert[place++] = (caps ? "0123456789ABCDEF" : "0123456789abcdef")
|
||||
[uvalue % (unsigned)base];
|
||||
uvalue = (uvalue / (unsigned)base);
|
||||
} while (uvalue && (place < 20));
|
||||
if (place == 20) place--;
|
||||
if (place == 20)
|
||||
place--;
|
||||
convert[place] = 0;
|
||||
|
||||
zpadlen = max - place;
|
||||
spadlen = min - MAX(max, place) - (signvalue ? 1 : 0);
|
||||
if (zpadlen < 0) zpadlen = 0;
|
||||
if (spadlen < 0) spadlen = 0;
|
||||
if (zpadlen < 0)
|
||||
zpadlen = 0;
|
||||
if (spadlen < 0)
|
||||
spadlen = 0;
|
||||
if (flags & DP_F_ZERO) {
|
||||
zpadlen = MAX(zpadlen, spadlen);
|
||||
spadlen = 0;
|
||||
@@ -484,8 +486,7 @@ static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
|
||||
spadlen = -spadlen; /* Left Justifty */
|
||||
|
||||
#ifdef DEBUG_SNPRINTF
|
||||
printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n",
|
||||
zpadlen, spadlen, min, max, place);
|
||||
printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n", zpadlen, spadlen, min, max, place);
|
||||
#endif
|
||||
|
||||
/* Spaces */
|
||||
@@ -545,7 +546,8 @@ static LLONG ROUND(LDOUBLE value)
|
||||
|
||||
intpart = (LLONG) value;
|
||||
value = value - intpart;
|
||||
if (value >= 0.5) intpart++;
|
||||
if (value >= 0.5)
|
||||
intpart++;
|
||||
|
||||
return intpart;
|
||||
}
|
||||
@@ -561,7 +563,8 @@ static double my_modf(double x0, double *iptr)
|
||||
|
||||
for (i = 0; i < 100; i++) {
|
||||
l = (long)x;
|
||||
if (l <= (x+1) && l >= (x-1)) break;
|
||||
if (l <= (x + 1) && l >= (x - 1))
|
||||
break;
|
||||
x *= 0.1;
|
||||
f *= 10.0;
|
||||
}
|
||||
@@ -585,9 +588,7 @@ static double my_modf(double x0, double *iptr)
|
||||
return x - (*iptr);
|
||||
}
|
||||
|
||||
|
||||
static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
LDOUBLE fvalue, int min, int max, int flags)
|
||||
static void fmtfp(char *buffer, size_t * currlen, size_t maxlen, LDOUBLE fvalue, int min, int max, int flags)
|
||||
{
|
||||
int signvalue = 0;
|
||||
double ufvalue;
|
||||
@@ -624,11 +625,13 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */
|
||||
if (flags & DP_F_UP)
|
||||
caps = 1; /* Should characters be upper case? */
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
if (max == 0) ufvalue += 0.5; /* if max = 0 we must round */
|
||||
if (max == 0)
|
||||
ufvalue += 0.5; /* if max = 0 we must round */
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -652,7 +655,6 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
fracpart -= POW10(max);
|
||||
}
|
||||
|
||||
|
||||
/* Convert integer part */
|
||||
do {
|
||||
temp = intpart;
|
||||
@@ -661,15 +663,14 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
index = (int)((temp - intpart + 0.05) * 10.0);
|
||||
/* index = (int) (((double)(temp*0.1) -intpart +0.05) *10.0); */
|
||||
/* printf ("%llf, %f, %x\n", temp, intpart, index); */
|
||||
iconvert[iplace++] =
|
||||
(caps? "0123456789ABCDEF":"0123456789abcdef")[index];
|
||||
iconvert[iplace++] = (caps ? "0123456789ABCDEF" : "0123456789abcdef")[index];
|
||||
} while (intpart && (iplace < 311));
|
||||
if (iplace == 311) iplace--;
|
||||
if (iplace == 311)
|
||||
iplace--;
|
||||
iconvert[iplace] = 0;
|
||||
|
||||
/* Convert fractional part */
|
||||
if (fracpart)
|
||||
{
|
||||
if (fracpart) {
|
||||
do {
|
||||
temp = fracpart;
|
||||
my_modf(fracpart * 0.1, &fracpart);
|
||||
@@ -677,17 +678,18 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
index = (int)((temp - fracpart + 0.05) * 10.0);
|
||||
/* index = (int) ((((temp/10) -fracpart) +0.05) *10); */
|
||||
/* printf ("%lf, %lf, %ld\n", temp, fracpart, index); */
|
||||
fconvert[fplace++] =
|
||||
(caps? "0123456789ABCDEF":"0123456789abcdef")[index];
|
||||
fconvert[fplace++] = (caps ? "0123456789ABCDEF" : "0123456789abcdef")[index];
|
||||
} while (fracpart && (fplace < 311));
|
||||
if (fplace == 311) fplace--;
|
||||
if (fplace == 311)
|
||||
fplace--;
|
||||
}
|
||||
fconvert[fplace] = 0;
|
||||
|
||||
/* -1 for decimal point, another -1 if we are printing a sign */
|
||||
padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0);
|
||||
zpadlen = max - fplace;
|
||||
if (zpadlen < 0) zpadlen = 0;
|
||||
if (zpadlen < 0)
|
||||
zpadlen = 0;
|
||||
if (padlen < 0)
|
||||
padlen = 0;
|
||||
if (flags & DP_F_MINUS)
|
||||
@@ -776,17 +778,18 @@ int vasprintf(char **ptr, const char *format, va_list ap)
|
||||
int ret;
|
||||
|
||||
ret = vsnprintf(NULL, 0, format, ap);
|
||||
if (ret <= 0) return ret;
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
|
||||
(*ptr) = (char *)malloc(ret + 1);
|
||||
if (!*ptr) return -1;
|
||||
if (!*ptr)
|
||||
return -1;
|
||||
ret = vsnprintf(*ptr, ret + 1, format, ap);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_ASPRINTF
|
||||
int asprintf(char **ptr, const char *format, ...)
|
||||
{
|
||||
@@ -828,7 +831,8 @@ int main (void)
|
||||
NULL
|
||||
};
|
||||
double fp_nums[] = { 6442452944.1234, -1.5, 134.21, 91340.2, 341.1234, 0203.9, 0.96, 0.996,
|
||||
0.9996, 1.996, 4.136, 0};
|
||||
0.9996, 1.996, 4.136, 0
|
||||
};
|
||||
char *int_fmt[] = {
|
||||
"%-1.5d",
|
||||
"%1.5d",
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
|
||||
#define PRC_ALPHA 0
|
||||
#define PRC_BLANK 1
|
||||
#define PRC_ESCAPE 2
|
||||
@@ -21,7 +19,6 @@ typedef struct {
|
||||
short output;
|
||||
} DFA;
|
||||
|
||||
|
||||
static DFA mtable[9][6] = {
|
||||
{{3, 1}, {0, 0}, {4, 0}, {1, 0}, {8, 0}, {6, 0}},
|
||||
{{1, 1}, {1, 1}, {2, 0}, {3, 0}, {5, 0}, {1, 1}},
|
||||
@@ -34,8 +31,7 @@ static DFA mtable[9][6] = {
|
||||
{{-1, -1}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, /* final state */
|
||||
};
|
||||
|
||||
char*
|
||||
wtokennext(char *word, char **next)
|
||||
char *wtokennext(char *word, char **next)
|
||||
{
|
||||
char *ptr;
|
||||
char *ret, *t;
|
||||
@@ -61,7 +57,8 @@ wtokennext(char *word, char **next)
|
||||
ctype = PRC_ALPHA;
|
||||
|
||||
if (mtable[state][ctype].output) {
|
||||
*t = *ptr; t++;
|
||||
*t = *ptr;
|
||||
t++;
|
||||
*t = 0;
|
||||
}
|
||||
state = mtable[state][ctype].nstate;
|
||||
@@ -86,10 +83,8 @@ wtokennext(char *word, char **next)
|
||||
return t;
|
||||
}
|
||||
|
||||
|
||||
/* separate a string in tokens, taking " and ' into account */
|
||||
void
|
||||
wtokensplit(char *command, char ***argv, int *argc)
|
||||
void wtokensplit(char *command, char ***argv, int *argc)
|
||||
{
|
||||
char *token, *line;
|
||||
int count;
|
||||
@@ -110,12 +105,7 @@ wtokensplit(char *command, char ***argv, int *argc)
|
||||
*argc = count;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
char*
|
||||
wtokenjoin(char **list, int count)
|
||||
char *wtokenjoin(char **list, int count)
|
||||
{
|
||||
int i, j;
|
||||
char *flat_string, *wspace;
|
||||
@@ -148,26 +138,23 @@ wtokenjoin(char **list, int count)
|
||||
return flat_string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
wtokenfree(char **tokens, int count)
|
||||
void wtokenfree(char **tokens, int count)
|
||||
{
|
||||
while (--count) wfree(tokens[count]);
|
||||
while (count--)
|
||||
wfree(tokens[count]);
|
||||
wfree(tokens);
|
||||
}
|
||||
|
||||
|
||||
|
||||
char*
|
||||
wtrimspace(char *s)
|
||||
char *wtrimspace(char *s)
|
||||
{
|
||||
char *t;
|
||||
char *c;
|
||||
|
||||
while (isspace(*s) && *s) s++;
|
||||
while (isspace(*s) && *s)
|
||||
s++;
|
||||
t = s + strlen(s) - 1;
|
||||
while (t > s && isspace(*t)) t--;
|
||||
while (t > s && isspace(*t))
|
||||
t--;
|
||||
|
||||
c = wmalloc(t - s + 2);
|
||||
memcpy(c, s, t - s + 1);
|
||||
@@ -176,18 +163,14 @@ wtrimspace(char *s)
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
wstrdup(char *str)
|
||||
char *wstrdup(char *str)
|
||||
{
|
||||
assert(str != NULL);
|
||||
|
||||
return strcpy(wmalloc(strlen(str) + 1), str);
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
wstrndup(char *str, size_t len)
|
||||
char *wstrndup(char *str, size_t len)
|
||||
{
|
||||
char *copy;
|
||||
|
||||
@@ -200,9 +183,7 @@ wstrndup(char *str, size_t len)
|
||||
return copy;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
wstrconcat(char *str1, char *str2)
|
||||
char *wstrconcat(char *str1, char *str2)
|
||||
{
|
||||
char *str;
|
||||
|
||||
@@ -218,9 +199,7 @@ wstrconcat(char *str1, char *str2)
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
wstrappend(char *dst, char *src)
|
||||
char *wstrappend(char *dst, char *src)
|
||||
{
|
||||
if (!dst)
|
||||
return wstrdup(src);
|
||||
@@ -233,10 +212,8 @@ wstrappend(char *dst, char *src)
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
#ifndef HAVE_STRCASECMP
|
||||
int
|
||||
strcasecmp(const char *s1, const char *s2)
|
||||
int strcasecmp(const char *s1, const char *s2)
|
||||
{
|
||||
while (*s1 && *s2 && (tolower(*s1) == tolower(*s2))) {
|
||||
s1++;
|
||||
@@ -246,5 +223,3 @@ strcasecmp(const char *s1, const char *s2)
|
||||
return (tolower(*s1) - tolower(*s2));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
83
WINGs/tree.c
83
WINGs/tree.c
@@ -1,11 +1,8 @@
|
||||
|
||||
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "WUtil.h"
|
||||
|
||||
|
||||
typedef struct W_TreeNode {
|
||||
void *data;
|
||||
|
||||
@@ -20,11 +17,7 @@ typedef struct W_TreeNode {
|
||||
WMFreeDataProc *destructor;
|
||||
} W_TreeNode;
|
||||
|
||||
|
||||
|
||||
|
||||
void
|
||||
destroyNode(void *data)
|
||||
void destroyNode(void *data)
|
||||
{
|
||||
WMTreeNode *aNode = (WMTreeNode *) data;
|
||||
|
||||
@@ -37,16 +30,12 @@ destroyNode(void *data)
|
||||
wfree(aNode);
|
||||
}
|
||||
|
||||
|
||||
WMTreeNode*
|
||||
WMCreateTreeNode(void *data)
|
||||
WMTreeNode *WMCreateTreeNode(void *data)
|
||||
{
|
||||
return WMCreateTreeNodeWithDestructor(data, NULL);
|
||||
}
|
||||
|
||||
|
||||
WMTreeNode*
|
||||
WMCreateTreeNodeWithDestructor(void *data, WMFreeDataProc *destructor)
|
||||
WMTreeNode *WMCreateTreeNodeWithDestructor(void *data, WMFreeDataProc * destructor)
|
||||
{
|
||||
WMTreeNode *aNode;
|
||||
|
||||
@@ -64,9 +53,7 @@ WMCreateTreeNodeWithDestructor(void *data, WMFreeDataProc *destructor)
|
||||
return aNode;
|
||||
}
|
||||
|
||||
|
||||
WMTreeNode*
|
||||
WMInsertItemInTree(WMTreeNode *parent, int index, void *item)
|
||||
WMTreeNode *WMInsertItemInTree(WMTreeNode * parent, int index, void *item)
|
||||
{
|
||||
WMTreeNode *aNode;
|
||||
|
||||
@@ -87,9 +74,7 @@ WMInsertItemInTree(WMTreeNode *parent, int index, void *item)
|
||||
return aNode;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
updateNodeDepth(WMTreeNode *aNode, int depth)
|
||||
static void updateNodeDepth(WMTreeNode * aNode, int depth)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -102,9 +87,7 @@ updateNodeDepth(WMTreeNode *aNode, int depth)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WMTreeNode*
|
||||
WMInsertNodeInTree(WMTreeNode *parent, int index, WMTreeNode *aNode)
|
||||
WMTreeNode *WMInsertNodeInTree(WMTreeNode * parent, int index, WMTreeNode * aNode)
|
||||
{
|
||||
wassertrv(parent != NULL, NULL);
|
||||
wassertrv(aNode != NULL, NULL);
|
||||
@@ -123,9 +106,7 @@ WMInsertNodeInTree(WMTreeNode *parent, int index, WMTreeNode *aNode)
|
||||
return aNode;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMDestroyTreeNode(WMTreeNode *aNode)
|
||||
void WMDestroyTreeNode(WMTreeNode * aNode)
|
||||
{
|
||||
wassertr(aNode != NULL);
|
||||
|
||||
@@ -136,9 +117,7 @@ WMDestroyTreeNode(WMTreeNode *aNode)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMDeleteLeafForTreeNode(WMTreeNode *aNode, int index)
|
||||
void WMDeleteLeafForTreeNode(WMTreeNode * aNode, int index)
|
||||
{
|
||||
wassertr(aNode != NULL);
|
||||
wassertr(aNode->leaves != NULL);
|
||||
@@ -146,16 +125,12 @@ WMDeleteLeafForTreeNode(WMTreeNode *aNode, int index)
|
||||
WMDeleteFromArray(aNode->leaves, index);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
sameData(void *item, void *data)
|
||||
static int sameData(void *item, void *data)
|
||||
{
|
||||
return (((WMTreeNode *) item)->data == data);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMRemoveLeafForTreeNode(WMTreeNode *aNode, void *leaf)
|
||||
void WMRemoveLeafForTreeNode(WMTreeNode * aNode, void *leaf)
|
||||
{
|
||||
int index;
|
||||
|
||||
@@ -168,9 +143,7 @@ WMRemoveLeafForTreeNode(WMTreeNode *aNode, void *leaf)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMReplaceDataForTreeNode(WMTreeNode *aNode, void *newData)
|
||||
void *WMReplaceDataForTreeNode(WMTreeNode * aNode, void *newData)
|
||||
{
|
||||
void *old;
|
||||
|
||||
@@ -182,30 +155,22 @@ WMReplaceDataForTreeNode(WMTreeNode *aNode, void *newData)
|
||||
return old;
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMGetDataForTreeNode(WMTreeNode *aNode)
|
||||
void *WMGetDataForTreeNode(WMTreeNode * aNode)
|
||||
{
|
||||
return aNode->data;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetTreeNodeDepth(WMTreeNode *aNode)
|
||||
int WMGetTreeNodeDepth(WMTreeNode * aNode)
|
||||
{
|
||||
return aNode->depth;
|
||||
}
|
||||
|
||||
|
||||
WMTreeNode*
|
||||
WMGetParentForTreeNode(WMTreeNode *aNode)
|
||||
WMTreeNode *WMGetParentForTreeNode(WMTreeNode * aNode)
|
||||
{
|
||||
return aNode->parent;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSortLeavesForTreeNode(WMTreeNode *aNode, WMCompareDataProc *comparer)
|
||||
void WMSortLeavesForTreeNode(WMTreeNode * aNode, WMCompareDataProc * comparer)
|
||||
{
|
||||
wassertr(aNode != NULL);
|
||||
|
||||
@@ -214,9 +179,7 @@ WMSortLeavesForTreeNode(WMTreeNode *aNode, WMCompareDataProc *comparer)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
sortLeavesForNode(WMTreeNode *aNode, WMCompareDataProc *comparer)
|
||||
static void sortLeavesForNode(WMTreeNode * aNode, WMCompareDataProc * comparer)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -229,18 +192,14 @@ sortLeavesForNode(WMTreeNode *aNode, WMCompareDataProc *comparer)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSortTree(WMTreeNode *aNode, WMCompareDataProc *comparer)
|
||||
void WMSortTree(WMTreeNode * aNode, WMCompareDataProc * comparer)
|
||||
{
|
||||
wassertr(aNode != NULL);
|
||||
|
||||
sortLeavesForNode(aNode, comparer);
|
||||
}
|
||||
|
||||
|
||||
static WMTreeNode*
|
||||
findNodeInTree(WMTreeNode *aNode, WMMatchDataProc *match, void *cdata)
|
||||
static WMTreeNode *findNodeInTree(WMTreeNode * aNode, WMMatchDataProc * match, void *cdata)
|
||||
{
|
||||
if (match == NULL) {
|
||||
if (aNode->data == cdata) {
|
||||
@@ -267,13 +226,9 @@ findNodeInTree(WMTreeNode *aNode, WMMatchDataProc *match, void *cdata)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
WMTreeNode*
|
||||
WMFindInTree(WMTreeNode *aTree, WMMatchDataProc *match, void *cdata)
|
||||
WMTreeNode *WMFindInTree(WMTreeNode * aTree, WMMatchDataProc * match, void *cdata)
|
||||
{
|
||||
wassertrv(aTree != NULL, NULL);
|
||||
|
||||
return findNodeInTree(aTree, match, cdata);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user