From e7495baff72166ad37010259e04c0a272d0898e8 Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 17 Feb 1999 11:06:40 +0000 Subject: [PATCH] 0.51.1 pre snapshot. Be careful, it may be buggy. It fixes some bugs though. --- AUTHORS | 9 +- BUGFORM | 2 +- BUGS | 2 - COPYING.OPL | 91 + ChangeLog | 39 + FAQ | 22 +- INSTALL | 61 +- Install | 11 +- MIRRORS | 8 + Makefile.am | 18 +- Makefile.in | 24 +- NEWS | 28 + README | 21 +- README.KDE | 10 +- TODO | 2 +- WINGs/ChangeLog | 15 + WINGs/Makefile.am | 17 +- WINGs/Makefile.in | 42 +- WINGs/Resources/Makefile.in | 4 +- WINGs/WINGs.h | 35 +- WINGs/WINGsP.h | 50 +- WINGs/WUtil.h | 16 +- WINGs/llist.c | 126 + WINGs/llist.h | 40 + WINGs/notification.c | 173 +- WINGs/testnot.c | 91 + WINGs/userdefaults.c | 12 +- WINGs/wbrowser.c | 423 +- WINGs/wcolorpanel.c | 6060 +++++++++++++------------ WINGs/wevent.c | 20 +- WINGs/wfilepanel.c | 245 +- WINGs/wfont.c | 6 + WINGs/widgets.c | 234 +- WINGs/wlist.c | 51 +- WINGs/wmfile.c | 62 +- WINGs/wpopupbutton.c | 12 +- WINGs/wscrollview.c | 2 +- WINGs/wslider.c | 2 + WINGs/wsplitview.c | 2 +- WINGs/wtest.c | 4 +- WINGs/wtextfield.c | 189 +- WINGs/wview.c | 67 +- WPrefs.app/Focus.c | 6 +- WPrefs.app/Icons.c | 2 + WPrefs.app/Makefile.am | 14 +- WPrefs.app/Makefile.in | 21 +- WPrefs.app/Menu.c | 44 +- WPrefs.app/MouseSettings.c | 43 +- WPrefs.app/NoMenuAlert.c | 127 + WPrefs.app/Paths.c | 3 + WPrefs.app/Preferences.c | 4 + WPrefs.app/README | 11 +- WPrefs.app/TexturePanel.c | 5 +- WPrefs.app/WPrefs.c | 32 +- WPrefs.app/WPrefs.h | 4 +- WPrefs.app/WPrefs.tiff | Bin 2550 -> 3674 bytes WPrefs.app/WPrefs.xpm | 663 ++- WPrefs.app/WindowHandling.c | 115 +- WPrefs.app/editmenu.c | 668 +++ src/stacking.h => WPrefs.app/editmenu.h | 30 +- WPrefs.app/main.c | 4 +- WPrefs.app/po/Makefile.am | 18 +- WPrefs.app/po/Makefile.in | 22 +- WPrefs.app/po/README | 1 + WPrefs.app/po/cs.po | 339 +- WPrefs.app/po/ko.po | 2905 ++++++------ WPrefs.app/po/{cs.po => zh_TW.Big5.po} | 933 ++-- WPrefs.app/tiff/Makefile.in | 4 +- WPrefs.app/xpm/Makefile.in | 4 +- WindowMaker.lsm.in | 2 +- WindowMaker/Backgrounds/Makefile.in | 4 +- WindowMaker/Defaults/Makefile.am | 11 +- WindowMaker/Defaults/Makefile.in | 15 +- WindowMaker/Defaults/WindowMaker | 5 +- WindowMaker/Defaults/WindowMaker.in | 5 +- WindowMaker/IconSets/Makefile.am | 2 +- WindowMaker/IconSets/Makefile.in | 6 +- WindowMaker/Icons/Makefile.in | 4 +- WindowMaker/Icons/README | 2 +- WindowMaker/Makefile.am | 1 + WindowMaker/Makefile.in | 6 +- WindowMaker/Pixmaps/Makefile.in | 4 +- WindowMaker/README | 2 +- WindowMaker/Styles/Makefile.in | 4 +- WindowMaker/Themes/Checker.themed/Makefile.in | 4 +- WindowMaker/Themes/Makefile.am | 2 +- WindowMaker/Themes/Makefile.in | 6 +- WindowMaker/Themes/Night.themed/Makefile.in | 4 +- WindowMaker/Themes/SteelBlueSilk.style | 47 + WindowMaker/menu | 18 +- WindowMaker/menu.ca | 18 +- WindowMaker/menu.dk | 18 +- WindowMaker/menu.el | 20 +- WindowMaker/menu.es | 16 +- WindowMaker/menu.fi | 16 +- WindowMaker/menu.fr | 18 +- WindowMaker/menu.he | 16 +- WindowMaker/menu.hr | 16 +- WindowMaker/menu.hu | Bin 7800 -> 7835 bytes WindowMaker/menu.ja | 16 +- WindowMaker/menu.ko | 22 +- WindowMaker/menu.no | 16 +- WindowMaker/menu.pt | 20 +- WindowMaker/menu.se | 18 +- WindowMaker/menu.sl | 18 +- WindowMaker/menu.tr | 18 +- WindowMaker/{menu => menu.zh_TW.Big5} | 131 +- WindowMaker/plmenu | 14 +- WindowMaker/plmenu.fr | 12 +- WindowMaker/plmenu.hr | 12 +- acconfig.h | 9 +- acinclude.m4 | 176 + aclocal.m4 | 177 + config.guess | 174 +- config.sub | 52 +- configure | 1322 +++--- configure.in | 299 +- doc/Makefile.in | 4 +- doc/geticonset.1x | 11 +- doc/getstyle.1x | 27 +- doc/seticons.1x | 7 + doc/setstyle.1x | 22 +- doc/wdwrite.1x | 9 +- doc/wmaker.1x | 13 +- doc/wmsetbg.1x | 62 +- docklib-0.0.tar.gz | Bin 31330 -> 0 bytes docklib-0.2.tar.gz | Bin 0 -> 73928 bytes po/Makefile.am | 16 +- po/Makefile.in | 20 +- po/README | 1 + po/cs.po | 506 ++- po/ko.po | 2675 +++++------ po/{ru.po => pl.po} | 683 ++- po/ru.po | 619 +-- po/zh_TW.Big5.po | 1380 ++++++ src/Makefile.am | 11 +- src/Makefile.in | 10 +- src/WindowMaker.h | 9 +- src/actions.c | 93 +- src/client.c | 5 +- src/config.h | 23 +- src/config.h.in | 19 +- src/defaults.c | 43 +- src/dialog.c | 47 +- src/dock.c | 16 +- src/event.c | 298 +- src/framewin.c | 32 +- src/framewin.h | 2 + src/icon.c | 31 +- src/kwm.c | 2 +- src/main.c | 20 +- src/menu.c | 17 +- src/misc.c | 9 +- src/moveres.c | 911 +++- src/openlook.c | 2 - src/placement.c | 26 +- src/resources.c | 4 +- src/rootmenu.c | 116 +- src/screen.c | 1 - src/screen.h | 2 + src/session.c | 4 +- src/shutdown.c | 2 +- src/stacking.c | 2 +- src/stacking.h | 1 - src/startup.c | 100 +- src/superfluous.c | 7 +- src/switchmenu.c | 4 - src/wconfig.h | 28 +- src/wconfig.h.in | 28 +- src/window.c | 182 +- src/window.h | 11 +- src/winmenu.c | 16 +- src/winspector.c | 29 +- src/workspace.c | 6 +- test/Makefile.in | 4 +- util/Makefile.am | 22 +- util/Makefile.in | 25 +- util/README | 1 + util/getstyle.c | 12 +- util/wmaker.inst.in | 17 +- util/wmsetbg.c | 166 +- wmlib/Makefile.in | 4 +- wmlib/WMaker.h | 7 + wrlib/Makefile.am | 6 +- wrlib/Makefile.in | 10 +- wrlib/load.c | 60 +- wrlib/nxpm.c | 3 +- wrlib/testgrad.c | 9 +- wrlib/wraster.h | 15 +- 189 files changed, 15544 insertions(+), 10209 deletions(-) create mode 100644 COPYING.OPL create mode 100644 WINGs/llist.c create mode 100644 WINGs/llist.h create mode 100644 WINGs/testnot.c rewrite WINGs/wcolorpanel.c (89%) create mode 100644 WPrefs.app/NoMenuAlert.c rewrite WPrefs.app/WPrefs.tiff (100%) rewrite WPrefs.app/WPrefs.xpm (99%) create mode 100644 WPrefs.app/editmenu.c copy src/stacking.h => WPrefs.app/editmenu.h (55%) copy WPrefs.app/po/{cs.po => zh_TW.Big5.po} (62%) create mode 100644 WindowMaker/Themes/SteelBlueSilk.style rewrite WindowMaker/menu.hu (76%) copy WindowMaker/{menu => menu.zh_TW.Big5} (69%) create mode 100644 acinclude.m4 delete mode 100644 docklib-0.0.tar.gz create mode 100644 docklib-0.2.tar.gz copy po/{ru.po => pl.po} (59%) create mode 100644 po/zh_TW.Big5.po diff --git a/AUTHORS b/AUTHORS index 20d68caa..112a3f7d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -33,6 +33,9 @@ Text input field, 15bpp support George Clernon bug fix in browser widget +Omar Cornut / Zoop +SteelBlueSilk theme + Sylvain CORRE bug fix for MkLinux/PPC @@ -65,7 +68,7 @@ Better detection of gfx libraries, added IconTitleColor/IconTitleBack Greg Hayes Twisted miniaturization animation -Alban Hertroys +Alban Hertroys WINGs color panel HIDEKI Fujimoto @@ -193,6 +196,10 @@ xv.tiff David Wang edge resistance, 8bpp balloon bug fix, other 8bpp related fixes +Franck Wolff +various fixes/enhancements to WINGs + + Yoav Yerushalmi Fixed -visualid for screens that can do multiple depths. Another fix in libproplist. Chooses best depth in screen. diff --git a/BUGFORM b/BUGFORM index eb678836..cbbda9ec 100644 --- a/BUGFORM +++ b/BUGFORM @@ -4,7 +4,7 @@ If you find a bug please fill this form and send it to -developers@windowmaker.org +developers@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 diff --git a/BUGS b/BUGS index 7779533e..13b1e079 100644 --- a/BUGS +++ b/BUGS @@ -1,8 +1,6 @@ - wmaker will not stop managing a screen even if another window manager requests that, through the ICCCM 2.0 manager selection stuff - the app menu does not update after a style/theme change without restart. -- during startup, transient windows should be miniaturized with their owners - not in their own icons - stacking code is buggy (or XFree is buggy) - save session doesnt work on some platforms (Alpha and Sparc) - texture pixmaps are being incorrectly freed somewhere. Either diff --git a/COPYING.OPL b/COPYING.OPL new file mode 100644 index 00000000..15d65187 --- /dev/null +++ b/COPYING.OPL @@ -0,0 +1,91 @@ + + OpenContent License (OPL) + Version 1.0, July 14, 1998. + + This document outlines the principles underlying the OpenContent + (OC) movement and may be redistributed provided it remains + unaltered. For legal purposes, this document is the license under + which OpenContent is made available for use. + + The original version of this document may be found at + http://www.opencontent.org/opl.shtml + + LICENSE + + Terms and Conditions for Copying, Distributing, and Modifying + + Items other than copying, distributing, and modifying the Content + with which this license was distributed (such as using, etc.) are + outside the scope of this license. + + 1. You may copy and distribute exact replicas of the OpenContent + (OC) as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any + warranty; and give any other recipients of the OC a copy of this + License along with the OC. You may at your option charge a fee for + the media and/or handling involved in creating a unique copy of the + OC for use offline, you may at your option offer instructional + support for the OC in exchange for a fee, or you may at your option + offer warranty in exchange for a fee. You may not charge a fee for + the OC itself. You may not charge a fee for the sole service of + providing access to and/or use of the OC via a network (e.g. the + Internet), whether it be via the world wide web, FTP, or any other + method. + + 2. You may modify your copy or copies of the OpenContent or any + portion of it, thus forming works based on the Content, and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + a) You must cause the modified content to carry prominent notices + stating that you changed it, the exact nature and content of the + changes, and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the OC or any part + thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License, unless otherwise permitted + under applicable Fair Use law. + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the OC, and + can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work + based on the OC, the distribution of the whole must be on the terms + of this License, whose permissions for other licensees extend to + the entire whole, and thus to each and every part regardless of who + wrote it. Exceptions are made to this requirement to release + modified works free of charge under this license only in compliance + with Fair Use law where applicable. + + 3. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to copy, + distribute or modify the OC. These actions are prohibited by law if + you do not accept this License. Therefore, by distributing or + translating the OC, or by deriving works herefrom, you indicate + your acceptance of this License to do so, and all its terms and + conditions for copying, distributing or translating the OC. + + NO WARRANTY + + 4. BECAUSE THE OPENCONTENT (OC) IS LICENSED FREE OF CHARGE, THERE + IS NO WARRANTY FOR THE OC, TO THE EXTENT PERMITTED BY APPLICABLE + LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS + AND/OR OTHER PARTIES PROVIDE THE OC "AS IS" WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE. THE ENTIRE RISK OF USE OF THE OC IS WITH YOU. + SHOULD THE OC PROVE FAULTY, INACCURATE, OR OTHERWISE UNACCEPTABLE + YOU ASSUME THE COST OF ALL NECESSARY REPAIR OR CORRECTION. + + 5. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY + MIRROR AND/OR REDISTRIBUTE THE OC AS PERMITTED ABOVE, BE LIABLE TO + YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE + THE OC, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. diff --git a/ChangeLog b/ChangeLog index 41853be1..04870532 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,40 @@ +Changes since version 0.51.0: +............................. + +- icon explosion is stopped when clicking on anywhere +- fixed dont set xset stuff option in WPrefs +- fixed menu title messup in WPrefs +- fixed WPrefs message dialogs for invalid menus +- fixed workspace back setting in all screens +- fixed WorkspaceSpecificBack / wmsetbg +- added WindozeCycle patch (being rewritten) +- cleaned up focus/unfocus state transitions +- made WPrefs more robust +- fixed locale file (po) installation stuff +- fixed focus loss when dragging window across workspaces +- fixed workspace baby boom with nextworkspacekey +- removed ignore_next_unmap kluge +- install defaults data in /usr/local/etc +- added menu for miniwindow +- fixed remove resizebar from shaded window +- rewrote library/header search code in configure +- rewrote window move/edge resistance code +- added window border resistance +- changed EdgeResistance option to only YES/NO +- added workaround for glibc bug in sscanf("", bla, bla) +- hopefully fixed WM_COLORMAP_WINDOWS crash bug +- fixed searching of localized menus +- fixed --help option +- fixed handling of docked apps with . in their instance names +- RSupportedFileFormats() in wrlib will now return a static buffer +- fixed bug in StartHidden +- a little faster startup +- will rearrange icons after moving an icon if autoarrangeicons +- fixed icon overlap bug +- fixed crash with internal dialogs and multi-heads +- added standard colormap support to wrlib (taken from libXmu sources) +- fixed memory leak in attribute panel + Changes since version 0.50.2: ............................. @@ -35,6 +72,8 @@ Changes since version 0.50.2: - fixed bug in start maximized - added _WINDOWMAKER_NOTICEBOARD protocol - added docklib +- updated utility parameter format to GNU standards +- removed libPropList from distribution and merged with GNOME one Changes since version 0.50.1: ............................. diff --git a/FAQ b/FAQ index af233181..f267deb7 100644 --- a/FAQ +++ b/FAQ @@ -95,11 +95,13 @@ Summary of Contents: 5.6 What other apps exist for the dock? 5.7 How do I get an appicon for rxvt so I can dock it? 5.8 How do I get different icons for rxvt's (or xterms) running different - programs? + programs? 5.9 How do I launch multiple instances of XTerm from one appicon? 5.10 How do I allow Alt+# to work in an rxvt session? (with irc for example) 5.11 Window Maker breaks scilab + 5.12 Netscape icons show up in black and white + 5.13 Snow flakes from xsnow don't acumulate on titlebars! 6 - Programming 6.1 How do I get a normal X application to produce an appicon? @@ -1212,6 +1214,24 @@ with 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. + + +5.13 Snow flakes from xsnow don't acumulate on titlebars! +---------------------------------- + +Because of the way xsnow is coded, it seems that it can't "see" +windows with the SaveUnder attribute turned on. So, if snow +accumulation on windows is vital for you, disable SaveUnders in +WPrefs, in the advanced options section. + -=-=-=-=-=-=- Programming: diff --git a/INSTALL b/INSTALL index 2797cf18..91bc05e0 100644 --- a/INSTALL +++ b/INSTALL @@ -66,11 +66,11 @@ The following is required to build Window Maker: Install it before building Window Maker. - autoconf, automake and libtool - These tools are not needed, but IF you have one or + 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.12 - automake 1.3 + autoconf 2.13 + automake 1.4 libtool 1.2 If you have a different version, disable them by temporarily renaming them to something else or uninstalling them from your @@ -116,7 +116,7 @@ might work too. - GNU xgettext If you want to use translated messages, you will need GNU gettext. Other versions of gettext are not compatible and will not work. - Get the GNU version from ftp://prep.ai.mit.edu + Get the GNU version from ftp://ftp.gnu.org Most of these can be get from ftp.uu.net/pub/graphics @@ -135,6 +135,16 @@ support compiled in. To get a list of other options, run ./configure --help +--with-libs-from + specify additional paths for libraries to be searched. + The -L flag must precede each path, like: + --with-libs-from=-L/opt/libs -L/usr/local/lib + +--with-incs-from + specify additional paths for header files to be searched. + The -I flag must precede each paths, like: + --with-incs-from=-I/opt/headers -I/usr/local/include + --enable-kanji support to display Kanji characters, Korean, Chinese and other languagues that require special characters. @@ -202,6 +212,11 @@ To get a list of other options, run ./configure --help PLATFORM SPECIFIC NOTES: ======================== + +- DEC/Alpha machines + You might need to pass the --disable-shm flag to configure, like + ./configure --disable-shm + - SCO Unix - run configure like CFLAGS="-belf -DANSICPP" ./configure @@ -210,8 +225,10 @@ PLATFORM SPECIFIC NOTES: CPP_PATH="gcc -E -x c" ./configure Sun's cpp lacks some features needed by Window Maker and it can cause problems when parsing the config files. - You also might need to use the --with-gfx-libs and --with-gfx-incs + You also might need to use the --with-libs-from and --with-incs-from to supply the directory where libtiff is located. + Someone mailed me that you also must make /usr/local/lib be the + first path in LD_LIBRARY_PATH to make it work. If you have a Ultra Creator 3D or some other machine with high-end graphics, be sure to start the X server with the default visual @@ -221,17 +238,21 @@ PLATFORM SPECIFIC NOTES: - GNU/Linux in general Make sure you have /usr/local/lib in /etc/ld.so.conf and that you run ldconfig after installing. + Uninstall any packaged version of Window Maker before installing a new + version. - RedHat GNU/Linux RedHat systems have several annoying problems. If you use it, be sure to follow the steps below or Window Maker will not work: + * if you installed the Window Maker that comes with RedHat, uninstall + it before upgrading; + * make sure you don't have the LANG and LINGUAS environment variables set to en_RN; * make sure you have /usr/local/bin in your PATH environment - variable, as for some mysterious reason the folks at RedHat did not - include it in the default configuration files in RH 5.x; + variable; * make sure you have /usr/local/lib in /etc/ld.so.conf before running ldconfig; @@ -249,6 +270,15 @@ PLATFORM SPECIFIC NOTES: 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 exitate 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. @@ -364,9 +394,14 @@ WPrefs.app Example: ./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps -Then make /home/jshmoe/bin be included in your search path and run +Then make /home/jshmoe/bin be included in your search PATH, add +/home/jshmoe/lib to your LD_LIBRARY_PATH environment variable and run bin/wmaker.inst +Of course, /home/jshmoe is supposed to be replaced with your actual home +directory path. + + UPGRADING ========= @@ -395,8 +430,8 @@ configure: error: libtool configure failed remove the --no-reexec option from aclocal.m4 and libPropList/aclocal.m4 and reconfigure Also make sure the autoconf and automake versions you have installed are: -autoconf 2.12 -automake 1.3 +autoconf 2.13 +automake 1.4 libtool 1.2 Note that it must not be libtool 1.2b, it must be libtool 1.2, @@ -412,11 +447,11 @@ somewhere else in this file. Delete config.cache, then rerun configure adding the following options to configure (among the other options you use): ---with-gfx-libs="-L/usr/local/lib" ---with-gfx-incs="-I/usr/local/include -I/usr/local/include/tiff" +--with-libs-from="-L/usr/local/lib" +--with-incs-from="-I/usr/local/include -I/usr/local/include/tiff" Put the paths where your graphic libs and their corresponding header files are located. You can put multiple paths in any of these options, as the example -of --with-gfx-incs shows. Just put a space between them. +of --with-incs-from shows. Just put a space between them. == configure doesn't detect libXpm. diff --git a/Install b/Install index ea9c153b..9a42b1d3 100755 --- a/Install +++ b/Install @@ -42,6 +42,11 @@ echo echo "Please read the INSTALL and FAQ files before e-mailing " echo "questions. (we are lazy to reply questions already answered " echo "there as much as you are lazy to read these ;) " +echo +perai +echo +echo "Did you install libPropList? If not, please install it now." +echo perai echo "Did you read the INSTALL file?" echo -n " " @@ -170,7 +175,7 @@ if [ "$NLS" = "y" -o "$NLS" = "Y" ]; then continue fi - if [ "$MB" = "" -a "$i" = "ja" -o "$i" = "kr" ]; then + if [ "$MB" = "" -a "$i" = "ja" -o "$i" = "ko" ]; then echo echo "A language you selected needs multi-byte character support" echo "Do you want to enable it?" @@ -217,8 +222,6 @@ while [ $done = 0 ]; do echo echo " $PREFIX/bin must be in the PATH environment variable" echo "of all users who will use Window Maker" - echo - echo " Make sure $PREFIX/lib is in the /etc/ld.so.conf file" perai done @@ -259,6 +262,8 @@ echo "--------------------------" perform make install if [ `uname -s` = "Linux" ]; then + echo + echo " Make sure $PREFIX/lib is in the /etc/ld.so.conf file" /sbin/ldconfig fi diff --git a/MIRRORS b/MIRRORS index 8b26a3c9..81e7468a 100644 --- a/MIRRORS +++ b/MIRRORS @@ -57,12 +57,20 @@ http://master.debian.org/~mmagallo/packages/wmaker/ RedHat GNU/Linux (RPM) ---------------------- +For Intel: + Contact: Jim Knoble Sites: ftp://ftp.windowmaker.org/pub/beta/compiled/linux/rpms/ ftp://ftp.redhat.com/pub/contrib/SRPMS/ ftp://ftp.redhat.com/pub/contrib/i386/ +For Alpha: + +Contact: Peter Petrakis +Site: +http://math.stcc.mass.edu/petrakis/downloads/X11 + HP-UX ----- diff --git a/Makefile.am b/Makefile.am index 31f9afb4..01b775eb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,15 +2,23 @@ SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc -EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS Install acconfig.h\ +EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS COPYING.OPL \ + Install acconfig.h\ mkpatch README.KDE README.GNOME WindowMaker.lsm.in\ - docklib-0.0.tar.gz + docklib-0.2.tar.gz - -windowmaker.lsm: +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.lsm + WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm + +dist-hook: + touch `find -name configure.in -print` + touch `find -name aclocal.m4 -print` + touch `find -name Makefile.am -print` + touch `find -name Makefile.in -print` + touch `find -name configure -print` + diff --git a/Makefile.in b/Makefile.in index 07c39688..2437fcb8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -89,15 +89,15 @@ wprefsdir = @wprefsdir@ SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc -EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS Install acconfig.h mkpatch README.KDE README.GNOME WindowMaker.lsm.in docklib-0.0.tar.gz +EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS COPYING.OPL Install acconfig.h mkpatch README.KDE README.GNOME WindowMaker.lsm.in docklib-0.2.tar.gz ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ./src/config.h CONFIG_CLEAN_FILES = DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ -Makefile.in NEWS TODO acconfig.h aclocal.m4 config.guess config.sub \ -configure configure.in install-sh ltconfig ltmain.sh missing \ +Makefile.in NEWS TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \ +config.sub configure configure.in install-sh ltconfig ltmain.sh missing \ mkinstalldirs src/config.h.in src/stamp-h.in @@ -114,7 +114,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -$(ACLOCAL_M4): configure.in +$(ACLOCAL_M4): configure.in acinclude.m4 cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -297,6 +297,7 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook info-am: info: info-recursive dvi-am: @@ -369,13 +370,20 @@ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean -windowmaker.lsm: +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.lsm + WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm + +dist-hook: + touch `find -name configure.in -print` + touch `find -name aclocal.m4 -print` + touch `find -name Makefile.am -print` + touch `find -name Makefile.in -print` + touch `find -name configure -print` # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/NEWS b/NEWS index e00ac06a..a8932ba6 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,34 @@ NEWS for veteran Window Maker users ----------------------------------- +--- 0.51.1 + +KDE Application Menu script +--------------------------- + +wkdemenu.sh is a converter from KDE application menu structures to wmaker +menu that can be used as a piped menu. Look wkdemenu.sh for how to use it. + + +Window Edge Resistance +---------------------- + +Window edge resistance was now added. No, feature freeze hasn't been +removed. Its just part of the edge resistance rewrite ;) + + +New Theme +--------- + +Added SteelBlueSilk theme + +Installation Path Changes +------------------------- + +Default configuration data installed in /usr/local/etc/WindowMaker +or $(sysconfdir)/WindowMaker + + --- 0.51.0 Window Maker has become a GNU program (part of the GNU Project). diff --git a/README b/README index 4ce4a078..3f5d1357 100644 --- a/README +++ b/README @@ -1,9 +1,8 @@ - GNU Window Maker - X11 Window Manager - + GNU Window Maker + X11 Window Manager @@ -49,8 +48,8 @@ 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, the window manager for the -GNU Project. Read more about GNUstep further on this file. +"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. @@ -138,9 +137,9 @@ Mailing List ============ There is a mailing list for discussing Window Maker at -wmaker@linuxcenter.com To subscribe to it, send a message containing: +wm-user@windowmaker.org To subscribe to it, send a message containing: subscribe -in the body of the message to wmaker-request@linuxcenter.com +in the subject of the message to wm-user-request@windowmaker.org 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. @@ -210,8 +209,8 @@ 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), header (not -sure what's it) and footer strings. +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 @@ -328,6 +327,10 @@ 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. +The icons that are distributed with this program and were made by Marco van +Hylckama Vlieg are licensed through the OpenContent License. Read the +COPYING.OPL 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. diff --git a/README.KDE b/README.KDE index 16fca368..8bfaffde 100644 --- a/README.KDE +++ b/README.KDE @@ -86,9 +86,11 @@ 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. If you want support for these in KDE, please go nag your favorite KDE -developers, not us. The added stuff are the following kwm like commands: +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 @@ -124,3 +126,7 @@ 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. + diff --git a/TODO b/TODO index 052db696..bde63d4c 100644 --- a/TODO +++ b/TODO @@ -13,7 +13,7 @@ Do ASAP: Need to do: =========== - allow user to select/restore default root menu from wprefs -- fix and include the windoze cycle window patch +- fix windoze cycle window patch - support for X11R6.4 extension for getting extra visual info in wrlib's automatic best context guessing - docklet to control AccessX (keyboard accessibility) functions diff --git a/WINGs/ChangeLog b/WINGs/ChangeLog index 2fe8bafd..43c2bbbc 100644 --- a/WINGs/ChangeLog +++ b/WINGs/ChangeLog @@ -1,3 +1,18 @@ +changes since wmaker 0.51.0: +............................ + +- applied c++ compat header patch from Martynas Kunigelis +- added WMSetTextFieldBeveled() + +changes since wmaker 0.50.1: +............................ + +- fixed various bugs +- added patch from Franck Wolff , with + many fixes and enhancements +- added notification queues, asynchronous notifications etc. +- added WMSetBrowserDoubleAction() +- fixed list double click action changes since wmaker 0.50.2: ............................ diff --git a/WINGs/Makefile.am b/WINGs/Makefile.am index 5609767c..4a7568e8 100644 --- a/WINGs/Makefile.am +++ b/WINGs/Makefile.am @@ -6,7 +6,7 @@ SUBDIRS = Resources LIBLIST= $(top_builddir)/wrlib/libwraster.la\ - @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ \ + @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ \ -lm @LIBPL@ @@ -18,7 +18,8 @@ lib_LIBRARIES = libWINGs.a include_HEADERS = WINGs.h WUtil.h WINGsP.h -noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel +noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel \ + testnot testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h @@ -42,6 +43,10 @@ testcolorpanel_SOURCES = testcolorpanel.c testcolorpanel_LDADD = libWINGs.a $(LIBLIST) +testnot_SOURCES = testnot.c + +testnot_LDADD = libWINGs.a $(LIBLIST) + wmquery_SOURCES = wmquery.c @@ -55,6 +60,8 @@ libWINGs_a_SOURCES = \ WINGs.h \ WINGsP.h \ configuration.c \ + llist.h \ + llist.c \ international.c \ notification.c \ selection.c \ @@ -90,11 +97,7 @@ libWINGs_a_SOURCES = \ memory.c \ usleep.c -## -## Find a better way than $(GFXFLAGS) to inform widgets.c wich of -## tiff or xpm images should be used INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ - -DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG \ - @XCFLAGS@ + -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG diff --git a/WINGs/Makefile.in b/WINGs/Makefile.in index 61532b37..107aaf3c 100644 --- a/WINGs/Makefile.in +++ b/WINGs/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -91,7 +91,7 @@ AUTOMAKE_OPTIONS = no-dependencies SUBDIRS = Resources -LIBLIST = $(top_builddir)/wrlib/libwraster.la @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ -lm @LIBPL@ +LIBLIST = $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ -lm @LIBPL@ #lib_LTLIBRARIES = libWINGs.la @@ -102,7 +102,8 @@ lib_LIBRARIES = libWINGs.a include_HEADERS = WINGs.h WUtil.h WINGsP.h -noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel +noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel testnot + testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h @@ -126,6 +127,10 @@ testcolorpanel_SOURCES = testcolorpanel.c testcolorpanel_LDADD = libWINGs.a $(LIBLIST) +testnot_SOURCES = testnot.c + +testnot_LDADD = libWINGs.a $(LIBLIST) + wmquery_SOURCES = wmquery.c wmquery_LDADD = libWINGs.a $(LIBLIST) @@ -133,10 +138,10 @@ wmquery_LDADD = libWINGs.a $(LIBLIST) EXTRA_DIST = logo.xpm # wbutton.c -libWINGs_a_SOURCES = WINGs.h WINGsP.h configuration.c international.c notification.c selection.c userdefaults.c wapplication.c wbrowser.c wbutton.c wcolor.c wcolorpanel.c wcolorwell.c wevent.c wfilepanel.c wframe.c wfont.c wfontpanel.c widgets.c wlabel.c wlist.c wmisc.c wpanel.c wpixmap.c wpopupbutton.c wscroller.c wscrollview.c wslider.c wsplitview.c wtextfield.c wwindow.c wview.c error.c findfile.c hashtable.c memory.c usleep.c +libWINGs_a_SOURCES = WINGs.h WINGsP.h configuration.c llist.h llist.c international.c notification.c selection.c userdefaults.c wapplication.c wbrowser.c wbutton.c wcolor.c wcolorpanel.c wcolorwell.c wevent.c wfilepanel.c wframe.c wfont.c wfontpanel.c widgets.c wlabel.c wlist.c wmisc.c wpanel.c wpixmap.c wpopupbutton.c wscroller.c wscrollview.c wslider.c wsplitview.c wtextfield.c wwindow.c wview.c error.c findfile.c hashtable.c memory.c usleep.c -INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src -DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG @XCFLAGS@ +INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../src/config.h @@ -152,13 +157,13 @@ X_CFLAGS = @X_CFLAGS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ libWINGs_a_LIBADD = -libWINGs_a_OBJECTS = configuration.o international.o notification.o \ -selection.o userdefaults.o wapplication.o wbrowser.o wbutton.o wcolor.o \ -wcolorpanel.o wcolorwell.o wevent.o wfilepanel.o wframe.o wfont.o \ -wfontpanel.o widgets.o wlabel.o wlist.o wmisc.o wpanel.o wpixmap.o \ -wpopupbutton.o wscroller.o wscrollview.o wslider.o wsplitview.o \ -wtextfield.o wwindow.o wview.o error.o findfile.o hashtable.o memory.o \ -usleep.o +libWINGs_a_OBJECTS = configuration.o llist.o international.o \ +notification.o selection.o userdefaults.o wapplication.o wbrowser.o \ +wbutton.o wcolor.o wcolorpanel.o wcolorwell.o wevent.o wfilepanel.o \ +wframe.o wfont.o wfontpanel.o widgets.o wlabel.o wlist.o wmisc.o \ +wpanel.o wpixmap.o wpopupbutton.o wscroller.o wscrollview.o wslider.o \ +wsplitview.o wtextfield.o wwindow.o wview.o error.o findfile.o \ +hashtable.o memory.o usleep.o AR = ar PROGRAMS = $(noinst_PROGRAMS) @@ -181,6 +186,9 @@ testcolorpanel_OBJECTS = testcolorpanel.o testcolorpanel_DEPENDENCIES = libWINGs.a \ $(top_builddir)/wrlib/libwraster.la testcolorpanel_LDFLAGS = +testnot_OBJECTS = testnot.o +testnot_DEPENDENCIES = libWINGs.a $(top_builddir)/wrlib/libwraster.la +testnot_LDFLAGS = CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -195,8 +203,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best -SOURCES = $(libWINGs_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES) -OBJECTS = $(libWINGs_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS) +SOURCES = $(libWINGs_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES) $(testnot_SOURCES) +OBJECTS = $(libWINGs_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS) $(testnot_OBJECTS) all: all-redirect .SUFFIXES: @@ -317,6 +325,10 @@ testcolorpanel: $(testcolorpanel_OBJECTS) $(testcolorpanel_DEPENDENCIES) @rm -f testcolorpanel $(LINK) $(testcolorpanel_LDFLAGS) $(testcolorpanel_OBJECTS) $(testcolorpanel_LDADD) $(LIBS) +testnot: $(testnot_OBJECTS) $(testnot_DEPENDENCIES) + @rm -f testnot + $(LINK) $(testnot_LDFLAGS) $(testnot_OBJECTS) $(testnot_LDADD) $(LIBS) + install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(includedir) diff --git a/WINGs/Resources/Makefile.in b/WINGs/Resources/Makefile.in index 644ddd3c..179a4139 100644 --- a/WINGs/Resources/Makefile.in +++ b/WINGs/Resources/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WINGs/WINGs.h b/WINGs/WINGs.h index fc033541..55c5c322 100644 --- a/WINGs/WINGs.h +++ b/WINGs/WINGs.h @@ -9,8 +9,12 @@ #define WINGS_H_VERSION 981220 - - +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +#if 0 +} +#endif typedef unsigned long WMPixel; @@ -768,6 +772,10 @@ void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment); void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered); +void WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag); + +Bool WMGetTextFieldEnabled(WMTextField *tPtr); + void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag); void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag); @@ -776,8 +784,11 @@ void WMSelectTextFieldRange(WMTextField *tPtr, WMRange range); void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position); +void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next); + +void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev); + -extern char *WMListDidScrollNotification; extern char *WMTextDidChangeNotification; extern char *WMTextDidBeginEditingNotification; extern char *WMTextDidEndEditingNotification; @@ -844,6 +855,7 @@ void WMSetListBottomPosition(WMList *lPtr, int row); int WMGetListPosition(WMList *lPtr); extern char *WMListDidScrollNotification; +extern char *WMListSelectionDidChangeNotification; /* ....................................................................... */ @@ -867,7 +879,8 @@ WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch); -Bool WMSetBrowserPath(WMBrowser *bPtr, char *path); +/* Don't free the returned string. */ +char* WMSetBrowserPath(WMBrowser *bPtr, char *path); /* you can free the returned string */ char *WMGetBrowserPath(WMBrowser *bPtr); @@ -878,6 +891,9 @@ void WMSetBrowserFillColumnProc(WMBrowser *bPtr,WMBrowserFillColumnProc *proc); void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData); +void WMSetBrowserDoubleAction(WMBrowser *bPtr, WMAction *action, + void *clientData); + WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column); int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr); @@ -1057,11 +1073,8 @@ char *WMGetFilePanelFileName(WMFilePanel *panel); void WMFreeFilePanel(WMFilePanel *panel); -int WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner, - char *path, char *name, char **fileTypes); - -int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner, - char *path, char *name); +int WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner, + char *path, char *name, char **fileTypes); void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view); @@ -1084,5 +1097,9 @@ char *WMGetFontPanelFontName(WMFontPanel *panel); WMFont *WMGetFontPanelFont(WMFontPanel *panel); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + #endif diff --git a/WINGs/WINGsP.h b/WINGs/WINGsP.h index ccf0edc7..0ce3a432 100644 --- a/WINGs/WINGsP.h +++ b/WINGs/WINGsP.h @@ -1,3 +1,6 @@ +#ifndef _WINGSP_H_ +#define _WINGSP_H_ + #include #include @@ -16,6 +19,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + #define DOUBLE_BUFFER @@ -177,25 +184,17 @@ typedef struct W_Screen { struct W_Pixmap *checkMark; struct W_Pixmap *homeIcon; - struct W_Pixmap *homeAltIcon; - - struct W_Pixmap *magnifyIcon; - struct W_Pixmap *wheelIcon; - struct W_Pixmap *grayIcon; - struct W_Pixmap *rgbIcon; - struct W_Pixmap *cmykIcon; - struct W_Pixmap *hsbIcon; - struct W_Pixmap *customPaletteIcon; - struct W_Pixmap *colorListIcon; - - struct W_Pixmap *magnifyAltIcon; - struct W_Pixmap *wheelAltIcon; - struct W_Pixmap *grayAltIcon; - struct W_Pixmap *rgbAltIcon; - struct W_Pixmap *cmykAltIcon; - struct W_Pixmap *hsbAltIcon; - struct W_Pixmap *customPaletteAltIcon; - struct W_Pixmap *colorListAltIcon; + struct W_Pixmap *altHomeIcon; + + struct W_Pixmap *magnifyIcon; + struct W_Pixmap *altMagnifyIcon; + struct W_Pixmap *wheelIcon; + struct W_Pixmap *grayIcon; + struct W_Pixmap *rgbIcon; + struct W_Pixmap *cmykIcon; + struct W_Pixmap *hsbIcon; + struct W_Pixmap *customPaletteIcon; + struct W_Pixmap *colorListIcon; struct W_Pixmap *defaultObjectIcon; @@ -346,7 +345,7 @@ void W_DestroyView(W_View *view); void W_RealizeView(W_View *view); -void W_ReparentView(W_View *view, W_View *newParent); +void W_ReparentView(W_View *view, W_View *newParent, int x, int y); void W_MapView(W_View *view); @@ -416,3 +415,14 @@ Bool W_ApplicationInitialized(void); char *W_GetTextSelection(WMScreen *scr, Atom selection); void W_HandleSelectionEvent(XEvent *event); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _WINGSP_H_ */ + +void W_FlushASAPNotificationQueue(); + +void W_FlushIdleNotificationQueue(); + diff --git a/WINGs/WUtil.h b/WINGs/WUtil.h index f462adf0..a2abc77a 100644 --- a/WINGs/WUtil.h +++ b/WINGs/WUtil.h @@ -61,6 +61,10 @@ #endif /* !NDEBUG */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + typedef enum { WMPostWhenIdle = 1, @@ -227,9 +231,12 @@ WMNotificationQueue *WMGetDefaultNotificationQueue(void); WMNotificationQueue *WMCreateNotificationQueue(void); -void WMDequeueNotificationMatching(WMNotificationQueue *queue, unsigned mask); +void WMDequeueNotificationMatching(WMNotificationQueue *queue, + WMNotification *notification, + unsigned mask); -void WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification, +void WMEnqueueNotification(WMNotificationQueue *queue, + WMNotification *notification, WMPostingStyle postingStyle); void WMEnqueueCoalesceNotification(WMNotificationQueue *queue, @@ -254,7 +261,7 @@ char *WMGetUDStringForKey(WMUserDefaults *database, char *defaultName); int WMGetUDIntegerForKey(WMUserDefaults *database, char *defaultName); -int WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName); +float WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName); Bool WMGetUDBoolForKey(WMUserDefaults *database, char *defaultName); @@ -274,6 +281,9 @@ proplist_t WMGetUDSearchList(WMUserDefaults *database); void WMSetUDSearchList(WMUserDefaults *database, proplist_t list); +#ifdef __cplusplus +} +#endif /* __cplusplus */ #endif diff --git a/WINGs/llist.c b/WINGs/llist.c new file mode 100644 index 00000000..ea2e68a9 --- /dev/null +++ b/WINGs/llist.c @@ -0,0 +1,126 @@ + +#include "WUtil.h" +#include + +#include "llist.h" + + + +WINLINE void* +lhead(list_t *list) +{ + if (!list) + return NULL; + + return list->head; +} + + +WINLINE list_t* +ltail(list_t *list) +{ + if (!list) + return NULL; + + return list->tail; +} + + +WINLINE list_t* +lcons(void *newHead, list_t *list) +{ + list_t *newNode; + + newNode = wmalloc(sizeof(list_t)); + newNode->head = newHead; + newNode->tail = list; + + return newNode; +} + + +WINLINE list_t* +lappend(list_t *list, list_t *tail) +{ + list_t *ptr; + + if (!list) + return tail; + + for (ptr = list; ptr->tail == NULL; ptr = ptr->tail); + + ptr->tail = tail; + + return ptr; +} + + +WINLINE void +lfree(list_t *list) +{ + if (list) { + lfree(list->tail); + free(list); + } +} + + +WINLINE void* +lfind(void *objeto, list_t *list, int (*compare)(void*, void*)) +{ + while (list) { + if ((*compare)(list->head, objeto)==0) { + return list->head; + } + list = list->tail; + } + return NULL; +} + + +WINLINE int +llength(list_t *list) +{ + int i = 0; + + while (list) { + list = list->tail; + i++; + } + + return i; +} + + +WINLINE list_t* +lremove(list_t *list, void *object) +{ + if (!list) + return NULL; + + if (list->head == object) { + list_t *tmp = list->tail; + + free(list); + + return tmp; + } + + list->tail = lremove(list->tail, object); + + return list; +} + + +WINLINE list_t* +lremovehead(list_t *list) +{ + list_t *tmp = NULL; + + if (list) { + tmp = list->tail; + free(list); + } + return tmp; +} + diff --git a/WINGs/llist.h b/WINGs/llist.h new file mode 100644 index 00000000..d956ae55 --- /dev/null +++ b/WINGs/llist.h @@ -0,0 +1,40 @@ + + +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) +# define WINLINE inline +#else +# define WINLINE +#endif + +typedef struct list_t { + void *head; + struct list_t *tail; +} list_t; + + +WINLINE void *lhead(list_t *list); + + +WINLINE list_t *ltail(list_t *list); + + +WINLINE list_t *lcons(void *newHead, list_t *list); + + +WINLINE list_t *lappend(list_t *list, list_t *tail); + + +WINLINE void lfree(list_t *list); + + +WINLINE void *lfind(void *object, list_t *list, int (*compare)(void*, void*)); + + +WINLINE int llength(list_t *list); + + +WINLINE list_t *lremove(list_t *list, void *object); + + +WINLINE list_t *lremovehead(list_t *list); + diff --git a/WINGs/notification.c b/WINGs/notification.c index 130718db..c70e9800 100644 --- a/WINGs/notification.c +++ b/WINGs/notification.c @@ -6,6 +6,7 @@ #include "WUtil.h" +#include "llist.h" typedef struct W_Notification { char *name; @@ -15,6 +16,8 @@ typedef struct W_Notification { } Notification; +extern void W_FlushASAPNotificationQueue(); + char* WMGetNotificationName(WMNotification *notification) @@ -214,9 +217,9 @@ WMPostNotification(WMNotification *notification) } WMReleaseNotification(notification); -} - + W_FlushASAPNotificationQueue(); +} void @@ -224,7 +227,6 @@ WMRemoveNotificationObserver(void *observer) { NotificationObserver *orec, *tmp, *rec; - /* get the list of actions the observer is doing */ orec = WMHashGet(notificationCenter->observerTable, observer); @@ -285,10 +287,15 @@ void WMRemoveNotificationObserverWithName(void *observer, char *name, void *object) { NotificationObserver *orec, *tmp, *rec; + NotificationObserver *newList = NULL; /* get the list of actions the observer is doing */ orec = WMHashGet(notificationCenter->observerTable, observer); + WMHashRemove(notificationCenter->observerTable, observer); + + /* rebuild the list of actions for the observer */ + while (orec) { tmp = orec->nextAction; if (orec->name == name && orec->object == object) { @@ -301,8 +308,8 @@ WMRemoveNotificationObserverWithName(void *observer, char *name, void *object) assert(rec->prev==NULL); /* 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); @@ -314,34 +321,42 @@ WMRemoveNotificationObserverWithName(void *observer, char *name, void *object) assert(rec->prev==NULL); /* 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); + WMHashRemove(notificationCenter->nameTable, + orec->name); } } } - - /* update the action list for the observer */ - rec = WMHashGet(notificationCenter->observerTable, observer); - - if (rec == orec) { - if (orec->nextAction) { - WMHashInsert(notificationCenter->nameTable, observer, - orec->nextAction); - } else { - WMHashRemove(notificationCenter->nameTable, observer); - } - } if (orec->prev) orec->prev->next = orec->next; if (orec->next) orec->next->prev = orec->prev; free(orec); + } else { + /* append this action in the new action list */ + orec->nextAction = NULL; + if (!newList) { + newList = orec; + } else { + NotificationObserver *p; + + p = newList; + while (p->nextAction) { + p = p->nextAction; + } + p->nextAction = orec; + } } orec = tmp; } + + /* reinsert the list to the table */ + if (newList) { + WMHashInsert(notificationCenter->observerTable, observer, newList); + } } @@ -363,18 +378,25 @@ WMPostNotificationName(char *name, void *object, void *clientData) typedef struct W_NotificationQueue { - NotificationCenter *center; - void *asapQueue; - void *idleQueue; + list_t *asapQueue; + list_t *idleQueue; + + struct W_NotificationQueue *next; } NotificationQueue; +static WMNotificationQueue *notificationQueueList = NULL; + /* default queue */ static WMNotificationQueue *notificationQueue = NULL; + WMNotificationQueue* WMGetDefaultNotificationQueue(void) { + if (!notificationQueue) + notificationQueue = WMCreateNotificationQueue(); + return notificationQueue; } @@ -382,20 +404,76 @@ WMGetDefaultNotificationQueue(void) WMNotificationQueue* WMCreateNotificationQueue(void) { - return NULL; + NotificationQueue *queue; + + queue = wmalloc(sizeof(NotificationQueue)); + + queue->asapQueue = NULL; + queue->idleQueue = NULL; + queue->next = notificationQueueList; + + notificationQueueList = queue; + + return queue; } + void -WMDequeueNotificationMatching(WMNotificationQueue *queue, unsigned mask) +WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification, + WMPostingStyle postingStyle) { + WMEnqueueCoalesceNotification(queue, notification, postingStyle, + WNCOnName|WNCOnSender); +} + + +static int +matchName(void *a, void *b) +{ + WMNotification *n1 = (WMNotification*)a; + WMNotification *n2 = (WMNotification*)b; + + return strcmp(n1->name, n2->name); +} + + +static int +matchSender(void *a, void *b) +{ + WMNotification *n1 = (WMNotification*)a; + WMNotification *n2 = (WMNotification*)b; + + return (n1->object == n2->object); } void -WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification, - WMPostingStyle postingStyle) +WMDequeueNotificationMatching(WMNotificationQueue *queue, + WMNotification *notification, unsigned mask) { + void *n; + + if (mask & WNCOnName) { + while ((n = lfind(notification->name, queue->asapQueue, matchName))) { + queue->asapQueue = lremove(queue->asapQueue, n); + WMReleaseNotification((WMNotification*)n); + } + while ((n = lfind(notification->name, queue->idleQueue, matchName))) { + queue->idleQueue = lremove(queue->idleQueue, n); + WMReleaseNotification((WMNotification*)n); + } + } + if (mask & WNCOnSender) { + while ((n = lfind(notification->name, queue->asapQueue, matchSender))) { + queue->asapQueue = lremove(queue->asapQueue, n); + WMReleaseNotification((WMNotification*)n); + } + while ((n = lfind(notification->name, queue->idleQueue, matchSender))) { + queue->idleQueue = lremove(queue->idleQueue, n); + WMReleaseNotification((WMNotification*)n); + } + } } @@ -405,10 +483,51 @@ WMEnqueueCoalesceNotification(WMNotificationQueue *queue, WMPostingStyle postingStyle, unsigned coalesceMask) { + if (coalesceMask != WNCNone) + WMDequeueNotificationMatching(queue, notification, coalesceMask); + + switch (postingStyle) { + case WMPostNow: + WMPostNotification(notification); + break; + + case WMPostASAP: + queue->asapQueue = lappend(queue->asapQueue, + lcons(notification, NULL)); + break; + + case WMPostWhenIdle: + queue->idleQueue = lappend(queue->idleQueue, + lcons(notification, NULL)); + break; + } } +void +W_FlushASAPNotificationQueue() +{ + WMNotificationQueue *queue = notificationQueueList; + + while (queue) { + while (queue->asapQueue) { + WMPostNotification((WMNotification*)lhead(queue->asapQueue)); + queue->asapQueue = lremovehead(queue->asapQueue); + } + } +} +void +W_FlushIdleNotificationQueue() +{ + WMNotificationQueue *queue = notificationQueueList; + while (queue) { + while (queue->idleQueue) { + WMPostNotification((WMNotification*)lhead(queue->idleQueue)); + queue->idleQueue = lremovehead(queue->idleQueue); + } + } +} diff --git a/WINGs/testnot.c b/WINGs/testnot.c new file mode 100644 index 00000000..a745801c --- /dev/null +++ b/WINGs/testnot.c @@ -0,0 +1,91 @@ + +/* + * test notifications + */ + + +#include "WUtil.h" +#include +#include + + +char *notificationA = "notificationA"; +char *notificationB = "notificationB"; +char *notificationC = "notificationC"; + +void +observer1(void *data, WMNotification *notification) +{ + printf("ObserverAction 1 got %s with object=%s, clientdata=%s\n", + WMGetNotificationName(notification), + (char*)WMGetNotificationObject(notification), + (char*)WMGetNotificationClientData(notification)); +} + +void +observer3(void *data, WMNotification *notification) +{ + printf("ObserverAction 3 got %s with object=%s, clientdata=%s\n", + WMGetNotificationName(notification), + (char*)WMGetNotificationObject(notification), + (char*)WMGetNotificationClientData(notification)); +} + +void +observer2(void *data, WMNotification *notification) +{ + printf("ObserverAction 2 got %s with object=%s, clientdata=%s\n", + WMGetNotificationName(notification), + (char*)WMGetNotificationObject(notification), + (char*)WMGetNotificationClientData(notification)); +} + + + + + + +main(int argc, char **argv) +{ + int i; + char *obser1 = "obser1"; + char *obser2 = "obser2"; + char *obser3 = "obser3"; + char *obj1 = "obj1"; + char *obj2 = "obj2"; + char *obj3 = "obj3"; + char *cdata1 = "client data1"; + char *cdata2 = "client data2"; + char *cdata3 = "client data3"; + + WMInitializeApplication("test", &argc, argv); + + WMAddNotificationObserver(observer1, obser1, notificationA, obj1); + + WMAddNotificationObserver(observer1, obser1, notificationA, obj2); + + WMAddNotificationObserver(observer1, obser1, notificationA, obj3); + + puts("post1"); + WMPostNotificationName(notificationA, obj3, cdata1); + puts("post2"); + WMPostNotificationName(notificationA, obj2, cdata2); + puts("post3"); + WMPostNotificationName(notificationA, obj1, cdata3); + + puts("REMOVE1"); + WMRemoveNotificationObserverWithName(obser1, notificationA, obj2); + + puts("REMOVE2"); + WMRemoveNotificationObserverWithName(obser1, notificationA, obj2); + + puts("post1"); + WMPostNotificationName(notificationA, obj3, cdata1); + puts("post2"); + WMPostNotificationName(notificationA, obj2, cdata2); + puts("post3"); + WMPostNotificationName(notificationA, obj1, cdata3); + + return 0; +} + diff --git a/WINGs/userdefaults.c b/WINGs/userdefaults.c index ae8fe5fd..c97dbd62 100644 --- a/WINGs/userdefaults.c +++ b/WINGs/userdefaults.c @@ -279,7 +279,7 @@ WMGetUDIntegerForKey(WMUserDefaults *database, char *defaultName) -int +float WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName) { proplist_t val; @@ -288,16 +288,12 @@ WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName) val = WMGetUDObjectForKey(database, defaultName); - if (!val) + if (!val || !PLIsString(val)) return 0.0; - if (!PLIsString(val)) + if (!(str = PLGetString(val))) return 0.0; - - str = PLGetString(val); - if (!str) - return 0.0; - + if (sscanf(str, "%f", &value)!=1) return 0.0; diff --git a/WINGs/wbrowser.c b/WINGs/wbrowser.c index 3054cf50..b2eaaec6 100644 --- a/WINGs/wbrowser.c +++ b/WINGs/wbrowser.c @@ -3,6 +3,7 @@ #include "WINGsP.h" +#include /* for : double rint (double) */ char *WMBrowserDidScrollNotification = "WMBrowserDidScrollNotification"; @@ -55,11 +56,17 @@ typedef struct W_Browser { #define COLUMN_SPACING 4 #define TITLE_SPACING 2 -#define DEFAULT_WIDTH 305 -#define DEFAULT_HEIGHT 200 -#define DEFAULT_HAS_SCROLLER True +#define DEFAULT_WIDTH 305 +#define DEFAULT_HEIGHT 200 +#define DEFAULT_HAS_SCROLLER True +#define DEFAULT_TITLE_HEIGHT 20 +#define DEFAULT_IS_TITLED True +#define DEFAULT_MAX_VISIBLE_COLUMNS 2 +#define DEFAULT_SEPARATOR "/" + +#define MIN_VISIBLE_COLUMNS 1 +#define MAX_VISIBLE_COLUMNS 32 -#define DEFAULT_SEPARATOR "/" #define COLUMN_IS_VISIBLE(b, c) ((c) >= (b)->firstVisibleColumn \ && (c) < (b)->firstVisibleColumn + (b)->maxVisibleColumns) @@ -70,13 +77,17 @@ static void destroyBrowser(WMBrowser *bPtr); static void setupScroller(WMBrowser *bPtr); -static void scrollToColumn(WMBrowser *bPtr, int column); +static void scrollToColumn(WMBrowser *bPtr, int column, Bool updateScroller); static void paintItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect); static void loadColumn(WMBrowser *bPtr, int column); +static void removeColumn(WMBrowser *bPtr, int column); + +static char* +createTruncatedString(WMFont *font, char *text, int *textLen, int width); static void resizeBrowser(WMWidget*, unsigned int, unsigned int); @@ -94,6 +105,8 @@ WMCreateBrowser(WMWidget *parent) WMBrowser *bPtr; int i; + wassertrv(parent, NULL); + bPtr = wmalloc(sizeof(WMBrowser)); memset(bPtr, 0, sizeof(WMBrowser)); @@ -112,9 +125,9 @@ WMCreateBrowser(WMWidget *parent) /* default configuration */ bPtr->flags.hasScroller = DEFAULT_HAS_SCROLLER; - bPtr->titleHeight = 20; - bPtr->flags.isTitled = 1; - bPtr->maxVisibleColumns = 2; + bPtr->titleHeight = DEFAULT_TITLE_HEIGHT; + bPtr->flags.isTitled = DEFAULT_IS_TITLED; + bPtr->maxVisibleColumns = DEFAULT_MAX_VISIBLE_COLUMNS; resizeBrowser(bPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT); @@ -137,24 +150,58 @@ WMCreateBrowser(WMWidget *parent) void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns) { - if (columns > bPtr->maxVisibleColumns) { + int curMaxVisibleColumns; + int newFirstVisibleColumn = 0; + assert ((int) bPtr); + + columns = (columns < MIN_VISIBLE_COLUMNS) ? MIN_VISIBLE_COLUMNS : columns; + columns = (columns > MAX_VISIBLE_COLUMNS) ? MAX_VISIBLE_COLUMNS : columns; + if (columns == bPtr->maxVisibleColumns) { + return; + } + curMaxVisibleColumns = bPtr->maxVisibleColumns; + bPtr->maxVisibleColumns = columns; + /* browser not loaded */ + if (!bPtr->flags.loaded) { + if ((columns > curMaxVisibleColumns) && (columns > bPtr->columnCount)) { + int i = columns - bPtr->columnCount; + bPtr->usedColumnCount = bPtr->columnCount; + while (i--) { + WMAddBrowserColumn(bPtr); + } + bPtr->usedColumnCount = 0; + } + /* browser loaded and columns > curMaxVisibleColumns */ + } else if (columns > curMaxVisibleColumns) { + if (bPtr->usedColumnCount > columns) { + newFirstVisibleColumn = bPtr->usedColumnCount - columns; + } + if (newFirstVisibleColumn > bPtr->firstVisibleColumn) { + newFirstVisibleColumn = bPtr->firstVisibleColumn; + } if (columns > bPtr->columnCount) { int i = columns - bPtr->columnCount; - + int curUsedColumnCount = bPtr->usedColumnCount; + bPtr->usedColumnCount = bPtr->columnCount; while (i--) { WMAddBrowserColumn(bPtr); } + bPtr->usedColumnCount = curUsedColumnCount; + } + /* browser loaded and columns < curMaxVisibleColumns */ + } else { + newFirstVisibleColumn = bPtr->firstVisibleColumn; + if (newFirstVisibleColumn + columns >= bPtr->usedColumnCount) { + removeColumn(bPtr, newFirstVisibleColumn + columns); } - - resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height); - - } else if (columns < bPtr->maxVisibleColumns) { - - resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height); } - - bPtr->maxVisibleColumns = columns; + resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height); + if (bPtr->flags.loaded) { + XClearArea(bPtr->view->screen->display, bPtr->view->window, 0, 0, + bPtr->view->size.width, bPtr->titleHeight, False); + scrollToColumn (bPtr, newFirstVisibleColumn, True); + } } @@ -187,11 +234,27 @@ drawTitleOfColumn(WMBrowser *bPtr, int column) W_DrawRelief(scr, bPtr->view->window, x, 0, bPtr->columnSize.width, bPtr->titleHeight, WRSunken); - if (column < bPtr->usedColumnCount && bPtr->titles[column]) - W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x, - (bPtr->titleHeight-WMFontHeight(scr->boldFont))/2, - bPtr->columnSize.width, WACenter, W_GC(scr->white), - False, bPtr->titles[column], strlen(bPtr->titles[column])); + if (column < bPtr->usedColumnCount && bPtr->titles[column]) { + int titleLen = strlen(bPtr->titles[column]); + int widthC = bPtr->columnSize.width-8; + + if (WMWidthOfString(scr->boldFont, bPtr->titles[column], titleLen) + > widthC) { + char *titleBuf = createTruncatedString(scr->boldFont, + bPtr->titles[column], + &titleLen, widthC); + W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x, + (bPtr->titleHeight-WMFontHeight(scr->boldFont))/2, + bPtr->columnSize.width, WACenter, W_GC(scr->white), + False, titleBuf, titleLen); + free (titleBuf); + } else { + W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x, + (bPtr->titleHeight-WMFontHeight(scr->boldFont))/2, + bPtr->columnSize.width, WACenter, W_GC(scr->white), + False, bPtr->titles[column], titleLen); + } + } } @@ -239,70 +302,50 @@ WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr) static void removeColumn(WMBrowser *bPtr, int column) { - int i; + int i, clearEnd, destroyEnd; WMList **clist; char **tlist; - - if (column >= bPtr->usedColumnCount) + + assert ((int) bPtr); + + column = (column < 0) ? 0 : column; + if (column >= bPtr->columnCount) { return; - + } if (column < bPtr->maxVisibleColumns) { - int tmp; -#if 0 - /* this code causes bugs */ - int limit; - - if(bPtr->usedColumnCount < bPtr->maxVisibleColumns) - limit = bPtr->usedColumnCount; - else - limit = bPtr->maxVisibleColumns; - - for (i=column; i < limit; i++) { - if (bPtr->titles[i]) - free(bPtr->titles[i]); - bPtr->titles[i] = NULL; - - WMClearList(bPtr->columns[i]); - bPtr->usedColumnCount--; - } -#else - for (i=column; i < bPtr->maxVisibleColumns; i++) { - if (bPtr->titles[i]) - free(bPtr->titles[i]); + clearEnd = bPtr->maxVisibleColumns; + destroyEnd = bPtr->columnCount; + bPtr->columnCount = bPtr->maxVisibleColumns; + } else { + clearEnd = column; + destroyEnd = bPtr->columnCount; + bPtr->columnCount = column; + } + if (column < bPtr->usedColumnCount) { + bPtr->usedColumnCount = column; + } + for (i=column; i < clearEnd; i++) { + if (bPtr->titles[i]) { + free(bPtr->titles[i]); bPtr->titles[i] = NULL; - - WMClearList(bPtr->columns[i]); - bPtr->usedColumnCount--; } - tmp = bPtr->columnCount; - for (i=bPtr->maxVisibleColumns; i < tmp; i++) { - if (bPtr->titles[i]) - free(bPtr->titles[i]); + WMClearList(bPtr->columns[i]); + } + for (;i < destroyEnd; i++) { + if (bPtr->titles[i]) { + free(bPtr->titles[i]); bPtr->titles[i] = NULL; - - WMDestroyWidget(bPtr->columns[i]); - bPtr->columns[i] = NULL; - bPtr->columnCount--; - bPtr->usedColumnCount--; } -#endif - } else { - int tmp = bPtr->columnCount; - for (i=column; i < tmp; i++) { - if (bPtr->titles[i]) - free(bPtr->titles[i]); - bPtr->titles[i] = NULL; - - WMDestroyWidget(bPtr->columns[i]); - bPtr->columns[i] = NULL; - bPtr->columnCount--; - bPtr->usedColumnCount--; - } + WMRemoveNotificationObserverWithName(bPtr, + WMListSelectionDidChangeNotification, + bPtr->columns[i]); + WMDestroyWidget(bPtr->columns[i]); + bPtr->columns[i] = NULL; } - clist = wmalloc(sizeof(WMList*)*bPtr->columnCount); - tlist = wmalloc(sizeof(char*)*bPtr->columnCount); - memcpy(clist, bPtr->columns, sizeof(WMList*)*bPtr->columnCount); - memcpy(tlist, bPtr->titles, sizeof(char*)*bPtr->columnCount); + clist = wmalloc(sizeof(WMList*) * (bPtr->columnCount)); + tlist = wmalloc(sizeof(char*) * (bPtr->columnCount)); + memcpy(clist, bPtr->columns, sizeof(WMList*) * (bPtr->columnCount)); + memcpy(tlist, bPtr->titles, sizeof(char*) * (bPtr->columnCount)); free(bPtr->titles); free(bPtr->columns); bPtr->titles = tlist; @@ -310,11 +353,10 @@ removeColumn(WMBrowser *bPtr, int column) } - WMListItem* WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column) { - if ((column < 0) || (column > bPtr->columnCount)) + if ((column < 0) || (column >= bPtr->usedColumnCount)) return NULL; return WMGetListSelectedItem(bPtr->columns[column]); @@ -430,8 +472,8 @@ resizeBrowser(WMWidget *w, unsigned int width, unsigned int height) bPtr->columnSize.height = height; if (bPtr->flags.isTitled) { - bPtr->columnSize.height -= TITLE_SPACING + bPtr->titleHeight; colY = TITLE_SPACING + bPtr->titleHeight; + bPtr->columnSize.height -= colY; } else { colY = 0; } @@ -481,8 +523,19 @@ paintItem(WMList *lPtr, int index, Drawable d, char *text, int state, XClearArea(scr->display, d, x, y, width, height, False); if (text) { - W_PaintText(view, d, scr->normalFont, x+4, y, width, - WALeft, W_GC(scr->black), False, text, strlen(text)); + /* Avoid overlaping... */ + int textLen = strlen(text); + int widthC = (state & WLDSIsBranch) ? width-20 : width-8; + if (WMWidthOfString(scr->normalFont, text, textLen) > widthC) { + char *textBuf = createTruncatedString(scr->normalFont, + text, &textLen, widthC); + W_PaintText(view, d, scr->normalFont, x+4, y, widthC, + WALeft, W_GC(scr->black), False, textBuf, textLen); + free(textBuf); + } else { + W_PaintText(view, d, scr->normalFont, x+4, y, widthC, + WALeft, W_GC(scr->black), False, text, textLen); + } } if (state & WLDSIsBranch) { @@ -511,7 +564,7 @@ scrollCallback(WMWidget *scroller, void *self) switch (WMGetScrollerHitPart(sPtr)) { case WSDecrementLine: if (bPtr->firstVisibleColumn > 0) { - scrollToColumn(bPtr, bPtr->firstVisibleColumn-1); + scrollToColumn(bPtr, bPtr->firstVisibleColumn-1, True); } break; @@ -519,44 +572,45 @@ scrollCallback(WMWidget *scroller, void *self) if (bPtr->firstVisibleColumn > 0) { newFirst = bPtr->firstVisibleColumn - bPtr->maxVisibleColumns; - scrollToColumn(bPtr, newFirst); + scrollToColumn(bPtr, newFirst, True); } break; case WSIncrementLine: - if (LAST_VISIBLE_COLUMN < bPtr->columnCount) { - scrollToColumn(bPtr, bPtr->firstVisibleColumn+1); + if (LAST_VISIBLE_COLUMN < bPtr->usedColumnCount) { + scrollToColumn(bPtr, bPtr->firstVisibleColumn+1, True); } break; case WSIncrementPage: - if (LAST_VISIBLE_COLUMN < bPtr->columnCount) { + if (LAST_VISIBLE_COLUMN < bPtr->usedColumnCount) { newFirst = bPtr->firstVisibleColumn + bPtr->maxVisibleColumns; if (newFirst+bPtr->maxVisibleColumns >= bPtr->columnCount) newFirst = bPtr->columnCount - bPtr->maxVisibleColumns; - scrollToColumn(bPtr, newFirst); + scrollToColumn(bPtr, newFirst, True); } break; case WSKnob: { - float floatValue; - float value = bPtr->columnCount - bPtr->maxVisibleColumns; - + double floatValue; + double value = bPtr->columnCount - bPtr->maxVisibleColumns; + floatValue = WMGetScrollerValue(bPtr->scroller); - + floatValue = (floatValue*value)/value; - - newFirst = floatValue*(float)(bPtr->columnCount - bPtr->maxVisibleColumns); + + newFirst = rint(floatValue*(float)(bPtr->columnCount - bPtr->maxVisibleColumns)); if (bPtr->firstVisibleColumn != newFirst) - scrollToColumn(bPtr, newFirst); - else + scrollToColumn(bPtr, newFirst, False); +/* else WMSetScrollerParameters(bPtr->scroller, floatValue, bPtr->maxVisibleColumns/(float)bPtr->columnCount); + */ } break; @@ -598,6 +652,14 @@ WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData) void +WMSetBrowserDoubleAction(WMBrowser *bPtr, WMAction *action, void *clientData) +{ + bPtr->doubleAction = action; + bPtr->doubleClientData = clientData; +} + + +void WMSetBrowserHasScroller(WMBrowser *bPtr, int hasScroller) { bPtr->flags.hasScroller = hasScroller; @@ -605,30 +667,34 @@ WMSetBrowserHasScroller(WMBrowser *bPtr, int hasScroller) -Bool +char* WMSetBrowserPath(WMBrowser *bPtr, char *path) { int i; char *str = wstrdup(path); - char *tmp; + char *tmp, *retPtr = NULL; int item; - Bool ok = True; WMListItem *listItem; + /* WMLoadBrowserColumnZero must be call first */ + if (!bPtr->flags.loaded) { + return False; + } + removeColumn(bPtr, 1); i = 0; tmp = strtok(str, bPtr->pathSeparator); while (tmp) { /* select it in the column */ - item = WMFindRowOfListItemWithTitle(bPtr->columns[i], tmp); + item = WMFindRowOfListItemWithTitle(bPtr->columns[i], tmp); if (item<0) { - ok = False; + retPtr = &path[(int)(tmp - str)]; break; } WMSelectListItem(bPtr->columns[i], item); WMSetListPosition(bPtr->columns[i], item); - + listItem = WMGetListItem(bPtr->columns[i], item); if (!listItem || !listItem->isBranch) { break; @@ -645,11 +711,25 @@ WMSetBrowserPath(WMBrowser *bPtr, char *path) } free(str); - bPtr->selectedColumn = bPtr->usedColumnCount - 1; + for (i = bPtr->usedColumnCount - 1; + (i > -1) && !WMGetListSelectedItem(bPtr->columns[i]); + i--); - scrollToColumn(bPtr, bPtr->columnCount-bPtr->maxVisibleColumns); + bPtr->selectedColumn = i; + + if (bPtr->columnCount < bPtr->maxVisibleColumns) { + int i = bPtr->maxVisibleColumns - bPtr->columnCount; + int curUsedColumnCount = bPtr->usedColumnCount; + bPtr->usedColumnCount = bPtr->columnCount; + while (i--) { + WMAddBrowserColumn(bPtr); + } + bPtr->usedColumnCount = curUsedColumnCount; + } + + scrollToColumn(bPtr, bPtr->columnCount - bPtr->maxVisibleColumns, True); - return ok; + return retPtr; } @@ -669,7 +749,11 @@ WMGetBrowserPathToColumn(WMBrowser *bPtr, int column) if (column >= bPtr->usedColumnCount) column = bPtr->usedColumnCount-1; - + + if (column < 0) { + return wstrdup(bPtr->pathSeparator); + } + /* calculate size of buffer */ size = 0; for (i = 0; i <= column; i++) { @@ -749,7 +833,7 @@ handleEvents(XEvent *event, void *data) static void -scrollToColumn(WMBrowser *bPtr, int column) +scrollToColumn(WMBrowser *bPtr, int column, Bool updateScroller) { int i; int x; @@ -764,7 +848,7 @@ scrollToColumn(WMBrowser *bPtr, int column) x = 0; bPtr->firstVisibleColumn = column; - for (i = 0; i < bPtr->usedColumnCount; i++) { + for (i = 0; i < bPtr->columnCount; i++) { if (COLUMN_IS_VISIBLE(bPtr, i)) { WMMoveWidget(bPtr->columns[i], x, WMWidgetView(bPtr->columns[i])->pos.y); @@ -778,15 +862,17 @@ scrollToColumn(WMBrowser *bPtr, int column) } /* update the scroller */ - if (bPtr->columnCount > bPtr->maxVisibleColumns) { - float value, proportion; - - value = bPtr->firstVisibleColumn - /(float)(bPtr->columnCount-bPtr->maxVisibleColumns); - proportion = bPtr->maxVisibleColumns/(float)bPtr->columnCount; - WMSetScrollerParameters(bPtr->scroller, value, proportion); - } else { - WMSetScrollerParameters(bPtr->scroller, 0, 1); + if (updateScroller) { + if (bPtr->columnCount > bPtr->maxVisibleColumns) { + float value, proportion; + + value = bPtr->firstVisibleColumn + /(float)(bPtr->columnCount-bPtr->maxVisibleColumns); + proportion = bPtr->maxVisibleColumns/(float)bPtr->columnCount; + WMSetScrollerParameters(bPtr->scroller, value, proportion); + } else { + WMSetScrollerParameters(bPtr->scroller, 0, 1); + } } if (bPtr->view->flags.mapped) @@ -803,10 +889,11 @@ listCallback(void *self, void *clientData) WMBrowser *bPtr = (WMBrowser*)clientData; WMList *lPtr = (WMList*)self; WMListItem *item; + static WMListItem *oldItem = NULL; int i; item = WMGetListSelectedItem(lPtr); - if (!item) + if (!item || oldItem == item) return; for (i=0; icolumnCount; i++) { @@ -815,8 +902,6 @@ listCallback(void *self, void *clientData) } assert(icolumnCount); - bPtr->selectedColumn = i; - /* columns at right must be cleared */ removeColumn(bPtr, i+1); /* open directory */ @@ -828,11 +913,30 @@ listCallback(void *self, void *clientData) i = 0; else i = bPtr->usedColumnCount-bPtr->maxVisibleColumns; - scrollToColumn(bPtr, i); + scrollToColumn(bPtr, i, True); /* call callback for click */ if (bPtr->action) (*bPtr->action)(bPtr, bPtr->clientData); + + oldItem = item; +} + + +static void +listDoubleCallback(void *self, void *clientData) +{ + WMBrowser *bPtr = (WMBrowser*)clientData; + WMList *lPtr = (WMList*)self; + WMListItem *item; + + item = WMGetListSelectedItem(lPtr); + if (!item) + return; + + /* call callback for double click */ + if (bPtr->doubleAction) + (*bPtr->doubleAction)(bPtr, bPtr->doubleClientData); } @@ -846,7 +950,7 @@ WMLoadBrowserColumnZero(WMBrowser *bPtr) loadColumn(bPtr, 0); /* make column 0 visible */ - scrollToColumn(bPtr, 0); + scrollToColumn(bPtr, 0, True); bPtr->flags.loaded = 1; } @@ -857,25 +961,50 @@ void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row) { WMList *list; - + if (column < 0 || column >= bPtr->usedColumnCount) return; - + list = WMGetBrowserListInColumn(bPtr, column); - + if (row < 0 || row >= WMGetListNumberOfRows(list)) return; - + removeColumn(bPtr, column+1); if (bPtr->usedColumnCount < bPtr->maxVisibleColumns) - scrollToColumn(bPtr, 0); + scrollToColumn(bPtr, 0, True); else - scrollToColumn(bPtr, bPtr->usedColumnCount-bPtr->maxVisibleColumns); - + scrollToColumn(bPtr, bPtr->usedColumnCount-bPtr->maxVisibleColumns, + True); + WMRemoveListItem(list, row); } +static void +listSelectionObserver(void *observerData, WMNotification *notification) +{ + WMBrowser *bPtr = (WMBrowser*)observerData; + int column, item = (int)WMGetNotificationClientData(notification); + WMList *lPtr = (WMList*)WMGetNotificationObject(notification); + + for (column=0; columnusedColumnCount; column++) + if (bPtr->columns[column] == lPtr) + break; + + /* this can happen when a list is being cleared with WMClearList + * after the column was removed */ + if (column >= bPtr->usedColumnCount) { + return; + } + + if (item < 0) + column--; + + bPtr->selectedColumn = column; +} + + int WMAddBrowserColumn(WMBrowser *bPtr) { @@ -915,7 +1044,11 @@ WMAddBrowserColumn(WMBrowser *bPtr) list = WMCreateList(bPtr); WMSetListAction(list, listCallback, bPtr); + WMSetListDoubleAction(list, listDoubleCallback, bPtr); WMSetListUserDrawProc(list, paintItem); + WMAddNotificationObserver(listSelectionObserver, bPtr, + WMListSelectionDidChangeNotification, list); + bPtr->columns[index] = list; WMResizeWidget(list, bPtr->columnSize.width, bPtr->columnSize.height); @@ -951,7 +1084,37 @@ destroyBrowser(WMBrowser *bPtr) free(bPtr->pathSeparator); + WMRemoveNotificationObserver(bPtr); + free(bPtr); } +static char* +createTruncatedString(WMFont *font, char *text, int *textLen, int width) +{ + int dLen = WMWidthOfString(font, ".", 1); + char *textBuf = (char*)wmalloc((*textLen)+4); + + if (width >= 3*dLen) { + int dddLen = 3*dLen; + int tmpTextLen = *textLen; + + strcpy(textBuf, text); + while (tmpTextLen + && (WMWidthOfString(font, textBuf, tmpTextLen)+dddLen > width)) + tmpTextLen--; + strcpy(textBuf+tmpTextLen, "..."); + *textLen = tmpTextLen+3; + } else if (width >= 2*dLen) { + strcpy(textBuf, ".."); + *textLen = 2; + } else if (width >= dLen) { + strcpy(textBuf, "."); + *textLen = 1; + } else { + *textBuf = '\0'; + *textLen = 0; + } + return textBuf; +} diff --git a/WINGs/wcolorpanel.c b/WINGs/wcolorpanel.c dissimilarity index 89% index 0d89f81b..dd46186a 100644 --- a/WINGs/wcolorpanel.c +++ b/WINGs/wcolorpanel.c @@ -1,2792 +1,3268 @@ -/* - * ColorPanel for WINGs - * - * by ]d : Original idea and basic initial code - * Pascal Hofstee : Code for wheeldrawing and calculating colors from it - * Alban Hertroys : Suggesting optimizations for algorithms for color- - * wheel, and implementation of final algorithm. - * Alfredo K. Kojima : For pointing out some memory-allocation problems. - * Marco van Hylckama-Vlieg : For once again doing the artwork ;-) -*/ - - -#include "WINGsP.h" -#include -#include -#include -#include -#include -#include -#include -#include - - -#ifndef PATH_MAX -#define PATH_MAX 1024 -#endif - - -typedef struct WheelMatrix { - unsigned int width, height; /* Size of the colorwheel */ - unsigned char *data[3]; /* Wheel data (R,G,B) */ - unsigned char values[256]; /* Precalculated values for R,G & B values 0..255 */ -} wheelMatrix; - -typedef struct W_ColorPanel { - WMWindow *win; - - /* Common Stuff */ - WMColorWell *colorWell; - WMButton *magnifyBtn; - WMButton *wheelBtn; - WMButton *slidersBtn; - WMButton *customPaletteBtn; - WMButton *colorListBtn; - - - /* ColorWheel Panel */ - WMFrame *wheelFrm; - WMSlider *wheelBrightnessS; - WMView *wheelView; - - /* Slider Panels */ - WMFrame *slidersFrm; - WMFrame *seperatorFrm; - WMButton *grayBtn; - WMButton *rgbBtn; - WMButton *cmykBtn; - WMButton *hsbBtn; - /* Gray Scale Panel */ - WMFrame *grayFrm; - WMLabel *grayMinL; - WMLabel *grayMaxL; - WMSlider *grayBrightnessS; - WMTextField *grayBrightnessT; - WMButton *grayPresetBtn[7]; - - /* RGB Panel */ - WMFrame *rgbFrm; - WMLabel *rgbMinL; - WMLabel *rgbMaxL; - WMSlider *rgbRedS; - WMSlider *rgbGreenS; - WMSlider *rgbBlueS; - WMTextField *rgbRedT; - WMTextField *rgbGreenT; - WMTextField *rgbBlueT; - - /* CMYK Panel */ - WMFrame *cmykFrm; - WMLabel *cmykMinL; - WMLabel *cmykMaxL; - WMSlider *cmykCyanS; - WMSlider *cmykMagentaS; - WMSlider *cmykYellowS; - WMSlider *cmykBlackS; - WMTextField *cmykCyanT; - WMTextField *cmykMagentaT; - WMTextField *cmykYellowT; - WMTextField *cmykBlackT; - - /* HSB Panel */ - WMFrame *hsbFrm; - WMSlider *hsbHueS; - WMSlider *hsbSaturationS; - WMSlider *hsbBrightnessS; - WMTextField *hsbHueT; - WMTextField *hsbSaturationT; - WMTextField *hsbBrightnessT; - - /* Custom Palette Panel*/ - WMFrame *customPaletteFrm; - WMPopUpButton *customPaletteHistoryBtn; - WMFrame *customPaletteContentFrm; - WMPopUpButton *customPaletteMenuBtn; - WMView *customPaletteContentView; - - /* Color List Panel */ - WMFrame *colorListFrm; - WMPopUpButton *colorListHistoryBtn; - WMList *colorListContentLst; - WMPopUpButton *colorListColorMenuBtn; - WMPopUpButton *colorListListMenuBtn; - - /* Look-Up Tables and Images */ - wheelMatrix *wheelMtrx; - Pixmap wheelImg; - Pixmap selectionImg; - Pixmap selectionBackImg; - RImage *customPaletteImg; - char *lastBrowseDir; - - /* Common Data Fields */ - RColor color; /* Current color */ - RHSVColor hsvcolor; /* Backup HSV Color */ - WMColorPanelMode mode; /* Current color selection mode */ - WMColorPanelMode slidersmode; /* Current color selection mode at sliders panel */ - WMColorPanelMode lastChanged; /* Panel that last changed the color */ - int colx, coly; /* (x,y) of selection-marker in WheelMode */ - int palx, paly; /* (x,y) of selection-marker in CustomPaletteMode */ - float palXRatio, palYRatio; /* Ratios in x & y between original and scaled palettesize */ - int currentPalette; - char *configurationPath; - - struct { - unsigned int dragging:1; - unsigned int done:1; - } flags; -} W_ColorPanel; - -enum { - menuNewFromFile, - menuRename, - menuRemove, - menuCopy, - menuNewFromClipboard -} customPaletteMenuItem; - -#define PWIDTH 194 -#define PHEIGHT 266 -#define colorWheelSize 150 -#define customPaletteWidth 182 -#define customPaletteHeight 106 -#define knobThickness 8 - -#define SPECTRUM_WIDTH 511 -#define SPECTRUM_HEIGHT 360 - -#define COLORWHEEL_PART 1 -#define CUSTOMPALETTE_PART 2 -#define BUFSIZE 1024 - -#undef EASTEREGG - -#define RGBTXT "/usr/X11R6/lib/X11/rgb.txt" -#define MAX_LENGTH 1024 - - -WMFont *globalFont; - - -static int fetchImageFile(char* toPath, char *imageSrcFile, char *imageDestFileName); -char *generateNewFilename(char *Path, char *curName); - -static void modeButtonCallback(WMWidget *w, void *data); -static int getPickerPart(W_ColorPanel *panel, int x, int y); -static void readConfiguration(W_ColorPanel *panel); -static void readXColors(W_ColorPanel *panel); - -static wheelMatrix* wheelCreateMatrix(unsigned int width , unsigned int height); -static void wheelDestroyMatrix(wheelMatrix *matrix); -static wheelMatrix* wheelInitMatrix(W_ColorPanel *panel); -static void wheelRender(W_ColorPanel *panel); -static Bool wheelInsideColorWheel(W_ColorPanel *panel, unsigned long ofs); -static void wheelPaint(W_ColorPanel *panel); - -static void wheelHandleEvents(XEvent *event, void *data); -static void wheelHandleActionEvents(XEvent *event, void *data); -static void wheelBrightnessSliderCallback(WMWidget *w, void *data); -static void wheelUpdateSelection(W_ColorPanel *panel); -static void wheelUndrawSelection(W_ColorPanel *panel); - -static void wheelPositionSelection(W_ColorPanel *panel, int x, int y); -static void wheelPositionSelectionOutBounds(W_ColorPanel *panel, int x, int y); -static void wheelUpdateBrightnessGradientFromHSV (W_ColorPanel *panel, RHSVColor topColor); -static void wheelUpdateBrightnessGradientFromLocation (W_ColorPanel *panel); -static void wheelUpdateBrightnessGradient(W_ColorPanel *panel, RColor topColor); - -static void grayBrightnessSliderCallback(WMWidget *w, void *data); -static void grayPresetButtonCallback(WMWidget *w, void *data); -static void grayBrightnessTextFieldCallback(void *observerData, WMNotification *notification); - -static void rgbSliderCallback(WMWidget *w, void *data); -static void rgbTextFieldCallback(void *observerData, WMNotification *notification); - -static void cmykSliderCallback(WMWidget *w, void *data); -static void cmykTextFieldCallback(void *observerData, WMNotification *notification); - -static void hsbSliderCallback(WMWidget *w, void *data); -static void hsbTextFieldCallback(void *observerData, WMNotification *notification); -static void hsbUpdateBrightnessGradient(W_ColorPanel *panel); -static void hsbUpdateSaturationGradient(W_ColorPanel *panel); -static void hsbUpdateHueGradient(W_ColorPanel *panel); - -static void customRenderSpectrum(W_ColorPanel *panel); -static void customSetPalette(W_ColorPanel *panel); -static void customPaletteHandleEvents(XEvent *event, void *data); -static void customPaletteHandleActionEvents(XEvent *event, void *data); -static void customPalettePositionSelection(W_ColorPanel *panel, int x, int y); -static void customPalettePositionSelectionOutBounds(W_ColorPanel *panel, int x, int y); -static void customPaletteMenuCallback(WMWidget *w, void *data); -static void customPaletteHistoryCallback(WMWidget *w, void *data); - -static void customPaletteMenuNewFromFile(W_ColorPanel *panel); -static void customPaletteMenuRename(W_ColorPanel *panel); -static void customPaletteMenuRemove(W_ColorPanel *panel); - -static void colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect); -static void colorListSelect(WMWidget *w, void *data); - -static void wheelInit(W_ColorPanel *panel); -static void grayInit(W_ColorPanel *panel); -static void rgbInit(W_ColorPanel *panel); -static void cmykInit(W_ColorPanel *panel); -static void hsbInit(W_ColorPanel *panel); - - -static WMColorPanel* -makeColorPanel(WMScreen *scrPtr, char *name) -{ - WMColorPanel *panel; - RImage *image; - WMPixmap *pixmap; - RColor from; - RColor to; - int i; - int x,y; - - - globalFont = WMSystemFontOfSize(scrPtr, 12); - panel = wmalloc(sizeof(WMColorPanel)); - memset(panel, 0, sizeof(WMColorPanel)); - - panel->win = WMCreateWindowWithStyle(scrPtr, name, WMTitledWindowMask | WMClosableWindowMask | WMResizableWindowMask); - WMResizeWidget(panel->win, PWIDTH, PHEIGHT); - WMSetWindowTitle(panel->win, "Colors"); - - - /* Set Default ColorPanel Mode(s) */ - panel->mode = WMWheelModeColorPanel; - panel->lastChanged = WMWheelModeColorPanel; - panel->slidersmode = WMRGBModeColorPanel; - panel->configurationPath = wstrappend(wusergnusteppath(), "/Library/Colors/"); - - /* Some Generic Purpose Widgets */ - panel->colorWell = WMCreateColorWell(panel->win); - WMResizeWidget(panel->colorWell, 134, 36); - WSetColorWellBordered(panel->colorWell, False); - WMMoveWidget(panel->colorWell, 56, 4); - - panel->magnifyBtn = WMCreateCommandButton(panel->win); - WMResizeWidget(panel->magnifyBtn, 46, 36); - WMMoveWidget(panel->magnifyBtn, 6,4); - WMSetButtonImagePosition(panel->magnifyBtn, WIPImageOnly); - WMSetButtonImage(panel->magnifyBtn, scrPtr->magnifyIcon); - WMSetButtonAltImage(panel->magnifyBtn, scrPtr->magnifyAltIcon); - - panel->wheelBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->wheelBtn, 46, 32); - WMMoveWidget(panel->wheelBtn, 6, 44); - WMSetButtonAction(panel->wheelBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->wheelBtn, WIPImageOnly); - WMSetButtonImage(panel->wheelBtn, scrPtr->wheelIcon); - WMSetButtonAltImage(panel->wheelBtn, scrPtr->wheelAltIcon); - - panel->slidersBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->slidersBtn, 46, 32); - WMMoveWidget(panel->slidersBtn, 52, 44); - WMSetButtonAction(panel->slidersBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->slidersBtn, WIPImageOnly); - WMSetButtonImage(panel->slidersBtn, scrPtr->rgbIcon); - WMSetButtonAltImage(panel->slidersBtn, scrPtr->rgbAltIcon); - - panel->customPaletteBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->customPaletteBtn, 46, 32); - WMMoveWidget(panel->customPaletteBtn, 98, 44); - WMSetButtonAction(panel->customPaletteBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->customPaletteBtn, WIPImageOnly); - WMSetButtonImage(panel->customPaletteBtn, scrPtr->customPaletteIcon); - WMSetButtonAltImage(panel->customPaletteBtn, scrPtr->customPaletteAltIcon); - - panel->colorListBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->colorListBtn, 46, 32); - WMMoveWidget(panel->colorListBtn, 144, 44); - WMSetButtonAction(panel->colorListBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->colorListBtn, WIPImageOnly); - WMSetButtonImage(panel->colorListBtn, scrPtr->colorListIcon); - WMSetButtonAltImage(panel->colorListBtn, scrPtr->colorListAltIcon); - - /* Let's Group some of them together */ - WMGroupButtons(panel->wheelBtn, panel->slidersBtn); - WMGroupButtons(panel->wheelBtn, panel->customPaletteBtn); - WMGroupButtons(panel->wheelBtn, panel->colorListBtn); - - /* Widgets for the ColorWheel Panel */ - panel->wheelFrm = WMCreateFrame(panel->win); - WMSetFrameRelief(panel->wheelFrm, WRFlat); - WMResizeWidget(panel->wheelFrm, PWIDTH - 8, PHEIGHT - 80 - 26); - WMMoveWidget(panel->wheelFrm, 5, 80); - - panel->wheelView = W_CreateView(W_VIEW(panel->wheelFrm)); - /* XXX Can we create a view ? */ - W_ResizeView(panel->wheelView, colorWheelSize+4, colorWheelSize+4); - W_MoveView(panel->wheelView, 0, 0); - - /* Create an event handler to handle expose/click events in the ColorWheel */ - WMCreateEventHandler(panel->wheelView, ButtonPressMask|ButtonReleaseMask|EnterWindowMask - |LeaveWindowMask|ButtonMotionMask, wheelHandleActionEvents, panel); - - WMCreateEventHandler(panel->wheelView, ExposureMask, wheelHandleEvents, panel); - - panel->wheelBrightnessS = WMCreateSlider(panel->wheelFrm); - WMResizeWidget(panel->wheelBrightnessS, 16, 153); - WMMoveWidget(panel->wheelBrightnessS, 5+colorWheelSize+14, 1); - WMSetSliderMinValue(panel->wheelBrightnessS, 0); - WMSetSliderMaxValue(panel->wheelBrightnessS, 255); - WMSetSliderAction(panel->wheelBrightnessS, wheelBrightnessSliderCallback, panel); - WMSetSliderKnobThickness(panel->wheelBrightnessS, knobThickness); - - - /* Widgets for the Slider Panels */ - panel->slidersFrm = WMCreateFrame(panel->win); - WMSetFrameRelief(panel->slidersFrm, WRFlat); - WMResizeWidget(panel->slidersFrm, PWIDTH - 8, PHEIGHT - 80 - 26); - WMMoveWidget(panel->slidersFrm, 4, 80); - - panel->seperatorFrm = WMCreateFrame(panel->slidersFrm); - WMSetFrameRelief(panel->seperatorFrm, WRPushed); - WMResizeWidget(panel->seperatorFrm, PWIDTH - 8, 2); - WMMoveWidget(panel->seperatorFrm, 0, 1); - - panel->grayBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->grayBtn, 46, 24); - WMMoveWidget(panel->grayBtn, 1, 8); - WMSetButtonAction(panel->grayBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->grayBtn, WIPImageOnly); - WMSetButtonImage(panel->grayBtn, scrPtr->grayIcon); - WMSetButtonAltImage(panel->grayBtn, scrPtr->grayAltIcon); - - panel->rgbBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->rgbBtn, 46, 24); - WMMoveWidget(panel->rgbBtn, 47, 8); - WMSetButtonAction(panel->rgbBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->rgbBtn, WIPImageOnly); - WMSetButtonImage(panel->rgbBtn, scrPtr->rgbIcon); - WMSetButtonAltImage(panel->rgbBtn, scrPtr->rgbAltIcon); - - panel->cmykBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->cmykBtn, 46, 24); - WMMoveWidget(panel->cmykBtn, 93, 8); - WMSetButtonAction(panel->cmykBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->cmykBtn, WIPImageOnly); - WMSetButtonImage(panel->cmykBtn, scrPtr->cmykIcon); - WMSetButtonAltImage(panel->cmykBtn, scrPtr->cmykAltIcon); - - panel->hsbBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); - WMResizeWidget(panel->hsbBtn, 46, 24); - WMMoveWidget(panel->hsbBtn, 139, 8); - WMSetButtonAction(panel->hsbBtn, modeButtonCallback, panel); - WMSetButtonImagePosition(panel->hsbBtn, WIPImageOnly); - WMSetButtonImage(panel->hsbBtn, scrPtr->hsbIcon); - WMSetButtonAltImage(panel->hsbBtn, scrPtr->hsbAltIcon); - - /* Let's Group the Slider Panel Buttons Together */ - WMGroupButtons(panel->grayBtn, panel->rgbBtn); - WMGroupButtons(panel->grayBtn, panel->cmykBtn); - WMGroupButtons(panel->grayBtn, panel->hsbBtn); - - /* Widgets for GrayScale Panel */ - panel->grayFrm = WMCreateFrame(panel->slidersFrm); - WMSetFrameRelief(panel->grayFrm, WRFlat); - WMResizeWidget(panel->grayFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); - WMMoveWidget(panel->grayFrm, 0, 34); - - panel->grayMinL = WMCreateLabel(panel->grayFrm); - WMResizeWidget(panel->grayMinL, 20, 10); - WMMoveWidget(panel->grayMinL, 2, 2); - WMSetLabelText(panel->grayMinL, "0"); - WMSetLabelTextAlignment(panel->grayMinL, WALeft); - WMSetLabelTextColor(panel->grayMinL, WMDarkGrayColor(scrPtr)); - WMSetLabelFont(panel->grayMinL, WMSystemFontOfSize(scrPtr, 8)); - - panel->grayMaxL = WMCreateLabel(panel->grayFrm); - WMResizeWidget(panel->grayMaxL, 40, 10); - WMMoveWidget(panel->grayMaxL, 104, 2); - WMSetLabelText(panel->grayMaxL, "100"); - WMSetLabelTextAlignment(panel->grayMaxL, WARight); - WMSetLabelTextColor(panel->grayMaxL, WMDarkGrayColor(scrPtr)); - WMSetLabelFont(panel->grayMaxL, WMSystemFontOfSize(scrPtr, 8)); - - panel->grayBrightnessS = WMCreateSlider(panel->grayFrm); - WMResizeWidget(panel->grayBrightnessS, 141, 16); - WMMoveWidget(panel->grayBrightnessS, 2, 14); - WMSetSliderMinValue(panel->grayBrightnessS, 0); - WMSetSliderMaxValue(panel->grayBrightnessS, 100); - WMSetSliderKnobThickness(panel->grayBrightnessS, knobThickness); - WMSetSliderAction(panel->grayBrightnessS, grayBrightnessSliderCallback, panel); - - from.red = 0; - from.green = 0; - from.blue = 0; - - to.red = 255; - to.green = 255; - to.blue = 255; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - RDestroyImage(image); - W_PaintText(W_VIEW(panel->grayBrightnessS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Brightness", strlen("Brightness")); - WMSetSliderImage(panel->grayBrightnessS, pixmap); - WMReleasePixmap(pixmap); - - panel->grayBrightnessT = WMCreateTextField(panel->grayFrm); - WMResizeWidget(panel->grayBrightnessT, 40, 18); - WMMoveWidget(panel->grayBrightnessT, 146, 13); - WMSetTextFieldAlignment(panel->grayBrightnessT, WALeft); - WMAddNotificationObserver(grayBrightnessTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->grayBrightnessT); - - image = RCreateImage(13,13,False); - for (i=0; i < 7; i++) { - for (x=0; x < 13; x++) { - for (y=0; y < 13; y++) { - image->data[0][y*13+x] = 255/6*i; - image->data[1][y*13+x] = 255/6*i; - image->data[2][y*13+x] = 255/6*i; - } - } - panel->grayPresetBtn[i] = WMCreateCommandButton(panel->grayFrm); - WMResizeWidget(panel->grayPresetBtn[i], 20, 24); - WMMoveWidget(panel->grayPresetBtn[i], 2+(i*20), 34); - WMSetButtonAction(panel->grayPresetBtn[i], grayPresetButtonCallback, panel); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - WMSetButtonImage(panel->grayPresetBtn[i], pixmap); - WMSetButtonImagePosition(panel->grayPresetBtn[i], WIPImageOnly); - WMReleasePixmap(pixmap); - } - RDestroyImage(image); - /* End of GrayScale Panel */ - - /* Widgets for RGB Panel */ - panel->rgbFrm = WMCreateFrame(panel->slidersFrm); - WMSetFrameRelief(panel->rgbFrm, WRFlat); - WMResizeWidget(panel->rgbFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); - WMMoveWidget(panel->rgbFrm, 0, 34); - - panel->rgbMinL = WMCreateLabel(panel->rgbFrm); - WMResizeWidget(panel->rgbMinL, 20, 10); - WMMoveWidget(panel->rgbMinL, 2, 2); - WMSetLabelText(panel->rgbMinL, "0"); - WMSetLabelTextAlignment(panel->rgbMinL, WALeft); - WMSetLabelTextColor(panel->rgbMinL, WMDarkGrayColor(scrPtr)); - WMSetLabelFont(panel->rgbMinL, WMSystemFontOfSize(scrPtr, 8)); - - panel->rgbMaxL = WMCreateLabel(panel->rgbFrm); - WMResizeWidget(panel->rgbMaxL, 40, 10); - WMMoveWidget(panel->rgbMaxL, 104, 2); - WMSetLabelText(panel->rgbMaxL, "255"); - WMSetLabelTextAlignment(panel->rgbMaxL, WARight); - WMSetLabelTextColor(panel->rgbMaxL, WMDarkGrayColor(scrPtr)); - WMSetLabelFont(panel->rgbMaxL, WMSystemFontOfSize(scrPtr, 8)); - - panel->rgbRedS = WMCreateSlider(panel->rgbFrm); - WMResizeWidget(panel->rgbRedS, 141, 16); - WMMoveWidget(panel->rgbRedS, 2, 14); - WMSetSliderMinValue(panel->rgbRedS, 0); - WMSetSliderMaxValue(panel->rgbRedS, 255); - WMSetSliderKnobThickness(panel->rgbRedS, knobThickness); - WMSetSliderAction(panel->rgbRedS, rgbSliderCallback, panel); - - to.red = 255; - to.green = 0; - to.blue = 0; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->rgbRedS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Red", strlen("Red")); - RDestroyImage(image); - WMSetSliderImage(panel->rgbRedS, pixmap); - WMReleasePixmap(pixmap); - - panel->rgbRedT = WMCreateTextField(panel->rgbFrm); - WMResizeWidget(panel->rgbRedT, 40, 18); - WMMoveWidget(panel->rgbRedT, 146, 13); - WMSetTextFieldAlignment(panel->rgbRedT, WALeft); - WMAddNotificationObserver(rgbTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->rgbRedT); - - - panel->rgbGreenS = WMCreateSlider(panel->rgbFrm); - WMResizeWidget(panel->rgbGreenS, 141, 16); - WMMoveWidget(panel->rgbGreenS, 2, 36); - WMSetSliderMinValue(panel->rgbGreenS, 0); - WMSetSliderMaxValue(panel->rgbGreenS, 255); - WMSetSliderKnobThickness(panel->rgbGreenS, knobThickness); - WMSetSliderAction(panel->rgbGreenS, rgbSliderCallback, panel); - - to.red = 0; - to.green = 255; - to.blue = 0; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->rgbGreenS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Green", strlen("Green")); - RDestroyImage(image); - WMSetSliderImage(panel->rgbGreenS, pixmap); - WMReleasePixmap(pixmap); - - panel->rgbGreenT = WMCreateTextField(panel->rgbFrm); - WMResizeWidget(panel->rgbGreenT, 40, 18); - WMMoveWidget(panel->rgbGreenT, 146, 35); - WMSetTextFieldAlignment(panel->rgbGreenT, WALeft); - WMAddNotificationObserver(rgbTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->rgbGreenT); - - - panel->rgbBlueS = WMCreateSlider(panel->rgbFrm); - WMResizeWidget(panel->rgbBlueS, 141, 16); - WMMoveWidget(panel->rgbBlueS, 2, 58); - WMSetSliderMinValue(panel->rgbBlueS, 0); - WMSetSliderMaxValue(panel->rgbBlueS, 255); - WMSetSliderKnobThickness(panel->rgbBlueS, knobThickness); - WMSetSliderAction(panel->rgbBlueS, rgbSliderCallback, panel); - - to.red = 0; - to.green = 0; - to.blue = 255; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->rgbBlueS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Blue", strlen("Blue")); - RDestroyImage(image); - WMSetSliderImage(panel->rgbBlueS, pixmap); - WMReleasePixmap(pixmap); - - panel->rgbBlueT = WMCreateTextField(panel->rgbFrm); - WMResizeWidget(panel->rgbBlueT, 40, 18); - WMMoveWidget(panel->rgbBlueT, 146, 57); - WMSetTextFieldAlignment(panel->rgbBlueT, WALeft); - WMAddNotificationObserver(rgbTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->rgbBlueT); - /* End of RGB Panel */ - - /* Widgets for CMYK Panel */ - panel->cmykFrm = WMCreateFrame(panel->slidersFrm); - WMSetFrameRelief(panel->cmykFrm, WRFlat); - WMResizeWidget(panel->cmykFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); - WMMoveWidget(panel->cmykFrm, 0, 34); - - panel->cmykMinL = WMCreateLabel(panel->cmykFrm); - WMResizeWidget(panel->cmykMinL, 20, 10); - WMMoveWidget(panel->cmykMinL, 2, 2); - WMSetLabelText(panel->cmykMinL, "0"); - WMSetLabelTextAlignment(panel->cmykMinL, WALeft); - WMSetLabelTextColor(panel->cmykMinL, WMDarkGrayColor(scrPtr)); - WMSetLabelFont(panel->cmykMinL, WMSystemFontOfSize(scrPtr, 8)); - - panel->cmykMaxL = WMCreateLabel(panel->cmykFrm); - WMResizeWidget(panel->cmykMaxL, 40, 10); - WMMoveWidget(panel->cmykMaxL, 104, 2); - WMSetLabelText(panel->cmykMaxL, "100"); - WMSetLabelTextAlignment(panel->cmykMaxL, WARight); - WMSetLabelTextColor(panel->cmykMaxL, WMDarkGrayColor(scrPtr)); - WMSetLabelFont(panel->cmykMaxL, WMSystemFontOfSize(scrPtr, 8)); - - panel->cmykCyanS = WMCreateSlider(panel->cmykFrm); - WMResizeWidget(panel->cmykCyanS, 141, 16); - WMMoveWidget(panel->cmykCyanS, 2, 14); - WMSetSliderMinValue(panel->cmykCyanS, 0); - WMSetSliderMaxValue(panel->cmykCyanS, 100); - WMSetSliderKnobThickness(panel->cmykCyanS, knobThickness); - WMSetSliderAction(panel->cmykCyanS, cmykSliderCallback, panel); - - from.red = 255; - from.green = 255; - from.blue = 255; - - to.red = 0; - to.green = 255; - to.blue = 255; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykCyanS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Cyan", strlen("Cyan")); - RDestroyImage(image); - WMSetSliderImage(panel->cmykCyanS, pixmap); - WMReleasePixmap(pixmap); - - panel->cmykCyanT = WMCreateTextField(panel->cmykFrm); - WMResizeWidget(panel->cmykCyanT, 40, 18); - WMMoveWidget(panel->cmykCyanT, 146, 13); - WMSetTextFieldAlignment(panel->cmykCyanT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->cmykCyanT); - - - panel->cmykMagentaS = WMCreateSlider(panel->cmykFrm); - WMResizeWidget(panel->cmykMagentaS, 141, 16); - WMMoveWidget(panel->cmykMagentaS, 2, 36); - WMSetSliderMinValue(panel->cmykMagentaS, 0); - WMSetSliderMaxValue(panel->cmykMagentaS, 100); - WMSetSliderKnobThickness(panel->cmykMagentaS, knobThickness); - WMSetSliderAction(panel->cmykMagentaS, cmykSliderCallback, panel); - - to.red = 255; - to.green = 0; - to.blue = 255; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykMagentaS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Magenta", strlen("Magenta")); - RDestroyImage(image); - WMSetSliderImage(panel->cmykMagentaS, pixmap); - WMReleasePixmap(pixmap); - - panel->cmykMagentaT = WMCreateTextField(panel->cmykFrm); - WMResizeWidget(panel->cmykMagentaT, 40, 18); - WMMoveWidget(panel->cmykMagentaT, 146, 35); - WMSetTextFieldAlignment(panel->cmykMagentaT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->cmykMagentaT); - - - panel->cmykYellowS = WMCreateSlider(panel->cmykFrm); - WMResizeWidget(panel->cmykYellowS, 141, 16); - WMMoveWidget(panel->cmykYellowS, 2, 58); - WMSetSliderMinValue(panel->cmykYellowS, 0); - WMSetSliderMaxValue(panel->cmykYellowS, 100); - WMSetSliderKnobThickness(panel->cmykYellowS, knobThickness); - WMSetSliderAction(panel->cmykYellowS, cmykSliderCallback, panel); - - to.red = 255; - to.green = 255; - to.blue = 0; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykYellowS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Yellow", strlen("Yellow")); - RDestroyImage(image); - WMSetSliderImage(panel->cmykYellowS, pixmap); - WMReleasePixmap(pixmap); - - panel->cmykYellowT = WMCreateTextField(panel->cmykFrm); - WMResizeWidget(panel->cmykYellowT, 40, 18); - WMMoveWidget(panel->cmykYellowT, 146, 57); - WMSetTextFieldAlignment(panel->cmykYellowT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->cmykYellowT); - - - panel->cmykBlackS = WMCreateSlider(panel->cmykFrm); - WMResizeWidget(panel->cmykBlackS, 141, 16); - WMMoveWidget(panel->cmykBlackS, 2, 80); - WMSetSliderMinValue(panel->cmykBlackS, 0); - WMSetSliderMaxValue(panel->cmykBlackS, 100); - WMSetSliderValue(panel->cmykBlackS, 0); - WMSetSliderKnobThickness(panel->cmykBlackS, knobThickness); - WMSetSliderAction(panel->cmykBlackS, cmykSliderCallback, panel); - - to.red = 0; - to.green = 0; - to.blue = 0; - - image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykBlackS), pixmap->pixmap, WMSystemFontOfSize(scrPtr, 12), 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Black", strlen("Black")); - RDestroyImage(image); - WMSetSliderImage(panel->cmykBlackS, pixmap); - WMReleasePixmap(pixmap); - - panel->cmykBlackT = WMCreateTextField(panel->cmykFrm); - WMResizeWidget(panel->cmykBlackT, 40, 18); - WMMoveWidget(panel->cmykBlackT, 146, 79); - WMSetTextFieldAlignment(panel->cmykBlackT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->cmykBlackT); - /* End of CMYK Panel */ - - /* Widgets for HSB Panel */ - panel->hsbFrm = WMCreateFrame(panel->slidersFrm); - WMSetFrameRelief(panel->hsbFrm, WRFlat); - WMResizeWidget(panel->hsbFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); - WMMoveWidget(panel->hsbFrm, 0, 34); - - panel->hsbHueS = WMCreateSlider(panel->hsbFrm); - WMResizeWidget(panel->hsbHueS, 141, 16); - WMMoveWidget(panel->hsbHueS, 2, 14); - WMSetSliderMinValue(panel->hsbHueS, 0); - WMSetSliderMaxValue(panel->hsbHueS, 359); - WMSetSliderKnobThickness(panel->hsbHueS, knobThickness); - WMSetSliderAction(panel->hsbHueS, hsbSliderCallback, panel); - - panel->hsbHueT = WMCreateTextField(panel->hsbFrm); - WMResizeWidget(panel->hsbHueT, 40, 18); - WMMoveWidget(panel->hsbHueT, 146, 13); - WMSetTextFieldAlignment(panel->hsbHueT, WALeft); - WMAddNotificationObserver(hsbTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->hsbHueT); - - - panel->hsbSaturationS = WMCreateSlider(panel->hsbFrm); - WMResizeWidget(panel->hsbSaturationS, 141, 16); - WMMoveWidget(panel->hsbSaturationS, 2, 36); - WMSetSliderMinValue(panel->hsbSaturationS, 0); - WMSetSliderMaxValue(panel->hsbSaturationS, 100); - WMSetSliderKnobThickness(panel->hsbSaturationS, knobThickness); - WMSetSliderAction(panel->hsbSaturationS, hsbSliderCallback, panel); - - panel->hsbSaturationT = WMCreateTextField(panel->hsbFrm); - WMResizeWidget(panel->hsbSaturationT, 40, 18); - WMMoveWidget(panel->hsbSaturationT, 146, 35); - WMSetTextFieldAlignment(panel->hsbSaturationT, WALeft); - WMAddNotificationObserver(hsbTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->hsbSaturationT); - - - panel->hsbBrightnessS = WMCreateSlider(panel->hsbFrm); - WMResizeWidget(panel->hsbBrightnessS, 141, 16); - WMMoveWidget(panel->hsbBrightnessS, 2, 58); - WMSetSliderMinValue(panel->hsbBrightnessS, 0); - WMSetSliderMaxValue(panel->hsbBrightnessS, 100); - WMSetSliderKnobThickness(panel->hsbBrightnessS, knobThickness); - WMSetSliderAction(panel->hsbBrightnessS, hsbSliderCallback, panel); - - panel->hsbBrightnessT = WMCreateTextField(panel->hsbFrm); - WMResizeWidget(panel->hsbBrightnessT, 40, 18); - WMMoveWidget(panel->hsbBrightnessT, 146, 57); - WMSetTextFieldAlignment(panel->hsbBrightnessT, WALeft); - WMAddNotificationObserver(hsbTextFieldCallback, panel, \ - WMTextDidEndEditingNotification, panel->hsbBrightnessT); - /* End of HSB Panel */ - - /* Widgets for the CustomPalette Panel */ - panel->customPaletteFrm = WMCreateFrame(panel->win); - WMSetFrameRelief(panel->customPaletteFrm, WRFlat); - WMResizeWidget(panel->customPaletteFrm, PWIDTH - 8, PHEIGHT - 80 - 26); - WMMoveWidget(panel->customPaletteFrm, 5, 80); - - panel->customPaletteHistoryBtn = WMCreatePopUpButton(panel->customPaletteFrm); - WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, "Spectrum"); - WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1); - WMSetPopUpButtonAction(panel->customPaletteHistoryBtn, customPaletteHistoryCallback, panel); - WMResizeWidget(panel->customPaletteHistoryBtn, PWIDTH - 8, 20); - WMMoveWidget(panel->customPaletteHistoryBtn, 0, 0); - - panel->customPaletteContentFrm = WMCreateFrame(panel->customPaletteFrm); - WMSetFrameRelief(panel->customPaletteContentFrm, WRSunken); - WMResizeWidget(panel->customPaletteContentFrm, PWIDTH - 8, PHEIGHT - 156); - WMMoveWidget(panel->customPaletteContentFrm, 0, 23); - - panel->customPaletteContentView = W_CreateView(W_VIEW(panel->customPaletteContentFrm)); - /* XXX Can we create a view ? */ - W_ResizeView(panel->customPaletteContentView, customPaletteWidth, customPaletteHeight); - W_MoveView(panel->customPaletteContentView, 2, 2); - - /* Create an event handler to handle expose/click events in the CustomPalette */ - WMCreateEventHandler(panel->customPaletteContentView, ButtonPressMask|ButtonReleaseMask|EnterWindowMask - |LeaveWindowMask|ButtonMotionMask, customPaletteHandleActionEvents, panel); - - WMCreateEventHandler(panel->customPaletteContentView, ExposureMask, customPaletteHandleEvents, panel); - - panel->customPaletteMenuBtn = WMCreatePopUpButton(panel->customPaletteFrm); - WMSetPopUpButtonPullsDown(panel->customPaletteMenuBtn, 1); - WMSetPopUpButtonText(panel->customPaletteMenuBtn, "Palette"); - WMSetPopUpButtonAction(panel->customPaletteMenuBtn, customPaletteMenuCallback, panel); - WMResizeWidget(panel->customPaletteMenuBtn, PWIDTH - 8, 20); - WMMoveWidget(panel->customPaletteMenuBtn, 0, PHEIGHT - 130); - - WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "New from File..."); /* item 0 */ - WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "Rename..."); /* item 1 */ - WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "Remove"); /* item 2 */ - WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "Copy"); /* item 3 */ - WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "New from Clipboard"); /* item 4 */ - - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 1, 0); - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 2, 0); - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 3, 0); - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 4, 0); - - customRenderSpectrum(panel); - panel->currentPalette = 0; - - - /* Widgets for the ColorList Panel */ - panel->colorListFrm = WMCreateFrame(panel->win); - WMSetFrameRelief(panel->colorListFrm, WRFlat); - WMResizeWidget(panel->colorListFrm, PWIDTH - 8, PHEIGHT - 80 - 26); - WMMoveWidget(panel->colorListFrm, 5, 80); - - panel->colorListHistoryBtn = WMCreatePopUpButton(panel->colorListFrm); - WMAddPopUpButtonItem(panel->colorListHistoryBtn, "X11-Colors"); - WMSetPopUpButtonSelectedItem(panel->colorListHistoryBtn, WMGetPopUpButtonNumberOfItems(panel->colorListHistoryBtn)-1); -// WMSetPopUpButtonAction(panel->colorListHistoryBtn, colorListHistoryCallback, panel); - WMResizeWidget(panel->colorListHistoryBtn, PWIDTH - 8, 20); - WMMoveWidget(panel->colorListHistoryBtn, 0, 0); - - panel->colorListContentLst = WMCreateList(panel->colorListFrm); - WMSetListAction(panel->colorListContentLst, colorListSelect, panel); - WMSetListUserDrawProc(panel->colorListContentLst, colorListPaintItem); - WMResizeWidget(panel->colorListContentLst, PWIDTH - 8, PHEIGHT - 156); - WMMoveWidget(panel->colorListContentLst, 0, 23); - - panel->colorListColorMenuBtn = WMCreatePopUpButton(panel->colorListFrm); - WMSetPopUpButtonPullsDown(panel->colorListColorMenuBtn, 1); - WMSetPopUpButtonText(panel->colorListColorMenuBtn, "Color"); -// WMSetPopUpButtonAction(panel->colorListColorMenuBtn, colorListColorMenuCallback, panel); - WMResizeWidget(panel->colorListColorMenuBtn, (PWIDTH - 16)/2, 20); - WMMoveWidget(panel->colorListColorMenuBtn, 0, PHEIGHT - 130); - - panel->colorListListMenuBtn = WMCreatePopUpButton(panel->colorListFrm); - WMSetPopUpButtonPullsDown(panel->colorListListMenuBtn, 1); - WMSetPopUpButtonText(panel->colorListListMenuBtn, "List"); -// WMSetPopUpButtonAction(panel->colorListListMenuBtn, colorListListMenuCallback, panel); - WMResizeWidget(panel->colorListListMenuBtn, (PWIDTH - 16)/2, 20); - WMMoveWidget(panel->colorListListMenuBtn, (PWIDTH - 16)/2 + 8, PHEIGHT - 130); - - - WMRealizeWidget(panel->win); - WMMapSubwidgets(panel->win); - - WMMapSubwidgets(panel->wheelFrm); - WMMapSubwidgets(panel->slidersFrm); - WMMapSubwidgets(panel->grayFrm); - WMMapSubwidgets(panel->rgbFrm); - WMMapSubwidgets(panel->cmykFrm); - WMMapSubwidgets(panel->hsbFrm); - WMMapSubwidgets(panel->customPaletteFrm); - WMMapSubwidgets(panel->customPaletteContentFrm); - WMMapSubwidgets(panel->colorListFrm); - - readConfiguration(panel); - readXColors(panel); - - return panel; -} - - -WMColorPanel* -WMGetColorPanel(WMScreen *scrPtr) -{ - WMColorPanel *panel; - - if (scrPtr->sharedColorPanel) - return scrPtr->sharedColorPanel; - - panel = makeColorPanel(scrPtr, "colorPanel"); - - scrPtr->sharedColorPanel = panel; - - return panel; -} - - -void -WMFreeColorPanel(WMColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - - if (panel == scr->sharedColorPanel) { - WMWidgetScreen(panel->win)->sharedColorPanel = NULL; - } - WMRemoveNotificationObserver(panel); /* XXX */ - WMUnmapWidget(panel->win); - WMDestroyWidget(panel->win); - if (panel->wheelMtrx) - wheelDestroyMatrix(panel->wheelMtrx); - if (panel->wheelImg) - XFreePixmap(scr->display, panel->wheelImg); - if (panel->selectionImg) - XFreePixmap(scr->display, panel->selectionImg); - if (panel->selectionBackImg) - XFreePixmap(scr->display, panel->selectionBackImg); - if (panel->customPaletteImg) - RDestroyImage(panel->customPaletteImg); - if (panel->lastBrowseDir) - free(panel->lastBrowseDir); - if (panel->configurationPath) - free(panel->configurationPath); - - free(panel); -} - - -int -WMRunColorPanel(WMColorPanel *panel, WMWindow *owner, RColor color) -{ - WMScreen *scr = WMWidgetScreen(panel->win); - XEvent event; - RHSVColor hsvcolor; - GC bgc = W_GC(scr->black); - GC wgc = W_GC(scr->white); - float W_PI = 4*atan(1); - - WMChangePanelOwner(panel->win, owner); - - WMSetColorPanelColor(panel, color); - panel->wheelMtrx = wheelInitMatrix(panel); /* Needs to be done After Color is set */ - - /* Maybe put this in sub-function ... Initialising selection images */ - RRGBtoHSV(&color, &hsvcolor); - panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + (hsvcolor.saturation/255.0) * cos( hsvcolor.hue*W_PI/180.0))); - panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + (hsvcolor.saturation/255.0) * sin(-hsvcolor.hue*W_PI/180.0))); - wheelUpdateBrightnessGradientFromHSV(panel, hsvcolor); - WMSetSliderValue(panel->wheelBrightnessS, 255 - hsvcolor.value); - - panel->selectionImg = XCreatePixmap(scr->display, W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); - XFillRectangle(scr->display, panel->selectionImg, bgc, 0, 0, 4, 4); - XFillRectangle(scr->display, panel->selectionImg, wgc, 1, 1, 2, 2); - /* End of initialisation section */ - - panel->palx = customPaletteWidth/2; - panel->paly = customPaletteHeight/2; - - WMSetPickerMode(panel, WMWheelModeColorPanel); - - panel->flags.done = 0; - - WMMapWidget(panel->win); - - while (!panel->flags.done) { - WMNextEvent(scr->display, &event); - WMHandleEvent(&event); - } - - WMCloseWindow(panel->win); - - return 0; -} - - - -static void -readConfiguration(W_ColorPanel *panel) -{ - /* XXX Doesn't take care of "invalid" files */ - - DIR *dPtr; - struct dirent *dp; - struct stat stat_buf; - - - if (stat(panel->configurationPath, &stat_buf)!=0) { - if (mkdir(panel->configurationPath, S_IRWXU|S_IRGRP|S_IROTH|S_IXGRP|S_IXOTH)!=0) { - wfatal("ColorPanel could not create directory %s needed to store configurations", panel->configurationPath); - WMFreeColorPanel(panel); - wAbort(); - } - return; - } - - dPtr = opendir(panel->configurationPath); - while ((dp = readdir(dPtr)) != NULL) { - if (dp->d_name[0] != '.') - WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, dp->d_name); - } - (void)closedir(dPtr); -} - - -static void -readXColors(W_ColorPanel *panel) -{ - struct stat stat_buf; - FILE *rgbtxt; - char line[MAX_LENGTH]; - int red, green, blue; - char name[48]; - RColor *color; - WMListItem *item; - - if (stat(RGBTXT, &stat_buf) != 0) { - wwarning("Cannot find file %s", RGBTXT); - return; - } - else { - rgbtxt = fopen(RGBTXT, "r"); - if (rgbtxt) { - while (fgets(line, MAX_LENGTH, rgbtxt)) { - if (sscanf(line, "%d%d%d %[^\n]", &red, &green, &blue, name)) { - color = wmalloc(sizeof(RColor)); - color->red = (unsigned char)red; - color->green = (unsigned char)green; - color->blue = (unsigned char)blue; - item = WMAddListItem(panel->colorListContentLst, name); - item->clientData = (void *)color; - } - } - fclose(rgbtxt); - } - else { - wwarning("Unable to open file %s for reading", RGBTXT); - } - } -} - - -void -WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - - if (mode != WMWheelModeColorPanel) { - WMUnmapWidget(panel->wheelFrm); - if (panel->selectionBackImg) { - XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); - panel->selectionBackImg = None; - } - } - if (mode != WMGrayModeColorPanel) - WMUnmapWidget(panel->grayFrm); - if (mode != WMRGBModeColorPanel) - WMUnmapWidget(panel->rgbFrm); - if (mode != WMCMYKModeColorPanel) - WMUnmapWidget(panel->cmykFrm); - if (mode != WMHSBModeColorPanel) - WMUnmapWidget(panel->hsbFrm); - if (mode != WMCustomPaletteModeColorPanel) { - WMUnmapWidget(panel->customPaletteFrm); - if (panel->selectionBackImg) { - XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); - panel->selectionBackImg = None; - } - } - if (mode != WMColorListModeColorPanel) - WMUnmapWidget(panel->colorListFrm); - if ((mode != WMGrayModeColorPanel) && (mode != WMRGBModeColorPanel) && \ - (mode != WMCMYKModeColorPanel) && (mode != WMHSBModeColorPanel)) - WMUnmapWidget(panel->slidersFrm); - else - panel->slidersmode = mode; - - if (mode == WMWheelModeColorPanel) { - WMMapWidget(panel->wheelFrm); - WMSetButtonSelected(panel->wheelBtn, True); - if (panel->lastChanged != WMWheelModeColorPanel) - wheelInit(panel); - wheelRender(panel); - wheelPaint(panel); - } else if (mode == WMGrayModeColorPanel) { - WMMapWidget(panel->slidersFrm); - WMSetButtonSelected(panel->slidersBtn, True); - WMMapWidget(panel->grayFrm); - WMSetButtonSelected(panel->grayBtn, True); - WMSetButtonImage(panel->slidersBtn, scr->grayIcon); - WMSetButtonAltImage(panel->slidersBtn,scr->grayAltIcon); - if (panel->lastChanged != WMGrayModeColorPanel) - grayInit(panel); - } else if (mode == WMRGBModeColorPanel) { - WMMapWidget(panel->slidersFrm); - WMSetButtonSelected(panel->slidersBtn, True); - WMMapWidget(panel->rgbFrm); - WMSetButtonSelected(panel->rgbBtn, True); - WMSetButtonImage(panel->slidersBtn, scr->rgbIcon); - WMSetButtonAltImage(panel->slidersBtn, scr->rgbAltIcon); - if (panel->lastChanged != WMRGBModeColorPanel) - rgbInit(panel); - } else if (mode == WMCMYKModeColorPanel) { - WMMapWidget(panel->slidersFrm); - WMSetButtonSelected(panel->slidersBtn, True); - WMMapWidget(panel->cmykFrm); - WMSetButtonSelected(panel->cmykBtn, True); - WMSetButtonImage(panel->slidersBtn, scr->cmykIcon); - WMSetButtonAltImage(panel->slidersBtn, scr->cmykAltIcon); - if (panel->lastChanged != WMCMYKModeColorPanel) - cmykInit(panel); - } else if (mode == WMHSBModeColorPanel) { - WMMapWidget(panel->slidersFrm); - WMSetButtonSelected(panel->slidersBtn, True); - WMMapWidget(panel->hsbFrm); - WMSetButtonSelected(panel->hsbBtn, True); - WMSetButtonImage(panel->slidersBtn, scr->hsbIcon); - WMSetButtonAltImage(panel->slidersBtn, scr->hsbAltIcon); - if (panel->lastChanged != WMHSBModeColorPanel) - hsbInit(panel); - } else if (mode == WMCustomPaletteModeColorPanel) { - WMMapWidget(panel->customPaletteFrm); - WMSetButtonSelected(panel->customPaletteBtn, True); - customSetPalette(panel); - } else if (mode == WMColorListModeColorPanel) { - WMMapWidget(panel->colorListFrm); - WMSetButtonSelected(panel->colorListBtn, True); - } - - - panel->mode = mode; -} - -void -WMSetColorPanelColor(WMColorPanel *panel, RColor color) -{ - WMScreen *scr = WMWidgetScreen(panel->win); - WMColor *wellcolor; - - wellcolor = WMCreateRGBColor(scr, color.red << 8, color.green << 8, color.blue << 8, True); - WMSetColorWellColor(panel->colorWell, wellcolor); - WMReleaseColor(wellcolor); - - panel->color = color; - if (panel->lastChanged != WMHSBModeColorPanel) /* If color was set by HSB-Panel do not convert back to hsv */ - RRGBtoHSV(&panel->color, &panel->hsvcolor); -} - -static void -modeButtonCallback(WMWidget *w, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel*)(data); - - if (w == panel->wheelBtn) - WMSetPickerMode(panel, WMWheelModeColorPanel); - else if (w == panel->slidersBtn) - WMSetPickerMode(panel, panel->slidersmode); - else if (w == panel->customPaletteBtn) - WMSetPickerMode(panel, WMCustomPaletteModeColorPanel); - else if (w == panel->colorListBtn) - WMSetPickerMode(panel, WMColorListModeColorPanel); - else if (w == panel->grayBtn) - WMSetPickerMode(panel, WMGrayModeColorPanel); - else if (w == panel->rgbBtn) - WMSetPickerMode(panel, WMRGBModeColorPanel); - else if (w == panel->cmykBtn) - WMSetPickerMode(panel, WMCMYKModeColorPanel); - else if (w == panel->hsbBtn) - WMSetPickerMode(panel, WMHSBModeColorPanel); -} - -/****************** WheelMatrix Functions ************************/ - -static wheelMatrix* -wheelCreateMatrix(unsigned int width, unsigned int height) -{ - wheelMatrix *matrix = NULL; - int i; - - assert((width > 0) && (height > 0)); - - matrix = malloc(sizeof(wheelMatrix)); - if (!matrix) { - RErrorCode = RERR_NOMEMORY; - return NULL; - } - - memset(matrix, 0, sizeof(wheelMatrix)); - matrix->width = width; - matrix->height = height; - for (i = 0; i < 3; i++) { - matrix->data[i] = malloc(width*height*sizeof(unsigned char)); - if (!matrix->data[i]) - goto error; - } - - return matrix; - -error: - for (i = 0; i < 3; i++) { - if (matrix->data[i]) - free(matrix->data[i]); - } - if (matrix) - free(matrix); - RErrorCode = RERR_NOMEMORY; - return NULL; -} - - -static void -wheelDestroyMatrix(wheelMatrix *matrix) -{ - int i; - - assert (matrix!=NULL); - - for (i = 0; i < 3; i++) { - if (matrix->data[i]) - free(matrix->data[i]); - } - free(matrix); -} - - -static wheelMatrix* -wheelInitMatrix(W_ColorPanel *panel) -{ - int i; - int x,y; - wheelMatrix *matrix; - unsigned char *rp, *gp, *bp; - RHSVColor cur_hsv; - RColor cur_rgb; - long ofs[4]; - float hue; - int sat; - float xcor, ycor; - float W_PI = 4 *atan(1); - int dhue[4]; - - matrix = wheelCreateMatrix(colorWheelSize+4, colorWheelSize+4); - if (!matrix) - return NULL; - - RRGBtoHSV(&panel->color, &cur_hsv); - - for (i = 0; i < 256; i++) - matrix->values[i] = (unsigned char)(rint(i*cur_hsv.value/255)); - - cur_hsv.value = 255; - - ofs[0] = -1; - ofs[1] = -(colorWheelSize + 4); -/* ofs[2] = 0; superfluous - ofs[3] = 0; -*/ - for (y = 0; y < (colorWheelSize+4)/2; y++) { - for (x = y; x < (colorWheelSize+4-y); x++) { - xcor = ((float)(2.0*x - 4.0) / colorWheelSize) - 1; - ycor = ((float)(2.0*y - 4.0) / colorWheelSize) - 1; - - sat = rint(255.0 * sqrt((xcor*xcor) + (ycor*ycor))); - - - - /* offsets are counterclockwise (in triangles) */ - if (y < (colorWheelSize+4)/2) - ofs[0]++; - /* top quarter */ - ofs[1] += colorWheelSize + 4; /* left quarter */ - - - ofs[2] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[0]; /* bottom quarter */ - ofs[3] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[1]; /* right quarter */ - - if (sat < 256) { - cur_hsv.saturation = (unsigned char)sat; - - if (xcor != 0) - hue = atan(ycor/xcor); - else { - if (ycor > 0) - hue = W_PI * 0.5; - else - hue = W_PI * 1.5; - } - - if (xcor < 0) - hue += W_PI; - if ((xcor > 0) && (ycor < 0)) - hue += W_PI * 2.0; - - hue = -hue; /* Reverse direction of ColorWheel */ - - if (hue < 0) - hue += W_PI * 2.0; - - dhue[0] = (hue*360) / (W_PI * 2.0); - - for (i = 0; i < 4; i++) { - - if (i > 0) - dhue[i] = (dhue[i-1] + 90) % 360; - - if ((i == 1) || (i == 3)) - dhue[i] = 360 - dhue[i]; - - if (i == 2) - dhue[i] = 360 - dhue[i] + 180; - - rp = matrix->data[0] + (ofs[i] * sizeof(unsigned char)); - gp = matrix->data[1] + (ofs[i] * sizeof(unsigned char)); - bp = matrix->data[2] + (ofs[i] * sizeof(unsigned char)); - - cur_hsv.hue = dhue[i]; - RHSVtoRGB(&cur_hsv, &cur_rgb); - - *rp = (unsigned char)(cur_rgb.red); - *gp = (unsigned char)(cur_rgb.green); - *bp = (unsigned char)(cur_rgb.blue); - } - } - else { - for (i = 0; i < 4; i++) { - rp = matrix->data[0] + (ofs[i] * sizeof(unsigned char)); - gp = matrix->data[1] + (ofs[i] * sizeof(unsigned char)); - bp = matrix->data[2] + (ofs[i] * sizeof(unsigned char)); - - *rp = (unsigned char)(0); - *gp = (unsigned char)(0); - *bp = (unsigned char)(0); - } - } - } - if (y < (colorWheelSize+4)/2) - ofs[0] += 2*y+1; - - ofs[1] += 1 - (colorWheelSize + 4) * (colorWheelSize + 4 - 1 - 2*y); - } - - return matrix; -} - -/****************** ColorWheel Functions *******************/ - -static void -wheelRender(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - int x,y; - RImage *image; - unsigned char *rp, *gp, *bp; - RColor gray; - unsigned long ofs; - - image = RCreateImage(colorWheelSize+4, colorWheelSize+4, False); - if (!image) - return; - - gray.red = gray.green = gray.blue = 0xaa; - - for (x = 0; x < colorWheelSize+4; x++) { - for (y = 0; y < colorWheelSize+4; y++) { - - ofs = (y * image->width) + x; - rp = image->data[0] + ofs; - gp = image->data[1] + ofs; - bp = image->data[2] + ofs; - - if (wheelInsideColorWheel(panel, ofs)) { - *rp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]); - *gp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]); - *bp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]); - } - else { - *rp = (unsigned char)(gray.red); - *gp = (unsigned char)(gray.green); - *bp = (unsigned char)(gray.blue); - } - } - } - - if (panel->wheelImg) - XFreePixmap(scr->display, panel->wheelImg); - - panel->wheelImg = XCreatePixmap(scr->display, W_DRAWABLE(scr), colorWheelSize+4, colorWheelSize+4, scr->depth); - RConvertImage(scr->rcontext, image, &panel->wheelImg); - - /* Check backimage existence. If it doesn't exist, allocate it and fill it */ - if (!panel->selectionBackImg) { - panel->selectionBackImg = XCreatePixmap(scr->display, W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); - XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, scr->copyGC, panel->colx -2, panel->coly -2, 4, 4, 0, 0); /* -2 is for hot spot correction */ - } - - RDestroyImage(image); -} - -static Bool -wheelInsideColorWheel(W_ColorPanel *panel, unsigned long ofs) -{ - if ((panel->wheelMtrx->data[0][ofs] != 0) && - (panel->wheelMtrx->data[1][ofs] != 0) && - (panel->wheelMtrx->data[2][ofs] != 0)) - return True; - return False; -} - -static void -wheelPaint (W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - - XCopyArea(scr->display, panel->wheelImg, panel->wheelView->window, scr->copyGC, 0, 0, colorWheelSize+4, colorWheelSize+4, 0, 0); - - /* Draw selection image */ - XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, scr->copyGC, 0 , 0, 4, 4, panel->colx -2, panel->coly -2); -} - -static void -wheelHandleEvents(XEvent *event, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel*)data; - - switch (event->type) { - case Expose: - if (event->xexpose.count != 0) - break; - wheelPaint(panel); - break; - } -} - -static void -wheelHandleActionEvents(XEvent *event, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel*)data; - - switch (event->type) { - case ButtonPress: - if (getPickerPart(panel, event->xbutton.x, event->xbutton.y) == COLORWHEEL_PART) { - panel->flags.dragging = 1; - wheelPositionSelection(panel, event->xbutton.x, event->xbutton.y); - } - break; - - case ButtonRelease: - panel->flags.dragging = 0; - break; - - case MotionNotify: - if (panel->flags.dragging) { - if (getPickerPart(panel, event->xmotion.x, event->xmotion.y) == COLORWHEEL_PART) { - wheelPositionSelection(panel, event->xmotion.x, event->xmotion.y); - } - else - wheelPositionSelectionOutBounds(panel, event->xmotion.x, event->xmotion.y); - } - break; - } -} - - -static int -getPickerPart(W_ColorPanel *panel, int x, int y) -{ - int lx, ly; - unsigned long ofs; - - lx = x; - ly = y; - - if (panel->mode == WMWheelModeColorPanel) { - if ((lx >= 2) && (lx <= 2+colorWheelSize) && (ly >= 2) && (ly <= 2+colorWheelSize)) { - ofs = ly*panel->wheelMtrx->width+lx; - - if (wheelInsideColorWheel(panel, ofs)) - return COLORWHEEL_PART; - } - } - - if (panel->mode == WMCustomPaletteModeColorPanel) { - if ((lx >= 2) && (lx < customPaletteWidth-2) && (ly >= 2) && (ly < customPaletteHeight-2)) { - return CUSTOMPALETTE_PART; - } - } - - return 0; -} - - - - -static void -wheelBrightnessSliderCallback(WMWidget *w, void *data) -{ - int i; - unsigned int v; - int value; - unsigned long ofs; - RColor cur_rgb; - - W_ColorPanel *panel = (W_ColorPanel*)data; - - value = 255-WMGetSliderValue(panel->wheelBrightnessS); - - for (i = 0; i < 256; i++) { - /* We divide by 128 in advance, and check whether that number divides - * by 2 properly. If not, we add one to round the number correctly - */ - v = (i*value) >> 7; -#ifdef EASTEREGG - panel->wheelMtrx->values[i] = (unsigned char)((v >> 1) + v); -#else - panel->wheelMtrx->values[i] = (unsigned char)((v >> 1) +(v & 0x01)); -#endif - } - - ofs = (panel->coly * panel->wheelMtrx->width) + panel->colx; - - if (!wheelInsideColorWheel(panel, ofs)) { - panel->hsvcolor.saturation = 255; - panel->hsvcolor.value = value; - RHSVtoRGB(&panel->hsvcolor, &cur_rgb); - - panel->color = cur_rgb; - } - else { - panel->color.red = panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]; - panel->color.green = panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]; - panel->color.blue = panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]; - } - - wheelRender(panel); - wheelPaint(panel); - wheelUpdateSelection(panel); -} - -static void -wheelUpdateSelection(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - WMSetColorPanelColor(panel, panel->color); - panel->lastChanged = WMWheelModeColorPanel; - - /* Redraw color selector (and make a backup of the part it will cover) */ - XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, scr->copyGC, panel->colx -2, panel->coly -2, 4, 4, 0, 0); /* "-2" is correction for hotspot location */ - XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, scr->copyGC, 0, 0, 4, 4, panel->colx -2, panel->coly -2); /* see above */ -} - -static void -wheelUndrawSelection(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - - XCopyArea(scr->display, panel->selectionBackImg, panel->wheelView->window, scr->copyGC, 0, 0, 4, 4, panel->colx -2, panel->coly -2); /* see above */ -} - -static void -wheelPositionSelection(W_ColorPanel *panel, int x, int y) -{ - unsigned long ofs = (y * panel->wheelMtrx->width)+ x; - - - panel->color.red = panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]; - panel->color.green = panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]; - panel->color.blue = panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]; - - wheelUndrawSelection(panel); - - panel->colx = x; - panel->coly = y; - - wheelUpdateSelection(panel); - wheelUpdateBrightnessGradientFromLocation(panel); -} - -static void -wheelPositionSelectionOutBounds(W_ColorPanel *panel, int x, int y) -{ - RHSVColor cur_hsv; - float hue; - float xcor, ycor; - float W_PI = 4*atan(1); - - xcor = ((x*2.0) / (colorWheelSize+4)) - 1.0; - ycor = ((y*2.0) / (colorWheelSize+4)) - 1.0; - - cur_hsv.saturation = 255; - cur_hsv.value = 255 - WMGetSliderValue(panel->wheelBrightnessS); - - if (xcor != 0) - hue = atan(ycor/xcor); - else { - if (ycor > 0) - hue = W_PI * 0.5; - else - hue = W_PI * 1.5; - } - - if (xcor < 0) - hue += W_PI; - if ((xcor > 0) && (ycor < 0)) - hue += W_PI * 2.0; - - hue = -hue; - - if (hue < 0) - hue += W_PI * 2.0; - - cur_hsv.hue = (hue*360.0)/(W_PI*2.0); - RHSVtoRGB(&cur_hsv, &panel->color); - - wheelUndrawSelection(panel); - - panel->colx = 2 + rint((colorWheelSize * (1.0 + cos( cur_hsv.hue*W_PI/180))) /2.0); /* "+2" because of "colorWheelSize + 4" */ - panel->coly = 2 + rint((colorWheelSize * (1.0 + sin(-cur_hsv.hue*W_PI/180))) /2.0); - - wheelUpdateSelection(panel); - wheelUpdateBrightnessGradientFromHSV(panel, cur_hsv); -} - -static void -wheelUpdateBrightnessGradientFromHSV(W_ColorPanel *panel, RHSVColor topColor) -{ - RColor from; - - /* Update Brightness-Slider */ - topColor.value = 255; - RHSVtoRGB(&topColor, &from); - - wheelUpdateBrightnessGradient(panel, from); -} - -static void -wheelUpdateBrightnessGradientFromLocation(W_ColorPanel *panel) -{ - RColor from; - unsigned long ofs; - - ofs = panel->coly * panel->wheelMtrx->width + panel->colx; - - from.red = panel->wheelMtrx->data[0][ofs]; - from.green = panel->wheelMtrx->data[1][ofs]; - from.blue = panel->wheelMtrx->data[2][ofs]; - - wheelUpdateBrightnessGradient(panel, from); -} - -static void -wheelUpdateBrightnessGradient(W_ColorPanel *panel, RColor topColor) -{ - RColor to; - RImage *sliderImg; - WMPixmap *sliderPxmp; - - to.red = to.green = to.blue = 0; - - sliderImg = RRenderGradient(16, 153, &topColor, &to, RGRD_VERTICAL); - sliderPxmp = WMCreatePixmapFromRImage(WMWidgetScreen(panel->win), sliderImg, 0); - RDestroyImage(sliderImg); - WMSetSliderImage(panel->wheelBrightnessS, sliderPxmp); - WMReleasePixmap(sliderPxmp); -} - -/****************** Grayscale Panel Functions ***************/ - -static void -grayBrightnessSliderCallback(WMWidget *w, void *data) -{ - RColor color; - int value; - char tmp[3]; - - W_ColorPanel *panel = (W_ColorPanel*)data; - - value = WMGetSliderValue(panel->grayBrightnessS); - - sprintf(tmp, "%d", value); - - WMSetTextFieldText(panel->grayBrightnessT, tmp); - color.red = color.green = color.blue = rint(2.55*value); - - WMSetColorPanelColor(panel, color); - panel->lastChanged = WMGrayModeColorPanel; -} - -static void -grayPresetButtonCallback(WMWidget *w, void *data) -{ - RColor color; - char tmp[3]; - int value; - int i=0; - - W_ColorPanel *panel = (W_ColorPanel*)data; - - while (i < 7) { - if (w == panel->grayPresetBtn[i]) - break; - i++; - } - - value = rint(100.0/6.0*i); - sprintf(tmp, "%d", value); - - WMSetTextFieldText(panel->grayBrightnessT, tmp); - color.red = color.green = color.blue = rint(255.0*i/6.0); - - WMSetSliderValue(panel->grayBrightnessS, rint(100.0*i/6.0)); - - WMSetColorPanelColor(panel, color); - panel->lastChanged = WMGrayModeColorPanel; -} - -static void -grayBrightnessTextFieldCallback(void *observerData, WMNotification *notification) -{ - RColor color; - char tmp[3]; - int value; - W_ColorPanel *panel = (W_ColorPanel*)observerData; - - value = atoi(WMGetTextFieldText(panel->grayBrightnessT)); - if (value > 100) - value = 100; - if (value < 0) - value = 0; - - sprintf(tmp, "%d", value); - WMSetTextFieldText(panel->grayBrightnessT, tmp); - WMSetSliderValue(panel->grayBrightnessS, value); - - color.red = color.green = color.blue = rint(255.0*value/100.0); - WMSetColorPanelColor(panel, color); - panel->lastChanged = WMGrayModeColorPanel; -} - -/******************* RGB Panel Functions *****************/ - -static void -rgbSliderCallback(WMWidget *w, void *data) -{ - RColor color; - int value[3]; - char tmp[3]; - - W_ColorPanel *panel = (W_ColorPanel*)data; - - value[0] = WMGetSliderValue(panel->rgbRedS); - value[1] = WMGetSliderValue(panel->rgbGreenS); - value[2] = WMGetSliderValue(panel->rgbBlueS); - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->rgbRedT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->rgbGreenT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->rgbBlueT, tmp); - - color.red = value[0]; - color.green = value[1]; - color.blue = value[2]; - - WMSetColorPanelColor(panel, color); - panel->lastChanged = WMRGBModeColorPanel; -} - -static void -rgbTextFieldCallback(void *observerData, WMNotification *notification) -{ - RColor color; - char tmp[3]; - int value[3]; - int n; - W_ColorPanel *panel = (W_ColorPanel*)observerData; - - value[0] = atoi(WMGetTextFieldText(panel->rgbRedT)); - value[1] = atoi(WMGetTextFieldText(panel->rgbGreenT)); - value[2] = atoi(WMGetTextFieldText(panel->rgbBlueT)); - - for (n=0; n < 3; n++) { - if (value[n] > 255) - value[n] = 255; - if (value[n] < 0) - value[n] = 0; - } - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->rgbRedT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->rgbGreenT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->rgbBlueT, tmp); - - WMSetSliderValue(panel->rgbRedS, value[0]); - WMSetSliderValue(panel->rgbGreenS, value[1]); - WMSetSliderValue(panel->rgbBlueS, value[2]); - - color.red = value[0]; - color.green = value[1]; - color.blue = value[2]; - - WMSetColorPanelColor(panel, color); - panel->lastChanged = WMRGBModeColorPanel; -} - - -/******************* CMYK Panel Functions *****************/ - -static void -cmykSliderCallback(WMWidget *w, void *data) -{ - RColor color; - int value[4]; - char tmp[3]; - - W_ColorPanel *panel = (W_ColorPanel*)data; - - value[0] = WMGetSliderValue(panel->cmykCyanS); - value[1] = WMGetSliderValue(panel->cmykMagentaS); - value[2] = WMGetSliderValue(panel->cmykYellowS); - value[3] = WMGetSliderValue(panel->cmykBlackS); - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->cmykCyanT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->cmykMagentaT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->cmykYellowT, tmp); - sprintf(tmp, "%d", value[3]); - WMSetTextFieldText(panel->cmykBlackT, tmp); - - color.red = rint((255.0 - (value[0] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] / 100.0))); - - WMSetColorPanelColor(panel, color); - panel->lastChanged = WMCMYKModeColorPanel; -} - -static void -cmykTextFieldCallback(void *observerData, WMNotification *notification) -{ - RColor color; - char tmp[3]; - int value[4]; - int n; - W_ColorPanel *panel = (W_ColorPanel*)observerData; - - value[0] = atoi(WMGetTextFieldText(panel->cmykCyanT)); - value[1] = atoi(WMGetTextFieldText(panel->cmykMagentaT)); - value[2] = atoi(WMGetTextFieldText(panel->cmykYellowT)); - value[3] = atoi(WMGetTextFieldText(panel->cmykBlackT)); - - for (n=0; n < 4; n++) { - if (value[n] > 100) - value[n] = 100; - if (value[n] < 0) - value[n] = 0; - } - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->cmykCyanT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->cmykMagentaT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->cmykYellowT, tmp); - sprintf(tmp, "%d", value[3]); - WMSetTextFieldText(panel->cmykBlackT, tmp); - - WMSetSliderValue(panel->cmykCyanS, value[0]); - WMSetSliderValue(panel->cmykMagentaS, value[1]); - WMSetSliderValue(panel->cmykYellowS, value[2]); - WMSetSliderValue(panel->cmykBlackS, value[3]); - - color.red = rint((255.0 - (value[0] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] / 100.0))); - - WMSetColorPanelColor(panel, color); - panel->lastChanged = WMCMYKModeColorPanel; -} - -/********************** HSB Panel Functions ***********************/ - -static void -hsbSliderCallback(WMWidget *w, void *data) -{ - RColor color; - int value[3]; - char tmp[3]; - - W_ColorPanel *panel = (W_ColorPanel*)data; - - value[0] = WMGetSliderValue(panel->hsbHueS); - value[1] = WMGetSliderValue(panel->hsbSaturationS); - value[2] = WMGetSliderValue(panel->hsbBrightnessS); - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->hsbHueT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->hsbSaturationT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->hsbBrightnessT, tmp); - - panel->hsvcolor.hue = value[0]; - panel->hsvcolor.saturation = value[1]*2.55; - panel->hsvcolor.value = value[2]*2.55; - - RHSVtoRGB(&panel->hsvcolor, &color); - - panel->lastChanged = WMHSBModeColorPanel; - WMSetColorPanelColor(panel, color); - - if (w != panel->hsbBrightnessS) - hsbUpdateBrightnessGradient(panel); - if (w != panel->hsbSaturationS) - hsbUpdateSaturationGradient(panel); - if (w != panel->hsbHueS) - hsbUpdateHueGradient(panel); -} - -static void -hsbTextFieldCallback(void *observerData, WMNotification *notification) -{ - RColor color; - char tmp[3]; - int value[3]; - int n; - W_ColorPanel *panel = (W_ColorPanel*)observerData; - - value[0] = atoi(WMGetTextFieldText(panel->hsbHueT)); - value[1] = atoi(WMGetTextFieldText(panel->hsbSaturationT)); - value[2] = atoi(WMGetTextFieldText(panel->hsbBrightnessT)); - - if (value[0] > 359) - value[0] = 359; - if (value[0] < 0) - value[0] = 0; - - for (n=1; n < 3; n++) { - if (value[n] > 100) - value[n] = 100; - if (value[n] < 0) - value[n] = 0; - } - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->hsbHueT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->hsbSaturationT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->hsbBrightnessT, tmp); - - WMSetSliderValue(panel->hsbHueS, value[0]); - WMSetSliderValue(panel->hsbSaturationS, value[1]); - WMSetSliderValue(panel->hsbBrightnessS, value[2]); - - panel->hsvcolor.hue = value[0]; - panel->hsvcolor.saturation = value[1]*2.55; - panel->hsvcolor.value = value[2]*2.55; - - RHSVtoRGB(&panel->hsvcolor, &color); - - panel->lastChanged = WMHSBModeColorPanel; - WMSetColorPanelColor(panel, color); - - hsbUpdateBrightnessGradient(panel); - hsbUpdateSaturationGradient(panel); - hsbUpdateHueGradient(panel); -} - -static void -hsbUpdateBrightnessGradient(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - RColor from; - RColor to; - RHSVColor hsvcolor; - RImage *sliderImg; - WMPixmap *sliderPxmp; - - from.red = from.green = from.blue = 0; - hsvcolor = panel->hsvcolor; - hsvcolor.value = 255; - - RHSVtoRGB(&hsvcolor, &to); - - sliderImg = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); - RDestroyImage(sliderImg); - W_PaintText(W_VIEW(panel->hsbBrightnessS), sliderPxmp->pixmap, WMSystemFontOfSize(scr, 12), 2, 0, 100, WALeft, W_GC(scr->white), False, "Brightness", strlen("Brightness")); - WMSetSliderImage(panel->hsbBrightnessS, sliderPxmp); - WMReleasePixmap(sliderPxmp); -} - -static void -hsbUpdateSaturationGradient(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - RColor from; - RColor to; - RHSVColor hsvcolor; - RImage *sliderImg; - WMPixmap *sliderPxmp; - - hsvcolor = panel->hsvcolor; - hsvcolor.saturation = 0; - RHSVtoRGB(&hsvcolor, &from); - - hsvcolor.saturation = 255; - RHSVtoRGB(&hsvcolor, &to); - - sliderImg = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); - sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); - RDestroyImage(sliderImg); - if (hsvcolor.value < 128) - W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, WMSystemFontOfSize(scr, 12), 2, 0, 100, WALeft, W_GC(scr->white), False, "Saturation", strlen("Saturation")); - else - W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, WMSystemFontOfSize(scr, 12), 2, 0, 100, WALeft, W_GC(scr->black), False, "Saturation", strlen("Saturation")); - - WMSetSliderImage(panel->hsbSaturationS, sliderPxmp); - WMReleasePixmap(sliderPxmp); -} - -static void -hsbUpdateHueGradient(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - RColor **colors = NULL; - RHSVColor hsvcolor; - RImage *sliderImg; - WMPixmap *sliderPxmp; - int i; - - hsvcolor = panel->hsvcolor; - - colors = malloc(sizeof(RColor*)*(8)); - for (i=0; i<7; i++) { - hsvcolor.hue = (360*i)/6; - colors[i] = malloc(sizeof(RColor)); - RHSVtoRGB(&hsvcolor, colors[i]); - } - colors[7] = NULL; - - sliderImg = RRenderMultiGradient(141, 16, colors, RGRD_HORIZONTAL); - sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); - RDestroyImage(sliderImg); - if (hsvcolor.value < 128) - W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, WMSystemFontOfSize(scr, 12), 2, 0, 100, WALeft, W_GC(scr->white), False, "Hue", strlen("Hue")); - else - W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, WMSystemFontOfSize(scr, 12), 2, 0, 100, WALeft, W_GC(scr->black), False, "Hue", strlen("Hue")); - - WMSetSliderImage(panel->hsbHueS, sliderPxmp); - WMReleasePixmap(sliderPxmp); - - for (i=0; i<7; i++) { - if (colors[i]) - free(colors[i]); - } - if (colors) - free(colors); -} - -/*************** Custom Palette Functions ****************/ - -static void -customRenderSpectrum(W_ColorPanel *panel) -{ - RImage *spectrum; - int hue, sat, val; - int x,y; - unsigned long ofs; - unsigned char *rp, *gp, *bp; - RColor color; - RHSVColor cur_hsv; - - spectrum = RCreateImage(SPECTRUM_WIDTH, SPECTRUM_HEIGHT, 0); - - for (y=0; y<360; y++) { - val = 255; - sat = 0; - hue = y; - for (x=0; x<511; x++) { - ofs = (y * 511) + x; - - cur_hsv.hue = hue; - cur_hsv.saturation = sat; - cur_hsv.value = val; - - RHSVtoRGB (&cur_hsv, &color); - - rp = spectrum->data[0] + ofs; - gp = spectrum->data[1] + ofs; - bp = spectrum->data[2] + ofs; - - *rp = (unsigned char)color.red; - *gp = (unsigned char)color.green; - *bp = (unsigned char)color.blue; - - if (x<255) - sat++; - - if (x>255) - val--; - } - } - if (panel->customPaletteImg) { - RDestroyImage(panel->customPaletteImg); - panel->customPaletteImg = NULL; - } - panel->customPaletteImg = spectrum; -} - - - -static void -customSetPalette(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - RImage *scaledImg; - Pixmap image; - int item; - - image = XCreatePixmap(scr->display, W_DRAWABLE(scr), customPaletteWidth, customPaletteHeight, scr->depth); - - scaledImg = RScaleImage(panel->customPaletteImg, customPaletteWidth, customPaletteHeight); - RConvertImage(scr->rcontext, scaledImg, &image); - RDestroyImage(scaledImg); - - XCopyArea(scr->display, image, panel->customPaletteContentView->window, scr->copyGC, 0, 0, customPaletteWidth, customPaletteHeight, 0, 0); - - /* Check backimage existence. If it doesn't exist, allocate it and fill it */ - if (!panel->selectionBackImg) { - panel->selectionBackImg = XCreatePixmap(scr->display, panel->customPaletteContentView->window, 4, 4, scr->depth); - } - - XCopyArea(scr->display, image, panel->selectionBackImg, scr->copyGC, panel->palx-2, panel->paly-2, 4, 4, 0, 0); - XCopyArea(scr->display, panel->selectionImg, panel->customPaletteContentView->window, scr->copyGC, 0 , 0, 4, 4, panel->palx-2, panel->paly-2); - XFreePixmap(scr->display, image); - - panel->palXRatio = (float)(panel->customPaletteImg->width) / (float)(customPaletteWidth); - panel->palYRatio = (float)(panel->customPaletteImg->height) / (float)(customPaletteHeight); - - item = WMGetPopUpButtonSelectedItem (panel->customPaletteHistoryBtn); - - /* if palette != "Spectrum", we are allowed to rename and remove it */ - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, menuRename, (item > 0) ); - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, menuRemove, (item > 0) ); -} - - -static void -customPalettePositionSelection(W_ColorPanel *panel, int x, int y) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - unsigned long ofs; - - - /* undraw selection */ - XCopyArea(scr->display, panel->selectionBackImg, panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, panel->palx-2, panel->paly-2); - - panel->palx = x; - panel->paly = y; - - ofs = rint(x * panel->palXRatio) + rint(y * panel->palYRatio) * panel->customPaletteImg->width; - - panel->color.red = panel->customPaletteImg->data[0][ofs]; - panel->color.green = panel->customPaletteImg->data[1][ofs]; - panel->color.blue = panel->customPaletteImg->data[2][ofs]; - - WMSetColorPanelColor(panel, panel->color); - panel->lastChanged = WMCustomPaletteModeColorPanel; - - /* Redraw color selector (and make a backup of the part it will cover) */ - XCopyArea(scr->display, panel->customPaletteContentView->window, panel->selectionBackImg, scr->copyGC, panel->palx-2, panel->paly-2, 4, 4, 0, 0); /* "-2" is correction for hotspot location */ - XCopyArea(scr->display, panel->selectionImg, panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, panel->palx-2, panel->paly-2); /* see above */ -} - - -static void -customPalettePositionSelectionOutBounds(W_ColorPanel *panel, int x, int y) -{ - if (x < 2) - x = 2; - if (y < 2) - y = 2; - if (x >= customPaletteWidth) - x = customPaletteWidth -2; - if (y >= customPaletteHeight) - y = customPaletteHeight -2; - - customPalettePositionSelection(panel, x, y); -} - - -static void -customPaletteHandleEvents(XEvent *event, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel*)data; - - switch (event->type) { - case Expose: - if (event->xexpose.count != 0) - break; - customSetPalette(panel); - break; - } -} - -static void -customPaletteHandleActionEvents(XEvent *event, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel*)data; - int x, y; - - switch (event->type) { - case ButtonPress: - x = event->xbutton.x; - y = event->xbutton.y; - - if (getPickerPart(panel, x, y) == CUSTOMPALETTE_PART) { - panel->flags.dragging = 1; - customPalettePositionSelection(panel, x, y); - } - break; - - case ButtonRelease: - panel->flags.dragging = 0; - break; - - case MotionNotify: - x = event->xmotion.x; - y = event->xmotion.y; - - if (panel->flags.dragging) { - if (getPickerPart(panel, x, y) == CUSTOMPALETTE_PART) { - customPalettePositionSelection(panel, x, y); - } - else - customPalettePositionSelectionOutBounds(panel, x, y); - } - break; - } -} - - -static void -customPaletteMenuCallback(WMWidget *w, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel*)data; - int item; - - item = WMGetPopUpButtonSelectedItem(panel->customPaletteMenuBtn); - - switch (item) { - case menuNewFromFile: - customPaletteMenuNewFromFile(panel); - break; - case menuRename: - customPaletteMenuRename(panel); - break; - case menuRemove: - customPaletteMenuRemove(panel); - break; - case menuCopy: - break; - case menuNewFromClipboard: - break; - } -} - - -static void -customPaletteMenuNewFromFile(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - WMOpenPanel *browseP; - char *filepath; - char *filename = NULL; - char path[PATH_MAX] = "\0"; - char *spath; - char *tmp; - int i; - RImage *tmpImg = NULL; - - if ((!panel->lastBrowseDir) || (strcmp(panel->lastBrowseDir,"\0") == 0)) { - strcpy(path, wgethomedir()); - spath = wmalloc(strlen(path)+2); - strcpy(spath, path); - } - else { - spath = wmalloc(strlen(panel->lastBrowseDir)+2); - strcpy(spath, panel->lastBrowseDir); - } - - - browseP = WMGetOpenPanel(scr); - WMSetFilePanelCanChooseDirectories(browseP, 0); - WMSetFilePanelCanChooseFiles(browseP, 1); - - /* Get a filename */ - if (WMRunModalOpenPanelForDirectory(browseP, panel->win, wexpandpath(spath), "Open Palette", RSupportedFileFormats()) ) { - filepath = WMGetFilePanelFileName(browseP); - - /* Get seperation position between path and filename */ - i = strrchr(filepath, '/') - filepath + 1; - if (i > strlen(filepath)) - i = strlen(filepath); - - /* Store last browsed path */ - if (panel->lastBrowseDir) - free(panel->lastBrowseDir); - panel->lastBrowseDir = wmalloc((i+1)*sizeof(char)); - memset(panel->lastBrowseDir, 0, (i+1)*sizeof(char)); - strncpy(panel->lastBrowseDir, filepath, i); - - /* Get filename from path */ - filename = wstrdup(filepath + i); - - /* Check for duplicate files, and rename it if there are any */ - tmp = wstrappend(panel->configurationPath, filename); - while (access (tmp, F_OK) == 0) { - free(tmp); - tmp = generateNewFilename(panel->configurationPath, filename); - filename = wstrdup(tmp); - - free(tmp); - tmp = wstrappend(panel->configurationPath, filename); - } - free(tmp); - - /* Copy the image to $(gnustepdir)/Library/Colors/ & Add the filename to the history menu */ - if (!fetchImageFile (panel->configurationPath, filepath, filename)) { /* error = -1 */ - - /* filepath is a "local" path now the file has been copied */ - free(filepath); - filepath = wstrappend(panel->configurationPath, filename); - - /* load the image & add menu entries */ - tmpImg = RLoadImage(scr->rcontext, filepath, 0); - if (tmpImg) { - if (panel->customPaletteImg) - RDestroyImage(panel->customPaletteImg); - panel->customPaletteImg = tmpImg; - - customSetPalette(panel); - WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, filename); - WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1); - - panel->currentPalette = WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1; - } - } - else - { - tmp = wstrappend(panel->configurationPath, filename); - - i = remove(tmp); /* Delete the file, it doesn't belong here */ - WMRunAlertPanel(scr, panel->win, "File Error", "Invalid file format !", "OK", NULL, NULL); - if (i != 0) - WMRunAlertPanel(scr, panel->win, "File Error", "Couldn't remove file from Configuration Directory !", "OK", NULL, NULL); - - free(tmp); - } - free(filepath); - free(filename); - } - WMFreeFilePanel(browseP); -} - - -static void -customPaletteMenuRename(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - char *toName = NULL; - char *fromName; - char *toPath, *fromPath; - int item; - int index; - - item = WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); - fromName = WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item); - - toName = WMRunInputPanel(scr, panel->win, "Rename", "Rename palette to:", - fromName, "OK", "Cancel"); - - if (toName) { - - /* As some people do certain stupid things... */ - if (strcmp(toName, fromName) == 0) { - free(toName); - return; - } - - /* For normal people */ - fromPath = wstrappend(panel->configurationPath, fromName); - toPath = wstrappend(panel->configurationPath, toName); - - if (access (toPath, F_OK) == 0) { /* Careful, this palette exists already */ - if (WMRunAlertPanel(scr, panel->win, "Warning", - "Palette already exists !\n\nOverwrite ?", "No", "Yes", NULL) == 1) { - /* "No" = 0, "Yes" = 1 */ - - remove(toPath); - - /* Remove from History list too */ - - /* - * XXX This code is not functional yet !!! (And not really necessary) - */ - - /* - index = 1; - while ((index < WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)) && - (strcmp(WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, index), toName) != 0 )) - index++; - - if (index < WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)) { - WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, index); - if (index < item) - item--; - } - */ - - } else { - free(fromPath); - free(toName); - free(toPath); - - return; - } - } - - if ( rename(fromPath, toPath) != 0) - wwarning("Couldn't rename palette %s to %s\n", fromName, toName); - else { - WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); - WMInsertPopUpButtonItem(panel->customPaletteHistoryBtn, item, toName); - - WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item); - } - free(fromPath); - free(toPath); - free(toName); - } -} - - -static void -customPaletteMenuRemove(W_ColorPanel *panel) -{ - W_Screen *scr = WMWidgetScreen(panel->win); - char *text; - char *tmp; - int choice; - int item; - - item = WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); - - tmp = wstrappend( "This will permanently remove the palette ", - WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item )); - text = wstrappend( tmp, ".\n\nAre you sure you want to remove this palette ?"); - free(tmp); - - choice = WMRunAlertPanel(scr, panel->win, NULL, text, "Yes", "No", NULL); - /* returns 0 (= "Yes") or 1 (="No") */ - free(text); - - if (choice == 0) { - - tmp = wstrappend(panel->configurationPath, - WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item )); - - if ( remove(tmp) != 0) - wwarning("Couldn't remove palette %s\n", tmp); - free(tmp); - - WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item-1); /* item -1 always exists */ - customPaletteHistoryCallback(panel->customPaletteHistoryBtn, panel); - customSetPalette(panel); - - WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); - } -} - - -static void -customPaletteHistoryCallback(WMWidget *w, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel*)data; - W_Screen *scr = WMWidgetScreen(panel->win); - int item; - char *filename; - RImage *tmp = NULL; - - item = WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); - if (item == panel->currentPalette) - return; - - if (item == 0) - customRenderSpectrum(panel); - else { - /* Load file from configpath */ - filename = wstrappend( panel->configurationPath, WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item) ); - - /* XXX To do: Check existence of file and remove it from the history if it doesn't exist */ - - tmp = RLoadImage(scr->rcontext, filename, 0); - if (tmp) { - if (panel->customPaletteImg) { - RDestroyImage(panel->customPaletteImg); - panel->customPaletteImg = NULL; - } - panel->customPaletteImg = tmp; - } - free(filename); - } - customSetPalette(panel); - - panel->currentPalette = item; -} - - -/*************** Panel Initialisation Functions *****************/ - -static void -wheelInit(W_ColorPanel *panel) -{ - RHSVColor cur_hsv; - float W_PI = 4 * atan(1); - int i; - int v; - - RRGBtoHSV(&panel->color, &cur_hsv); - - WMSetSliderValue(panel->wheelBrightnessS, 255-cur_hsv.value); - wheelUpdateBrightnessGradientFromHSV(panel, cur_hsv); - - panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + (cur_hsv.saturation/255.0) * cos( cur_hsv.hue*W_PI/180.0))); - panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + (cur_hsv.saturation/255.0) * sin(-cur_hsv.hue*W_PI/180.0))); - - for (i = 0; i < 256; i++) { - /* We divide by 128 in advance, and check whether that number divides - * by 2 properly. If not, we add one to round the number correctly - */ - v = (i*cur_hsv.value) >> 7; - panel->wheelMtrx->values[i] = (unsigned char)((v >> 1) + (v & 1)); - } -} - -static void -grayInit(W_ColorPanel *panel) -{ - RHSVColor cur_hsv; - int value; - char tmp[3]; - - RRGBtoHSV(&panel->color, &cur_hsv); - - value = rint(cur_hsv.value/2.55); - WMSetSliderValue(panel->grayBrightnessS, value); - - sprintf(tmp, "%d", value); - WMSetTextFieldText(panel->grayBrightnessT, tmp); -} - -static void -rgbInit(W_ColorPanel *panel) -{ - char tmp[3]; - - WMSetSliderValue(panel->rgbRedS,panel->color.red); - WMSetSliderValue(panel->rgbGreenS,panel->color.green); - WMSetSliderValue(panel->rgbBlueS,panel->color.blue); - - sprintf(tmp, "%d", panel->color.red); - WMSetTextFieldText(panel->rgbRedT, tmp); - sprintf(tmp, "%d", panel->color.green); - WMSetTextFieldText(panel->rgbGreenT, tmp); - sprintf(tmp, "%d", panel->color.blue); - WMSetTextFieldText(panel->rgbBlueT, tmp); -} - -static void -cmykInit(W_ColorPanel *panel) -{ - int value[3]; - char tmp[3]; - - value[0] = rint((255-panel->color.red)/2.55); - value[1] = rint((255-panel->color.green)/2.55); - value[2] = rint((255-panel->color.blue)/2.55); - - WMSetSliderValue(panel->cmykCyanS, value[0]); - WMSetSliderValue(panel->cmykMagentaS, value[1]); - WMSetSliderValue(panel->cmykYellowS, value[2]); - WMSetSliderValue(panel->cmykBlackS, 0); - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->cmykCyanT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->cmykMagentaT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->cmykYellowT, tmp); - WMSetTextFieldText(panel->cmykBlackT, "0"); -} - -static void -hsbInit(W_ColorPanel *panel) -{ - int value[3]; - char tmp[3]; - - value[0] = panel->hsvcolor.hue; - value[1] = rint(panel->hsvcolor.saturation/2.55); - value[2] = rint(panel->hsvcolor.value/2.55); - - WMSetSliderValue(panel->hsbHueS,value[0]); - WMSetSliderValue(panel->hsbSaturationS,value[1]); - WMSetSliderValue(panel->hsbBrightnessS,value[2]); - - sprintf(tmp, "%d", value[0]); - WMSetTextFieldText(panel->hsbHueT, tmp); - sprintf(tmp, "%d", value[1]); - WMSetTextFieldText(panel->hsbSaturationT, tmp); - sprintf(tmp, "%d", value[2]); - WMSetTextFieldText(panel->hsbBrightnessT, tmp); - - hsbUpdateBrightnessGradient(panel); - hsbUpdateSaturationGradient(panel); - hsbUpdateHueGradient(panel); -} - - - - -/************************* ColorList Panel Functions **********************/ - -static void -colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect) -{ - int width, height, x, y; - RColor color = *((RColor *)WMGetListItem(lPtr, index)->clientData); - WMScreen *scr = WMWidgetScreen(lPtr); - Display *dpy = WMScreenDisplay(scr); - RImage *image; - WMPixmap *pixmap; - int i, j; - - width = rect->size.width; - height = rect->size.height; - x = rect->pos.x; - y = rect->pos.y; - - if (state & WLDSSelected) - XFillRectangle(dpy, d, WMColorGC(WMWhiteColor(scr)), x, y, width, height); - else - XClearArea(dpy, d, x, y, width, height, False); - - image = RCreateImage(15, 15, False); - for (i=0; i < 15 ; i++) { - for (j=0; j < 15; j++) { - image->data[0][j*15+i] = color.red; - image->data[1][j*15+i] = color.green; - image->data[2][j*15+i] = color.blue; - } - } - - pixmap = WMCreatePixmapFromRImage(scr, image, 0); - RDestroyImage(image); - WMDrawPixmap(pixmap, d, x, y); - WMReleasePixmap(pixmap); - WMDrawString(scr, d, WMColorGC(WMBlackColor(scr)), globalFont, x+18, y, text, strlen(text)); -} - - -static void -colorListSelect(WMWidget *w, void *data) -{ - W_ColorPanel *panel = (W_ColorPanel *)data; - RColor color = *((RColor *)WMGetListSelectedItem(w)->clientData); - - panel->lastChanged = WMColorListModeColorPanel; - WMSetColorPanelColor(panel, color); -} - - - - -/************************** Common utility functions ************************/ - -static int -fetchImageFile(char *toPath, char *imageSrcFile, char *imageDestFile) -{ - int src, dest; - int n; - char *tmp; - char buf[BUFSIZE]; - - if ((src = open(imageSrcFile, O_RDONLY)) == 0) { - wwarning("Could not open %s", imageSrcFile); - return -1; - } - - tmp = wstrappend(toPath, imageDestFile); - if ((dest = open( tmp, O_RDWR|O_CREAT, S_IRWXU|S_IRGRP|S_IROTH)) == 0) { - wwarning("Could not create %s", tmp); - free(tmp); - return -1; - } - free(tmp); - - - /* Copy the file */ - while ((n = read(src, buf, BUFSIZE)) > 0) - { - if (write (dest, buf, n) != n) { - wwarning("Write error on file %s", imageDestFile); - return -1; - } - } - - return 0; -} - - - -char* -generateNewFilename(char *Path, char *curName) -{ - char *newName; - char *numStart, *numEnd; - char *pre, *num, *post; - int n, numLength; - char *tmp; - - newName = wstrdup(curName); - - if (newName == NULL) - return wstrdup("Unnamed"); - - /* - * Modify the name to contain a number to make it unique - */ - - - /* Get number-string from filename. */ - numStart = strrchr(newName, '('); - if (numStart) { - if (strlen(numStart) > 1) - numStart++; /* Next character, please */ - - - numEnd = strrchr(numStart, ')'); /* Already past "numbers" */ - - if (numEnd) { - /* Now it gets interesting */ - - pre = wmalloc((numStart - newName +1) * sizeof(char)); /* a trailing '\0' is useful here */ - memset(pre, 0, (numStart - newName +1) * sizeof(char)); - - strncpy (pre, newName, numStart-newName); - - num = wmalloc((numEnd - numStart +1) * sizeof(char)); - memset (num, 0, (numEnd - numStart +1) * sizeof(char)); - - strncpy (num, numStart, numEnd-numStart); - - post = wstrdup( numEnd); - - free(newName); /* We don't need it anymore */ - - if (strcspn(num, "0123456789") == 0) { - n = (int)strtol(num, NULL, 10); - - /* Increase number between brackets (in filename); This is what it all is about */ - n++; - - free(num); - num = wmalloc(3 * sizeof(char)); /* Nobody uses more than 999 duplicate filenames, do you ? */ - memset(num, 0, 3 * sizeof(char)); - - numLength = sprintf(num, "%d", n); - - free(num); - num = wmalloc(numLength * sizeof(char)); - memset(num, 0, numLength * sizeof(char)); - - sprintf(num, "%d", n); - - tmp = wstrappend (num, post); - newName = wstrappend (pre, tmp); - - free (pre); - free (num); - free (post); - free (tmp); - } - } - } - - - if (strcmp( curName, newName) == 0) { - /* The name is still unchanged, so there was no number (between brackets) in it. - Add a number 1 to the end. - */ - tmp = wstrdup(newName); - if (newName) - free(newName); - newName = wstrappend(tmp, " (1)"); - free(tmp); - } - - return newName; -} - +/* + * ColorPanel for WINGs + * + * by ]d : Original idea and basic initial code + * Pascal Hofstee : Code for wheeldrawing and calculating colors from it + * Alban Hertroys : Suggesting optimizations for algorithms for color- + * wheel, and implementation of final algorithm. + * Alfredo K. Kojima : For pointing out some memory-allocation problems. + * Marco van Hylckama-Vlieg : For once again doing the artwork ;-) + * + * + * Changes: + * fixed absurd wstrdup() uses, gazillion memory leaks, buffer overruns etc etc + */ + + + + + +#include "WINGsP.h" +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifndef PATH_MAX +# define PATH_MAX 1024 +#endif + +#define mglass_width 20 +#define mglass_height 20 + +#define magnify_hotspot_x 17 +#define magnify_hotspot_y 10 +#define magnify_cursor_width 46 +#define magnify_cursor_height 36 +static char magnify_cursor_bits[] = { + 0xc0, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x70, 0x70, 0x00, 0x00, 0x00, 0xc0, + 0x18, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x04, 0x80, 0x01, 0x00, 0x00, 0xc0, + 0x06, 0x00, 0x01, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x02, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x02, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x06, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x02, 0x00, 0x00, 0xc0, + 0x02, 0x00, 0x02, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x03, 0x00, 0x00, 0xc0, + 0x0c, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x18, 0xc0, 0x03, 0x00, 0x00, 0xc0, + 0x70, 0x60, 0x04, 0x00, 0x00, 0xc0, 0x80, 0x1f, 0x01, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x0a, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x10, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x24, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x08, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x40, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x90, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x20, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x01, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x80, 0x04, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0}; + + +#define magnify_mask_width 46 +#define magnify_mask_height 36 +static char magnify_mask_bits[] = { + 0xc0, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x70, 0x70, 0x00, 0x00, 0x00, 0xc0, + 0x18, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x04, 0x80, 0x01, 0x00, 0x00, 0xc0, + 0x06, 0x00, 0x01, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x02, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x02, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x06, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x02, 0x00, 0x00, 0xc0, + 0x02, 0x00, 0x02, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x03, 0x00, 0x00, 0xc0, + 0x0c, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x18, 0xc0, 0x03, 0x00, 0x00, 0xc0, + 0x70, 0x60, 0x07, 0x00, 0x00, 0xc0, 0x80, 0x1f, 0x07, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x1c, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x38, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x70, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xc0, + 0x00, 0x00, 0x80, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x80, 0x07, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0}; + + +typedef struct MovingView { + WMView *view; /* The view this is all about */ + Pixmap pixmap; /* What's under the view */ + Pixmap mask; /* Pixmap mask for view-contents */ + int valid; /* Are contents still valid ? */ + RColor color; /* Color of a pixel in the image */ +} MovingView; + +typedef struct WheelMatrix { + unsigned int width, height; /* Size of the colorwheel */ + unsigned char *data[3]; /* Wheel data (R,G,B) */ + unsigned char values[256]; /* Precalculated values for R,G & B values 0..255 */ +} wheelMatrix; + +typedef struct W_ColorPanel { + WMWindow *win; + WMFont *font8; + WMFont *font12; + + /* Common Stuff */ + WMColorWell *colorWell; + WMButton *magnifyBtn; + WMButton *wheelBtn; + WMButton *slidersBtn; + WMButton *customPaletteBtn; + WMButton *colorListBtn; + + /* Magnifying Glass */ + MovingView *magnifyGlass; + + /* ColorWheel Panel */ + WMFrame *wheelFrm; + WMSlider *wheelBrightnessS; + WMView *wheelView; + + /* Slider Panels */ + WMFrame *slidersFrm; + WMFrame *seperatorFrm; + WMButton *grayBtn; + WMButton *rgbBtn; + WMButton *cmykBtn; + WMButton *hsbBtn; + /* Gray Scale Panel */ + WMFrame *grayFrm; + WMLabel *grayMinL; + WMLabel *grayMaxL; + WMSlider *grayBrightnessS; + WMTextField *grayBrightnessT; + WMButton *grayPresetBtn[7]; + + /* RGB Panel */ + WMFrame *rgbFrm; + WMLabel *rgbMinL; + WMLabel *rgbMaxL; + WMSlider *rgbRedS; + WMSlider *rgbGreenS; + WMSlider *rgbBlueS; + WMTextField *rgbRedT; + WMTextField *rgbGreenT; + WMTextField *rgbBlueT; + + /* CMYK Panel */ + WMFrame *cmykFrm; + WMLabel *cmykMinL; + WMLabel *cmykMaxL; + WMSlider *cmykCyanS; + WMSlider *cmykMagentaS; + WMSlider *cmykYellowS; + WMSlider *cmykBlackS; + WMTextField *cmykCyanT; + WMTextField *cmykMagentaT; + WMTextField *cmykYellowT; + WMTextField *cmykBlackT; + + /* HSB Panel */ + WMFrame *hsbFrm; + WMSlider *hsbHueS; + WMSlider *hsbSaturationS; + WMSlider *hsbBrightnessS; + WMTextField *hsbHueT; + WMTextField *hsbSaturationT; + WMTextField *hsbBrightnessT; + + /* Custom Palette Panel*/ + WMFrame *customPaletteFrm; + WMPopUpButton *customPaletteHistoryBtn; + WMFrame *customPaletteContentFrm; + WMPopUpButton *customPaletteMenuBtn; + WMView *customPaletteContentView; + + /* Color List Panel */ + WMFrame *colorListFrm; + WMPopUpButton *colorListHistoryBtn; + WMList *colorListContentLst; + WMPopUpButton *colorListColorMenuBtn; + WMPopUpButton *colorListListMenuBtn; + + /* Look-Up Tables and Images */ + wheelMatrix *wheelMtrx; + Pixmap wheelImg; + Pixmap selectionImg; + Pixmap selectionBackImg; + RImage *customPaletteImg; + char *lastBrowseDir; + + /* Common Data Fields */ + RColor color; /* Current color */ + RHSVColor hsvcolor; /* Backup HSV Color */ + WMColorPanelMode mode; /* Current color selection mode */ + WMColorPanelMode slidersmode; /* Current color selection mode at sliders panel */ + WMColorPanelMode lastChanged; /* Panel that last changed the color */ + int colx, coly; /* (x,y) of selection-marker in WheelMode */ + int palx, paly; /* (x,y) of selection-marker in CustomPaletteMode */ + float palXRatio, palYRatio; /* Ratios in x & y between original and scaled palettesize */ + int currentPalette; + char *configurationPath; + + struct { + unsigned int dragging:1; + unsigned int done:1; + } flags; +} W_ColorPanel; + +enum { + menuNewFromFile, + menuRename, + menuRemove, + menuCopy, + menuNewFromClipboard +} customPaletteMenuItem; + +#define PWIDTH 194 +#define PHEIGHT 266 +#define colorWheelSize 150 +#define customPaletteWidth 182 +#define customPaletteHeight 106 +#define knobThickness 8 + +#define SPECTRUM_WIDTH 511 +#define SPECTRUM_HEIGHT 360 + +#define COLORWHEEL_PART 1 +#define CUSTOMPALETTE_PART 2 +#define BUFSIZE 1024 + +#undef EASTEREGG + +#define RGBTXT "/usr/X11R6/lib/X11/rgb.txt" +#define MAX_LENGTH 1024 + +static void wAbort(); +static int fetchImageFile(char* toPath, char *imageSrcFile, char *imageDestFileName); +char *generateNewFilename(char *curName); + +static void modeButtonCallback(WMWidget *w, void *data); +static int getPickerPart(W_ColorPanel *panel, int x, int y); +static void readConfiguration(W_ColorPanel *panel); +static void readXColors(W_ColorPanel *panel); + +static Cursor magnifyGrabPointer(W_ColorPanel *panel); +static WMPoint magnifyInitialize(W_ColorPanel *panel); +static void magnifyPutCursor(WMWidget *w, void *data); +static Pixmap magnifyCreatePixmap(WMColorPanel *panel); +static Pixmap magnifyGetStorePixmap(W_ColorPanel *panel, int x1, int y1, int x2, int y2); +static Pixmap magnifyGetImage(WMScreen *scr, int x, int y); + +static wheelMatrix* wheelCreateMatrix(unsigned int width , unsigned int height); +static void wheelDestroyMatrix(wheelMatrix *matrix); +static wheelMatrix* wheelInitMatrix(W_ColorPanel *panel); +static void wheelRender(W_ColorPanel *panel); +static Bool wheelInsideColorWheel(W_ColorPanel *panel, unsigned long ofs); +static void wheelPaint(W_ColorPanel *panel); + +static void wheelHandleEvents(XEvent *event, void *data); +static void wheelHandleActionEvents(XEvent *event, void *data); +static void wheelBrightnessSliderCallback(WMWidget *w, void *data); +static void wheelUpdateSelection(W_ColorPanel *panel); +static void wheelUndrawSelection(W_ColorPanel *panel); + +static void wheelPositionSelection(W_ColorPanel *panel, int x, int y); +static void wheelPositionSelectionOutBounds(W_ColorPanel *panel, int x, int y); +static void wheelUpdateBrightnessGradientFromHSV (W_ColorPanel *panel, RHSVColor topColor); +static void wheelUpdateBrightnessGradientFromLocation (W_ColorPanel *panel); +static void wheelUpdateBrightnessGradient(W_ColorPanel *panel, RColor topColor); + +static void grayBrightnessSliderCallback(WMWidget *w, void *data); +static void grayPresetButtonCallback(WMWidget *w, void *data); +static void grayBrightnessTextFieldCallback(void *observerData, WMNotification *notification); + +static void rgbSliderCallback(WMWidget *w, void *data); +static void rgbTextFieldCallback(void *observerData, WMNotification *notification); + +static void cmykSliderCallback(WMWidget *w, void *data); +static void cmykTextFieldCallback(void *observerData, WMNotification *notification); + +static void hsbSliderCallback(WMWidget *w, void *data); +static void hsbTextFieldCallback(void *observerData, WMNotification *notification); +static void hsbUpdateBrightnessGradient(W_ColorPanel *panel); +static void hsbUpdateSaturationGradient(W_ColorPanel *panel); +static void hsbUpdateHueGradient(W_ColorPanel *panel); + +static void customRenderSpectrum(W_ColorPanel *panel); +static void customSetPalette(W_ColorPanel *panel); +static void customPaletteHandleEvents(XEvent *event, void *data); +static void customPaletteHandleActionEvents(XEvent *event, void *data); +static void customPalettePositionSelection(W_ColorPanel *panel, int x, int y); +static void customPalettePositionSelectionOutBounds(W_ColorPanel *panel, int x, int y); +static void customPaletteMenuCallback(WMWidget *w, void *data); +static void customPaletteHistoryCallback(WMWidget *w, void *data); + +static void customPaletteMenuNewFromFile(W_ColorPanel *panel); +static void customPaletteMenuRename(W_ColorPanel *panel); +static void customPaletteMenuRemove(W_ColorPanel *panel); + +static void colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect); +static void colorListSelect(WMWidget *w, void *data); + +static void wheelInit(W_ColorPanel *panel); +static void grayInit(W_ColorPanel *panel); +static void rgbInit(W_ColorPanel *panel); +static void cmykInit(W_ColorPanel *panel); +static void hsbInit(W_ColorPanel *panel); + + +static void +wAbort () +{ + exit(1); +} + +static WMColorPanel* +makeColorPanel(WMScreen *scrPtr, char *name) +{ + WMColorPanel *panel; + RImage *image; + WMPixmap *pixmap; + RColor from; + RColor to; + WMColor *textcolor; + int i; + int x,y; + + + panel = wmalloc(sizeof(WMColorPanel)); + memset(panel, 0, sizeof(WMColorPanel)); + + panel->font8 = WMSystemFontOfSize(scrPtr, 8); + panel->font12 = WMSystemFontOfSize(scrPtr, 12); + + panel->win = WMCreateWindowWithStyle(scrPtr, name, WMTitledWindowMask | WMClosableWindowMask | WMResizableWindowMask); + WMResizeWidget(panel->win, PWIDTH, PHEIGHT); + WMSetWindowTitle(panel->win, "Colors"); + + + /* Set Default ColorPanel Mode(s) */ + panel->mode = WMWheelModeColorPanel; + panel->lastChanged = WMWheelModeColorPanel; + panel->slidersmode = WMRGBModeColorPanel; + panel->configurationPath = wstrappend(wusergnusteppath(), "/Library/Colors/"); + + /* Some Generic Purpose Widgets */ + panel->colorWell = WMCreateColorWell(panel->win); + WMResizeWidget(panel->colorWell, 134, 36); + WSetColorWellBordered(panel->colorWell, False); + WMMoveWidget(panel->colorWell, 56, 4); + + panel->magnifyBtn = WMCreateCommandButton(panel->win); + WMResizeWidget(panel->magnifyBtn, 46, 36); + WMMoveWidget(panel->magnifyBtn, 6,4); + WMSetButtonAction(panel->magnifyBtn, magnifyPutCursor, panel); + WMSetButtonImagePosition(panel->magnifyBtn, WIPImageOnly); + WMSetButtonImage(panel->magnifyBtn, scrPtr->magnifyIcon); + WMSetButtonAltImage(panel->magnifyBtn, scrPtr->altMagnifyIcon); + + panel->wheelBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->wheelBtn, 46, 32); + WMMoveWidget(panel->wheelBtn, 6, 44); + WMSetButtonAction(panel->wheelBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->wheelBtn, WIPImageOnly); + WMSetButtonImage(panel->wheelBtn, scrPtr->wheelIcon); + + panel->slidersBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->slidersBtn, 46, 32); + WMMoveWidget(panel->slidersBtn, 52, 44); + WMSetButtonAction(panel->slidersBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->slidersBtn, WIPImageOnly); + WMSetButtonImage(panel->slidersBtn, scrPtr->rgbIcon); + + panel->customPaletteBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->customPaletteBtn, 46, 32); + WMMoveWidget(panel->customPaletteBtn, 98, 44); + WMSetButtonAction(panel->customPaletteBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->customPaletteBtn, WIPImageOnly); + WMSetButtonImage(panel->customPaletteBtn, scrPtr->customPaletteIcon); + + panel->colorListBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->colorListBtn, 46, 32); + WMMoveWidget(panel->colorListBtn, 144, 44); + WMSetButtonAction(panel->colorListBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->colorListBtn, WIPImageOnly); + WMSetButtonImage(panel->colorListBtn, scrPtr->colorListIcon); + + /* Let's Group some of them together */ + WMGroupButtons(panel->wheelBtn, panel->slidersBtn); + WMGroupButtons(panel->wheelBtn, panel->customPaletteBtn); + WMGroupButtons(panel->wheelBtn, panel->colorListBtn); + + /* Widgets for the ColorWheel Panel */ + panel->wheelFrm = WMCreateFrame(panel->win); + WMSetFrameRelief(panel->wheelFrm, WRFlat); + WMResizeWidget(panel->wheelFrm, PWIDTH - 8, PHEIGHT - 80 - 26); + WMMoveWidget(panel->wheelFrm, 5, 80); + + panel->wheelView = W_CreateView(W_VIEW(panel->wheelFrm)); + /* XXX Can we create a view ? */ + W_ResizeView(panel->wheelView, colorWheelSize+4, colorWheelSize+4); + W_MoveView(panel->wheelView, 0, 0); + + /* Create an event handler to handle expose/click events in the ColorWheel */ + WMCreateEventHandler(panel->wheelView, ButtonPressMask|ButtonReleaseMask|EnterWindowMask + |LeaveWindowMask|ButtonMotionMask, wheelHandleActionEvents, panel); + + WMCreateEventHandler(panel->wheelView, ExposureMask, wheelHandleEvents, panel); + + panel->wheelBrightnessS = WMCreateSlider(panel->wheelFrm); + WMResizeWidget(panel->wheelBrightnessS, 16, 153); + WMMoveWidget(panel->wheelBrightnessS, 5+colorWheelSize+14, 1); + WMSetSliderMinValue(panel->wheelBrightnessS, 0); + WMSetSliderMaxValue(panel->wheelBrightnessS, 255); + WMSetSliderAction(panel->wheelBrightnessS, wheelBrightnessSliderCallback, panel); + WMSetSliderKnobThickness(panel->wheelBrightnessS, knobThickness); + + + /* Widgets for the Slider Panels */ + panel->slidersFrm = WMCreateFrame(panel->win); + WMSetFrameRelief(panel->slidersFrm, WRFlat); + WMResizeWidget(panel->slidersFrm, PWIDTH - 8, PHEIGHT - 80 - 26); + WMMoveWidget(panel->slidersFrm, 4, 80); + + panel->seperatorFrm = WMCreateFrame(panel->slidersFrm); + WMSetFrameRelief(panel->seperatorFrm, WRPushed); + WMResizeWidget(panel->seperatorFrm, PWIDTH - 8, 2); + WMMoveWidget(panel->seperatorFrm, 0, 1); + + panel->grayBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->grayBtn, 46, 24); + WMMoveWidget(panel->grayBtn, 1, 8); + WMSetButtonAction(panel->grayBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->grayBtn, WIPImageOnly); + WMSetButtonImage(panel->grayBtn, scrPtr->grayIcon); + + panel->rgbBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->rgbBtn, 46, 24); + WMMoveWidget(panel->rgbBtn, 47, 8); + WMSetButtonAction(panel->rgbBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->rgbBtn, WIPImageOnly); + WMSetButtonImage(panel->rgbBtn, scrPtr->rgbIcon); + + panel->cmykBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->cmykBtn, 46, 24); + WMMoveWidget(panel->cmykBtn, 93, 8); + WMSetButtonAction(panel->cmykBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->cmykBtn, WIPImageOnly); + WMSetButtonImage(panel->cmykBtn, scrPtr->cmykIcon); + + panel->hsbBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + WMResizeWidget(panel->hsbBtn, 46, 24); + WMMoveWidget(panel->hsbBtn, 139, 8); + WMSetButtonAction(panel->hsbBtn, modeButtonCallback, panel); + WMSetButtonImagePosition(panel->hsbBtn, WIPImageOnly); + WMSetButtonImage(panel->hsbBtn, scrPtr->hsbIcon); + + /* Let's Group the Slider Panel Buttons Together */ + WMGroupButtons(panel->grayBtn, panel->rgbBtn); + WMGroupButtons(panel->grayBtn, panel->cmykBtn); + WMGroupButtons(panel->grayBtn, panel->hsbBtn); + + textcolor = WMDarkGrayColor(scrPtr); + + /* Widgets for GrayScale Panel */ + panel->grayFrm = WMCreateFrame(panel->slidersFrm); + WMSetFrameRelief(panel->grayFrm, WRFlat); + WMResizeWidget(panel->grayFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); + WMMoveWidget(panel->grayFrm, 0, 34); + + panel->grayMinL = WMCreateLabel(panel->grayFrm); + WMResizeWidget(panel->grayMinL, 20, 10); + WMMoveWidget(panel->grayMinL, 2, 2); + WMSetLabelText(panel->grayMinL, "0"); + WMSetLabelTextAlignment(panel->grayMinL, WALeft); + WMSetLabelTextColor(panel->grayMinL, textcolor); + WMSetLabelFont(panel->grayMinL, panel->font8); + + panel->grayMaxL = WMCreateLabel(panel->grayFrm); + WMResizeWidget(panel->grayMaxL, 40, 10); + WMMoveWidget(panel->grayMaxL, 104, 2); + WMSetLabelText(panel->grayMaxL, "100"); + WMSetLabelTextAlignment(panel->grayMaxL, WARight); + WMSetLabelTextColor(panel->grayMaxL, textcolor); + WMSetLabelFont(panel->grayMaxL, panel->font8); + + panel->grayBrightnessS = WMCreateSlider(panel->grayFrm); + WMResizeWidget(panel->grayBrightnessS, 141, 16); + WMMoveWidget(panel->grayBrightnessS, 2, 14); + WMSetSliderMinValue(panel->grayBrightnessS, 0); + WMSetSliderMaxValue(panel->grayBrightnessS, 100); + WMSetSliderKnobThickness(panel->grayBrightnessS, knobThickness); + WMSetSliderAction(panel->grayBrightnessS, grayBrightnessSliderCallback, panel); + + from.red = 0; + from.green = 0; + from.blue = 0; + + to.red = 255; + to.green = 255; + to.blue = 255; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + RDestroyImage(image); + W_PaintText(W_VIEW(panel->grayBrightnessS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Brightness", strlen("Brightness")); + WMSetSliderImage(panel->grayBrightnessS, pixmap); + WMReleasePixmap(pixmap); + + panel->grayBrightnessT = WMCreateTextField(panel->grayFrm); + WMResizeWidget(panel->grayBrightnessT, 40, 18); + WMMoveWidget(panel->grayBrightnessT, 146, 13); + WMSetTextFieldAlignment(panel->grayBrightnessT, WALeft); + WMAddNotificationObserver(grayBrightnessTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->grayBrightnessT); + + image = RCreateImage(13,13,False); + for (i=0; i < 7; i++) { + for (x=0; x < 13; x++) { + for (y=0; y < 13; y++) { + image->data[0][y*13+x] = 255/6*i; + image->data[1][y*13+x] = 255/6*i; + image->data[2][y*13+x] = 255/6*i; + } + } + panel->grayPresetBtn[i] = WMCreateCommandButton(panel->grayFrm); + WMResizeWidget(panel->grayPresetBtn[i], 20, 24); + WMMoveWidget(panel->grayPresetBtn[i], 2+(i*20), 34); + WMSetButtonAction(panel->grayPresetBtn[i], grayPresetButtonCallback, panel); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + WMSetButtonImage(panel->grayPresetBtn[i], pixmap); + WMSetButtonImagePosition(panel->grayPresetBtn[i], WIPImageOnly); + WMReleasePixmap(pixmap); + } + RDestroyImage(image); + /* End of GrayScale Panel */ + + /* Widgets for RGB Panel */ + panel->rgbFrm = WMCreateFrame(panel->slidersFrm); + WMSetFrameRelief(panel->rgbFrm, WRFlat); + WMResizeWidget(panel->rgbFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); + WMMoveWidget(panel->rgbFrm, 0, 34); + + panel->rgbMinL = WMCreateLabel(panel->rgbFrm); + WMResizeWidget(panel->rgbMinL, 20, 10); + WMMoveWidget(panel->rgbMinL, 2, 2); + WMSetLabelText(panel->rgbMinL, "0"); + WMSetLabelTextAlignment(panel->rgbMinL, WALeft); + WMSetLabelTextColor(panel->rgbMinL, textcolor); + WMSetLabelFont(panel->rgbMinL, panel->font8); + + panel->rgbMaxL = WMCreateLabel(panel->rgbFrm); + WMResizeWidget(panel->rgbMaxL, 40, 10); + WMMoveWidget(panel->rgbMaxL, 104, 2); + WMSetLabelText(panel->rgbMaxL, "255"); + WMSetLabelTextAlignment(panel->rgbMaxL, WARight); + WMSetLabelTextColor(panel->rgbMaxL, textcolor); + WMSetLabelFont(panel->rgbMaxL, panel->font8); + + panel->rgbRedS = WMCreateSlider(panel->rgbFrm); + WMResizeWidget(panel->rgbRedS, 141, 16); + WMMoveWidget(panel->rgbRedS, 2, 14); + WMSetSliderMinValue(panel->rgbRedS, 0); + WMSetSliderMaxValue(panel->rgbRedS, 255); + WMSetSliderKnobThickness(panel->rgbRedS, knobThickness); + WMSetSliderAction(panel->rgbRedS, rgbSliderCallback, panel); + + to.red = 255; + to.green = 0; + to.blue = 0; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + W_PaintText(W_VIEW(panel->rgbRedS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Red", strlen("Red")); + RDestroyImage(image); + WMSetSliderImage(panel->rgbRedS, pixmap); + WMReleasePixmap(pixmap); + + panel->rgbRedT = WMCreateTextField(panel->rgbFrm); + WMResizeWidget(panel->rgbRedT, 40, 18); + WMMoveWidget(panel->rgbRedT, 146, 13); + WMSetTextFieldAlignment(panel->rgbRedT, WALeft); + WMAddNotificationObserver(rgbTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->rgbRedT); + + + panel->rgbGreenS = WMCreateSlider(panel->rgbFrm); + WMResizeWidget(panel->rgbGreenS, 141, 16); + WMMoveWidget(panel->rgbGreenS, 2, 36); + WMSetSliderMinValue(panel->rgbGreenS, 0); + WMSetSliderMaxValue(panel->rgbGreenS, 255); + WMSetSliderKnobThickness(panel->rgbGreenS, knobThickness); + WMSetSliderAction(panel->rgbGreenS, rgbSliderCallback, panel); + + to.red = 0; + to.green = 255; + to.blue = 0; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + W_PaintText(W_VIEW(panel->rgbGreenS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Green", strlen("Green")); + RDestroyImage(image); + WMSetSliderImage(panel->rgbGreenS, pixmap); + WMReleasePixmap(pixmap); + + panel->rgbGreenT = WMCreateTextField(panel->rgbFrm); + WMResizeWidget(panel->rgbGreenT, 40, 18); + WMMoveWidget(panel->rgbGreenT, 146, 35); + WMSetTextFieldAlignment(panel->rgbGreenT, WALeft); + WMAddNotificationObserver(rgbTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->rgbGreenT); + + + panel->rgbBlueS = WMCreateSlider(panel->rgbFrm); + WMResizeWidget(panel->rgbBlueS, 141, 16); + WMMoveWidget(panel->rgbBlueS, 2, 58); + WMSetSliderMinValue(panel->rgbBlueS, 0); + WMSetSliderMaxValue(panel->rgbBlueS, 255); + WMSetSliderKnobThickness(panel->rgbBlueS, knobThickness); + WMSetSliderAction(panel->rgbBlueS, rgbSliderCallback, panel); + + to.red = 0; + to.green = 0; + to.blue = 255; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + W_PaintText(W_VIEW(panel->rgbBlueS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Blue", strlen("Blue")); + RDestroyImage(image); + WMSetSliderImage(panel->rgbBlueS, pixmap); + WMReleasePixmap(pixmap); + + panel->rgbBlueT = WMCreateTextField(panel->rgbFrm); + WMResizeWidget(panel->rgbBlueT, 40, 18); + WMMoveWidget(panel->rgbBlueT, 146, 57); + WMSetTextFieldAlignment(panel->rgbBlueT, WALeft); + WMAddNotificationObserver(rgbTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->rgbBlueT); + /* End of RGB Panel */ + + /* Widgets for CMYK Panel */ + panel->cmykFrm = WMCreateFrame(panel->slidersFrm); + WMSetFrameRelief(panel->cmykFrm, WRFlat); + WMResizeWidget(panel->cmykFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); + WMMoveWidget(panel->cmykFrm, 0, 34); + + panel->cmykMinL = WMCreateLabel(panel->cmykFrm); + WMResizeWidget(panel->cmykMinL, 20, 10); + WMMoveWidget(panel->cmykMinL, 2, 2); + WMSetLabelText(panel->cmykMinL, "0"); + WMSetLabelTextAlignment(panel->cmykMinL, WALeft); + WMSetLabelTextColor(panel->cmykMinL, textcolor); + WMSetLabelFont(panel->cmykMinL, panel->font8); + + panel->cmykMaxL = WMCreateLabel(panel->cmykFrm); + WMResizeWidget(panel->cmykMaxL, 40, 10); + WMMoveWidget(panel->cmykMaxL, 104, 2); + WMSetLabelText(panel->cmykMaxL, "100"); + WMSetLabelTextAlignment(panel->cmykMaxL, WARight); + WMSetLabelTextColor(panel->cmykMaxL, textcolor); + WMSetLabelFont(panel->cmykMaxL, panel->font8); + + panel->cmykCyanS = WMCreateSlider(panel->cmykFrm); + WMResizeWidget(panel->cmykCyanS, 141, 16); + WMMoveWidget(panel->cmykCyanS, 2, 14); + WMSetSliderMinValue(panel->cmykCyanS, 0); + WMSetSliderMaxValue(panel->cmykCyanS, 100); + WMSetSliderKnobThickness(panel->cmykCyanS, knobThickness); + WMSetSliderAction(panel->cmykCyanS, cmykSliderCallback, panel); + + from.red = 255; + from.green = 255; + from.blue = 255; + + to.red = 0; + to.green = 255; + to.blue = 255; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + W_PaintText(W_VIEW(panel->cmykCyanS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Cyan", strlen("Cyan")); + RDestroyImage(image); + WMSetSliderImage(panel->cmykCyanS, pixmap); + WMReleasePixmap(pixmap); + + panel->cmykCyanT = WMCreateTextField(panel->cmykFrm); + WMResizeWidget(panel->cmykCyanT, 40, 18); + WMMoveWidget(panel->cmykCyanT, 146, 13); + WMSetTextFieldAlignment(panel->cmykCyanT, WALeft); + WMAddNotificationObserver(cmykTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->cmykCyanT); + + + panel->cmykMagentaS = WMCreateSlider(panel->cmykFrm); + WMResizeWidget(panel->cmykMagentaS, 141, 16); + WMMoveWidget(panel->cmykMagentaS, 2, 36); + WMSetSliderMinValue(panel->cmykMagentaS, 0); + WMSetSliderMaxValue(panel->cmykMagentaS, 100); + WMSetSliderKnobThickness(panel->cmykMagentaS, knobThickness); + WMSetSliderAction(panel->cmykMagentaS, cmykSliderCallback, panel); + + to.red = 255; + to.green = 0; + to.blue = 255; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + W_PaintText(W_VIEW(panel->cmykMagentaS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Magenta", strlen("Magenta")); + RDestroyImage(image); + WMSetSliderImage(panel->cmykMagentaS, pixmap); + WMReleasePixmap(pixmap); + + panel->cmykMagentaT = WMCreateTextField(panel->cmykFrm); + WMResizeWidget(panel->cmykMagentaT, 40, 18); + WMMoveWidget(panel->cmykMagentaT, 146, 35); + WMSetTextFieldAlignment(panel->cmykMagentaT, WALeft); + WMAddNotificationObserver(cmykTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->cmykMagentaT); + + + panel->cmykYellowS = WMCreateSlider(panel->cmykFrm); + WMResizeWidget(panel->cmykYellowS, 141, 16); + WMMoveWidget(panel->cmykYellowS, 2, 58); + WMSetSliderMinValue(panel->cmykYellowS, 0); + WMSetSliderMaxValue(panel->cmykYellowS, 100); + WMSetSliderKnobThickness(panel->cmykYellowS, knobThickness); + WMSetSliderAction(panel->cmykYellowS, cmykSliderCallback, panel); + + to.red = 255; + to.green = 255; + to.blue = 0; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + W_PaintText(W_VIEW(panel->cmykYellowS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Yellow", strlen("Yellow")); + RDestroyImage(image); + WMSetSliderImage(panel->cmykYellowS, pixmap); + WMReleasePixmap(pixmap); + + panel->cmykYellowT = WMCreateTextField(panel->cmykFrm); + WMResizeWidget(panel->cmykYellowT, 40, 18); + WMMoveWidget(panel->cmykYellowT, 146, 57); + WMSetTextFieldAlignment(panel->cmykYellowT, WALeft); + WMAddNotificationObserver(cmykTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->cmykYellowT); + + + panel->cmykBlackS = WMCreateSlider(panel->cmykFrm); + WMResizeWidget(panel->cmykBlackS, 141, 16); + WMMoveWidget(panel->cmykBlackS, 2, 80); + WMSetSliderMinValue(panel->cmykBlackS, 0); + WMSetSliderMaxValue(panel->cmykBlackS, 100); + WMSetSliderValue(panel->cmykBlackS, 0); + WMSetSliderKnobThickness(panel->cmykBlackS, knobThickness); + WMSetSliderAction(panel->cmykBlackS, cmykSliderCallback, panel); + + to.red = 0; + to.green = 0; + to.blue = 0; + + image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); + W_PaintText(W_VIEW(panel->cmykBlackS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Black", strlen("Black")); + RDestroyImage(image); + WMSetSliderImage(panel->cmykBlackS, pixmap); + WMReleasePixmap(pixmap); + + panel->cmykBlackT = WMCreateTextField(panel->cmykFrm); + WMResizeWidget(panel->cmykBlackT, 40, 18); + WMMoveWidget(panel->cmykBlackT, 146, 79); + WMSetTextFieldAlignment(panel->cmykBlackT, WALeft); + WMAddNotificationObserver(cmykTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->cmykBlackT); + /* End of CMYK Panel */ + + /* Widgets for HSB Panel */ + panel->hsbFrm = WMCreateFrame(panel->slidersFrm); + WMSetFrameRelief(panel->hsbFrm, WRFlat); + WMResizeWidget(panel->hsbFrm, PWIDTH - 8, PHEIGHT - 80 - 26 - 32); + WMMoveWidget(panel->hsbFrm, 0, 34); + + panel->hsbHueS = WMCreateSlider(panel->hsbFrm); + WMResizeWidget(panel->hsbHueS, 141, 16); + WMMoveWidget(panel->hsbHueS, 2, 14); + WMSetSliderMinValue(panel->hsbHueS, 0); + WMSetSliderMaxValue(panel->hsbHueS, 359); + WMSetSliderKnobThickness(panel->hsbHueS, knobThickness); + WMSetSliderAction(panel->hsbHueS, hsbSliderCallback, panel); + + panel->hsbHueT = WMCreateTextField(panel->hsbFrm); + WMResizeWidget(panel->hsbHueT, 40, 18); + WMMoveWidget(panel->hsbHueT, 146, 13); + WMSetTextFieldAlignment(panel->hsbHueT, WALeft); + WMAddNotificationObserver(hsbTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->hsbHueT); + + + panel->hsbSaturationS = WMCreateSlider(panel->hsbFrm); + WMResizeWidget(panel->hsbSaturationS, 141, 16); + WMMoveWidget(panel->hsbSaturationS, 2, 36); + WMSetSliderMinValue(panel->hsbSaturationS, 0); + WMSetSliderMaxValue(panel->hsbSaturationS, 100); + WMSetSliderKnobThickness(panel->hsbSaturationS, knobThickness); + WMSetSliderAction(panel->hsbSaturationS, hsbSliderCallback, panel); + + panel->hsbSaturationT = WMCreateTextField(panel->hsbFrm); + WMResizeWidget(panel->hsbSaturationT, 40, 18); + WMMoveWidget(panel->hsbSaturationT, 146, 35); + WMSetTextFieldAlignment(panel->hsbSaturationT, WALeft); + WMAddNotificationObserver(hsbTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->hsbSaturationT); + + + panel->hsbBrightnessS = WMCreateSlider(panel->hsbFrm); + WMResizeWidget(panel->hsbBrightnessS, 141, 16); + WMMoveWidget(panel->hsbBrightnessS, 2, 58); + WMSetSliderMinValue(panel->hsbBrightnessS, 0); + WMSetSliderMaxValue(panel->hsbBrightnessS, 100); + WMSetSliderKnobThickness(panel->hsbBrightnessS, knobThickness); + WMSetSliderAction(panel->hsbBrightnessS, hsbSliderCallback, panel); + + panel->hsbBrightnessT = WMCreateTextField(panel->hsbFrm); + WMResizeWidget(panel->hsbBrightnessT, 40, 18); + WMMoveWidget(panel->hsbBrightnessT, 146, 57); + WMSetTextFieldAlignment(panel->hsbBrightnessT, WALeft); + WMAddNotificationObserver(hsbTextFieldCallback, panel, \ +WMTextDidEndEditingNotification, panel->hsbBrightnessT); + /* End of HSB Panel */ + + + WMReleaseColor(textcolor); + + /* Widgets for the CustomPalette Panel */ + panel->customPaletteFrm = WMCreateFrame(panel->win); + WMSetFrameRelief(panel->customPaletteFrm, WRFlat); + WMResizeWidget(panel->customPaletteFrm, PWIDTH - 8, PHEIGHT - 80 - 26); + WMMoveWidget(panel->customPaletteFrm, 5, 80); + + panel->customPaletteHistoryBtn = WMCreatePopUpButton(panel->customPaletteFrm); + WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, "Spectrum"); + WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1); + WMSetPopUpButtonAction(panel->customPaletteHistoryBtn, customPaletteHistoryCallback, panel); + WMResizeWidget(panel->customPaletteHistoryBtn, PWIDTH - 8, 20); + WMMoveWidget(panel->customPaletteHistoryBtn, 0, 0); + + panel->customPaletteContentFrm = WMCreateFrame(panel->customPaletteFrm); + WMSetFrameRelief(panel->customPaletteContentFrm, WRSunken); + WMResizeWidget(panel->customPaletteContentFrm, PWIDTH - 8, PHEIGHT - 156); + WMMoveWidget(panel->customPaletteContentFrm, 0, 23); + + panel->customPaletteContentView = W_CreateView(W_VIEW(panel->customPaletteContentFrm)); + /* XXX Can we create a view ? */ + W_ResizeView(panel->customPaletteContentView, customPaletteWidth, customPaletteHeight); + W_MoveView(panel->customPaletteContentView, 2, 2); + + /* Create an event handler to handle expose/click events in the CustomPalette */ + WMCreateEventHandler(panel->customPaletteContentView, ButtonPressMask|ButtonReleaseMask|EnterWindowMask + |LeaveWindowMask|ButtonMotionMask, customPaletteHandleActionEvents, panel); + + WMCreateEventHandler(panel->customPaletteContentView, ExposureMask, customPaletteHandleEvents, panel); + + panel->customPaletteMenuBtn = WMCreatePopUpButton(panel->customPaletteFrm); + WMSetPopUpButtonPullsDown(panel->customPaletteMenuBtn, 1); + WMSetPopUpButtonText(panel->customPaletteMenuBtn, "Palette"); + WMSetPopUpButtonAction(panel->customPaletteMenuBtn, customPaletteMenuCallback, panel); + WMResizeWidget(panel->customPaletteMenuBtn, PWIDTH - 8, 20); + WMMoveWidget(panel->customPaletteMenuBtn, 0, PHEIGHT - 130); + + WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "New from File..."); /* item 0 */ + WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "Rename..."); /* item 1 */ + WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "Remove"); /* item 2 */ + WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "Copy"); /* item 3 */ + WMAddPopUpButtonItem(panel->customPaletteMenuBtn, "New from Clipboard"); /* item 4 */ + + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 1, 0); + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 2, 0); + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 3, 0); + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, 4, 0); + + customRenderSpectrum(panel); + panel->currentPalette = 0; + + + /* Widgets for the ColorList Panel */ + panel->colorListFrm = WMCreateFrame(panel->win); + WMSetFrameRelief(panel->colorListFrm, WRFlat); + WMResizeWidget(panel->colorListFrm, PWIDTH - 8, PHEIGHT - 80 - 26); + WMMoveWidget(panel->colorListFrm, 5, 80); + + panel->colorListHistoryBtn = WMCreatePopUpButton(panel->colorListFrm); + WMAddPopUpButtonItem(panel->colorListHistoryBtn, "X11-Colors"); + WMSetPopUpButtonSelectedItem(panel->colorListHistoryBtn, WMGetPopUpButtonNumberOfItems(panel->colorListHistoryBtn)-1); + /* WMSetPopUpButtonAction(panel->colorListHistoryBtn, colorListHistoryCallback, panel); */ + WMResizeWidget(panel->colorListHistoryBtn, PWIDTH - 8, 20); + WMMoveWidget(panel->colorListHistoryBtn, 0, 0); + + panel->colorListContentLst = WMCreateList(panel->colorListFrm); + WMSetListAction(panel->colorListContentLst, colorListSelect, panel); + WMSetListUserDrawProc(panel->colorListContentLst, colorListPaintItem); + WMResizeWidget(panel->colorListContentLst, PWIDTH - 8, PHEIGHT - 156); + WMMoveWidget(panel->colorListContentLst, 0, 23); + WMHangData(panel->colorListContentLst, panel); + + panel->colorListColorMenuBtn = WMCreatePopUpButton(panel->colorListFrm); + WMSetPopUpButtonPullsDown(panel->colorListColorMenuBtn, 1); + WMSetPopUpButtonText(panel->colorListColorMenuBtn, "Color"); + /* WMSetPopUpButtonAction(panel->colorListColorMenuBtn, colorListColorMenuCallback, panel); */ + WMResizeWidget(panel->colorListColorMenuBtn, (PWIDTH - 16)/2, 20); + WMMoveWidget(panel->colorListColorMenuBtn, 0, PHEIGHT - 130); + + panel->colorListListMenuBtn = WMCreatePopUpButton(panel->colorListFrm); + WMSetPopUpButtonPullsDown(panel->colorListListMenuBtn, 1); + WMSetPopUpButtonText(panel->colorListListMenuBtn, "List"); + /* WMSetPopUpButtonAction(panel->colorListListMenuBtn, colorListListMenuCallback, panel); */ + WMResizeWidget(panel->colorListListMenuBtn, (PWIDTH - 16)/2, 20); + WMMoveWidget(panel->colorListListMenuBtn, (PWIDTH - 16)/2 + 8, PHEIGHT - 130); + + + WMRealizeWidget(panel->win); + WMMapSubwidgets(panel->win); + + WMMapSubwidgets(panel->wheelFrm); + WMMapSubwidgets(panel->slidersFrm); + WMMapSubwidgets(panel->grayFrm); + WMMapSubwidgets(panel->rgbFrm); + WMMapSubwidgets(panel->cmykFrm); + WMMapSubwidgets(panel->hsbFrm); + WMMapSubwidgets(panel->customPaletteFrm); + WMMapSubwidgets(panel->customPaletteContentFrm); + WMMapSubwidgets(panel->colorListFrm); + + readConfiguration(panel); + readXColors(panel); + + return panel; +} + + +WMColorPanel* +WMGetColorPanel(WMScreen *scrPtr) +{ + WMColorPanel *panel; + + if (scrPtr->sharedColorPanel) + return scrPtr->sharedColorPanel; + + panel = makeColorPanel(scrPtr, "colorPanel"); + + scrPtr->sharedColorPanel = panel; + + return panel; +} + + +void +WMFreeColorPanel(WMColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + + if (panel == scr->sharedColorPanel) { + WMWidgetScreen(panel->win)->sharedColorPanel = NULL; + } + WMRemoveNotificationObserver(panel); + WMUnmapWidget(panel->win); + WMDestroyWidget(panel->win); + if (panel->font8) + WMReleaseFont(panel->font8); + if (panel->font12) + WMReleaseFont(panel->font12); + if (panel->magnifyGlass->pixmap) + XFreePixmap(scr->display, panel->magnifyGlass->pixmap); + if (panel->wheelMtrx) + wheelDestroyMatrix(panel->wheelMtrx); + if (panel->wheelImg) + XFreePixmap(scr->display, panel->wheelImg); + if (panel->selectionImg) + XFreePixmap(scr->display, panel->selectionImg); + if (panel->selectionBackImg) + XFreePixmap(scr->display, panel->selectionBackImg); + if (panel->customPaletteImg) + RDestroyImage(panel->customPaletteImg); + if (panel->lastBrowseDir) + free(panel->lastBrowseDir); + if (panel->configurationPath) + free(panel->configurationPath); + + free(panel); +} + + +int +WMRunColorPanel(WMColorPanel *panel, WMWindow *owner, RColor color) +{ + WMScreen *scr = WMWidgetScreen(panel->win); + XEvent event; + RHSVColor hsvcolor; + GC bgc = W_GC(scr->black); + GC wgc = W_GC(scr->white); + float W_PI = 4*atan(1); + + WMChangePanelOwner(panel->win, owner); + + WMSetColorPanelColor(panel, color); + panel->wheelMtrx = wheelInitMatrix(panel); /* Needs to be done After Color is set */ + + /* Maybe put this in sub-function ... Initialising selection images */ + RRGBtoHSV(&color, &hsvcolor); + panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + (hsvcolor.saturation/255.0) * cos( hsvcolor.hue*W_PI/180.0))); + panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + (hsvcolor.saturation/255.0) * sin(-hsvcolor.hue*W_PI/180.0))); + wheelUpdateBrightnessGradientFromHSV(panel, hsvcolor); + WMSetSliderValue(panel->wheelBrightnessS, 255 - hsvcolor.value); + + panel->selectionImg = XCreatePixmap(scr->display, W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); + XFillRectangle(scr->display, panel->selectionImg, bgc, 0, 0, 4, 4); + XFillRectangle(scr->display, panel->selectionImg, wgc, 1, 1, 2, 2); + /* End of initialisation section */ + + panel->palx = customPaletteWidth/2; + panel->paly = customPaletteHeight/2; + + WMSetPickerMode(panel, WMWheelModeColorPanel); + + panel->flags.done = 0; + + WMMapWidget(panel->win); + + while (!panel->flags.done) { + WMNextEvent(scr->display, &event); + WMHandleEvent(&event); + } + + WMCloseWindow(panel->win); + + return 0; +} + + + +static void +readConfiguration(W_ColorPanel *panel) +{ + /* XXX Doesn't take care of "invalid" files */ + + DIR *dPtr; + struct dirent *dp; + struct stat stat_buf; + + + if (stat(panel->configurationPath, &stat_buf)!=0) { + if (mkdir(panel->configurationPath, S_IRWXU|S_IRGRP|S_IROTH|S_IXGRP|S_IXOTH)!=0) { + wsyserror("ColorPanel could not create directory %s needed to store configurations", panel->configurationPath); + WMFreeColorPanel(panel); + wAbort(); + } + return; + } + + dPtr = opendir(panel->configurationPath); + while ((dp = readdir(dPtr)) != NULL) { + if (dp->d_name[0] != '.') + WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, dp->d_name); + } + (void)closedir(dPtr); +} + + +static void +readXColors(W_ColorPanel *panel) +{ + struct stat stat_buf; + FILE *rgbtxt; + char line[MAX_LENGTH]; + int red, green, blue; + char name[48]; + RColor *color; + WMListItem *item; + + if (stat(RGBTXT, &stat_buf) != 0) { + wwarning("Cannot find file %s", RGBTXT); + return; + } + else { + rgbtxt = fopen(RGBTXT, "r"); + if (rgbtxt) { + while (fgets(line, MAX_LENGTH, rgbtxt)) { + if (sscanf(line, "%d%d%d %[^\n]", &red, &green, &blue, name)) { + color = wmalloc(sizeof(RColor)); + color->red = (unsigned char)red; + color->green = (unsigned char)green; + color->blue = (unsigned char)blue; + item = WMAddListItem(panel->colorListContentLst, name); + item->clientData = (void *)color; + } + } + fclose(rgbtxt); + } + else { + wsyserror("Unable to open file %s for reading", RGBTXT); + } + } +} + + +void +WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + + if (mode != WMWheelModeColorPanel) { + WMUnmapWidget(panel->wheelFrm); + if (panel->selectionBackImg) { + XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); + panel->selectionBackImg = None; + } + } + if (mode != WMGrayModeColorPanel) + WMUnmapWidget(panel->grayFrm); + if (mode != WMRGBModeColorPanel) + WMUnmapWidget(panel->rgbFrm); + if (mode != WMCMYKModeColorPanel) + WMUnmapWidget(panel->cmykFrm); + if (mode != WMHSBModeColorPanel) + WMUnmapWidget(panel->hsbFrm); + if (mode != WMCustomPaletteModeColorPanel) { + WMUnmapWidget(panel->customPaletteFrm); + if (panel->selectionBackImg) { + XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); + panel->selectionBackImg = None; + } + } + if (mode != WMColorListModeColorPanel) + WMUnmapWidget(panel->colorListFrm); + if ((mode != WMGrayModeColorPanel) && (mode != WMRGBModeColorPanel) && \ +(mode != WMCMYKModeColorPanel) && (mode != WMHSBModeColorPanel)) + WMUnmapWidget(panel->slidersFrm); + else + panel->slidersmode = mode; + + if (mode == WMWheelModeColorPanel) { + WMMapWidget(panel->wheelFrm); + WMSetButtonSelected(panel->wheelBtn, True); + if (panel->lastChanged != WMWheelModeColorPanel) + wheelInit(panel); + wheelRender(panel); + wheelPaint(panel); + } else if (mode == WMGrayModeColorPanel) { + WMMapWidget(panel->slidersFrm); + WMSetButtonSelected(panel->slidersBtn, True); + WMMapWidget(panel->grayFrm); + WMSetButtonSelected(panel->grayBtn, True); + WMSetButtonImage(panel->slidersBtn, scr->grayIcon); + if (panel->lastChanged != WMGrayModeColorPanel) + grayInit(panel); + } else if (mode == WMRGBModeColorPanel) { + WMMapWidget(panel->slidersFrm); + WMSetButtonSelected(panel->slidersBtn, True); + WMMapWidget(panel->rgbFrm); + WMSetButtonSelected(panel->rgbBtn, True); + WMSetButtonImage(panel->slidersBtn, scr->rgbIcon); + if (panel->lastChanged != WMRGBModeColorPanel) + rgbInit(panel); + } else if (mode == WMCMYKModeColorPanel) { + WMMapWidget(panel->slidersFrm); + WMSetButtonSelected(panel->slidersBtn, True); + WMMapWidget(panel->cmykFrm); + WMSetButtonSelected(panel->cmykBtn, True); + WMSetButtonImage(panel->slidersBtn, scr->cmykIcon); + if (panel->lastChanged != WMCMYKModeColorPanel) + cmykInit(panel); + } else if (mode == WMHSBModeColorPanel) { + WMMapWidget(panel->slidersFrm); + WMSetButtonSelected(panel->slidersBtn, True); + WMMapWidget(panel->hsbFrm); + WMSetButtonSelected(panel->hsbBtn, True); + WMSetButtonImage(panel->slidersBtn, scr->hsbIcon); + if (panel->lastChanged != WMHSBModeColorPanel) + hsbInit(panel); + } else if (mode == WMCustomPaletteModeColorPanel) { + WMMapWidget(panel->customPaletteFrm); + WMSetButtonSelected(panel->customPaletteBtn, True); + customSetPalette(panel); + } else if (mode == WMColorListModeColorPanel) { + WMMapWidget(panel->colorListFrm); + WMSetButtonSelected(panel->colorListBtn, True); + } + + + panel->mode = mode; +} + +void +WMSetColorPanelColor(WMColorPanel *panel, RColor color) +{ + WMScreen *scr = WMWidgetScreen(panel->win); + WMColor *wellcolor; + int originalHue; + + wellcolor = WMCreateRGBColor(scr, color.red << 8, color.green << 8, color.blue << 8, True); + WMSetColorWellColor(panel->colorWell, wellcolor); + WMReleaseColor(wellcolor); + + panel->color = color; + + /* If color was set by HSB-Panel do not convert back to hsv */ + if (panel->lastChanged != WMHSBModeColorPanel) { + + /* if color is black, hue is undetermined, so it must be restored */ + if ((panel->color.red == 0) && + (panel->color.green == 0) && + (panel->color.blue == 0) && + (panel->hsvcolor.hue <= 359)) + { + originalHue = panel->hsvcolor.hue; + RRGBtoHSV(&panel->color, &panel->hsvcolor); + panel->hsvcolor.hue = originalHue; + } else { + RRGBtoHSV(&panel->color, &panel->hsvcolor); + } + } +} + +static void +modeButtonCallback(WMWidget *w, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)(data); + + if (w == panel->wheelBtn) + WMSetPickerMode(panel, WMWheelModeColorPanel); + else if (w == panel->slidersBtn) + WMSetPickerMode(panel, panel->slidersmode); + else if (w == panel->customPaletteBtn) + WMSetPickerMode(panel, WMCustomPaletteModeColorPanel); + else if (w == panel->colorListBtn) + WMSetPickerMode(panel, WMColorListModeColorPanel); + else if (w == panel->grayBtn) + WMSetPickerMode(panel, WMGrayModeColorPanel); + else if (w == panel->rgbBtn) + WMSetPickerMode(panel, WMRGBModeColorPanel); + else if (w == panel->cmykBtn) + WMSetPickerMode(panel, WMCMYKModeColorPanel); + else if (w == panel->hsbBtn) + WMSetPickerMode(panel, WMHSBModeColorPanel); +} + + +/****************** Magnifying Cursor Functions *******************/ +static Pixmap +magnifyGetImage(WMScreen *scr, int x, int y) +{ + XImage *image; + Pixmap pixmap; + int x0, y0, w0, h0; + int displayWidth = DisplayWidth(scr->display, scr->screen); + int displayHeight = DisplayHeight(scr->display, scr->screen); + + /* Coordinate correction for back pixmap */ + x0 = 0; y0 = 0; w0 = mglass_width; h0 = mglass_height; + + if (x < mglass_width/2) { + if (x < 0) x = 0; + x0 = mglass_width/2 - x; + w0 = mglass_width - x0; + } + + if (x > displayWidth - (mglass_width+1)/2) { + if (x > displayWidth) x = displayWidth; + w0 = mglass_width - ((mglass_width+1)/2 - (displayWidth - x)); + } + + if (y < mglass_height/2) { + if (y < 0) y = 0; + y0 = mglass_height/2 - y; + h0 = mglass_height - y0; + } + + if (y > displayHeight - (mglass_height+1)/2) { + if (y > displayHeight) y = displayHeight; + h0 = mglass_height - ((mglass_height+1)/2 - (displayHeight - y)); + } + + image = XGetImage(scr->display, scr->rootWin, x + x0 - mglass_width/2, + y + y0 - mglass_height/2, w0, h0, AllPlanes, ZPixmap); + + pixmap = XCreatePixmap(scr->display, W_DRAWABLE(scr), + mglass_width, mglass_height, scr->depth); + XPutImage(scr->display, pixmap, scr->copyGC, image, 0, 0, x0, y0, w0, h0); + + return pixmap; +} + + +static Pixmap +magnifyGetStorePixmap(WMColorPanel *panel, int x1, int y1, int x2, int y2) +{ + /* + * (x1, y1) = topleft corner of existing rectangle + * (x2, y2) = topleft corner of new position + */ + + W_Screen *scr = WMWidgetScreen(panel->win); + Pixmap pixmap; + int xa, ya, xb, yb, w, h; + + if (x1 < x2) { + xa = x2 - x1; + xb = 0; + } else { + xa = 0; + xb = x1 - x2; + } + + if (y1 < y2) { + ya = y2 - y1; + yb = 0; + } else { + ya = 0; + yb = y1 - y2; + } + + w = mglass_width - abs(x1-x2); + h = mglass_height - abs(y1-y2); + + /* Get pixmap from screen */ + pixmap = magnifyGetImage(scr, x2, y2); + + /* Copy previously stored pixmap on covered part of above pixmap */ + if (panel->magnifyGlass->valid) { + XCopyArea(scr->display, panel->magnifyGlass->pixmap, pixmap, + scr->copyGC, xa, ya, w, h, xb, yb); + + /* Free it, so we can reuse it */ + XFreePixmap(scr->display, panel->magnifyGlass->pixmap); + } + + return pixmap; +} + + +static Pixmap +magnifyCreatePixmap(WMColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + int u, v; + int i, j; + int ofs; + Pixmap magPix; + Pixmap backPix; + RImage *pixelImg; + + /* + * Get image + */ + + /* Rectangle that's going to be the background */ + backPix = XCreatePixmap(scr->display, W_DRAWABLE(scr), mglass_width, + mglass_height, scr->depth); + XCopyArea(scr->display, panel->magnifyGlass->pixmap, backPix, scr->copyGC, + 0, 0, mglass_width, mglass_height, 0, 0); + + /* + * Magnify image + */ + + magPix = XCreatePixmap(scr->display, W_DRAWABLE(scr), mglass_width, + mglass_height, scr->depth); + + for (u=0; u<=3; u++) + for (v=0; v<=3; v++) + for (i=u*6; i < (u+1)*6; i++) + for (j=v*6; j < (v+1)*6; j++) + if (((i >= 0) && (i < mglass_width)) + && ((j >= 0) && (j < mglass_height))) + XCopyArea(scr->display, backPix, magPix, scr->copyGC, + u + 4, v + 4, 1, 1, i, j); + + /* Get color under hotspot */ + ofs = mglass_width/2 + (mglass_height/2)*mglass_width; + pixelImg = RCreateImageFromDrawable(scr->rcontext, backPix, backPix); + panel->magnifyGlass->color.red = pixelImg->data[0][ofs]; + panel->magnifyGlass->color.green = pixelImg->data[1][ofs]; + panel->magnifyGlass->color.blue = pixelImg->data[2][ofs]; + RDestroyImage(pixelImg); + + /* Copy the magnified pixmap, with the clip mask, to the background pixmap */ + XSetClipMask(scr->display, scr->clipGC, panel->magnifyGlass->mask); + XSetClipOrigin(scr->display, scr->clipGC, 0, 0); + + XCopyArea(scr->display, magPix, backPix, scr->clipGC, 0, 0, + mglass_width, mglass_height, 0, 0); + + XFreePixmap(scr->display, magPix); + + return backPix; +} + + +static WMView* +magnifyCreateView(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + WMView *magView; + + magView = W_CreateTopView(scr); + magView->self = panel; + + W_ResizeView(magView, mglass_width, mglass_height); + + magView->attribFlags |= CWOverrideRedirect | CWSaveUnder; + magView->attribs.event_mask = StructureNotifyMask; + magView->attribs.override_redirect = True; + magView->attribs.save_under = True; + + W_RealizeView(magView); + W_MapView(magView); + + return magView; +} + + +static Cursor +magnifyGrabPointer(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + Pixmap magPixmap; + Pixmap magPixmap2; + Cursor magCursor; + XColor fgColor = {0,0,0,0,DoRed|DoGreen|DoBlue}; + XColor bgColor = {0,0xbd00,0xa500,0x5200,DoRed|DoGreen|DoBlue}; + + /* Cursor creation stuff */ + magPixmap = XCreatePixmapFromBitmapData(scr->display, W_DRAWABLE(scr), + magnify_cursor_bits, + magnify_cursor_width, + magnify_cursor_height, 1, 0, 1); + magPixmap2 = XCreatePixmapFromBitmapData(scr->display, W_DRAWABLE(scr), + magnify_mask_bits, + magnify_mask_width, + magnify_mask_height, 1, 0, 1); + magCursor = XCreatePixmapCursor(scr->display, magPixmap, magPixmap2, + &fgColor, &bgColor, magnify_hotspot_x, + magnify_hotspot_y); + XFreePixmap(scr->display, magPixmap); + XFreePixmap(scr->display, magPixmap2); + + XRecolorCursor(scr->display, magCursor, &fgColor, &bgColor); + + /* Set up Pointer */ + XGrabPointer (scr->display, panel->magnifyGlass->view->window, True, + PointerMotionMask | ButtonPressMask, + GrabModeAsync, GrabModeAsync, + scr->rootWin, magCursor, CurrentTime); + + return magCursor; +} + +static WMPoint +magnifyInitialize(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + int x, y, u, v; + unsigned int mask; + Pixmap pixmap; + WMPoint point; + + XQueryPointer(scr->display, scr->rootWin, &scr->rootWin, + &W_VIEW(panel->win)->window, &x, &y, &u, &v, &mask); + + + /* Clipmask to make magnified view-contents circular */ + panel->magnifyGlass->mask = + XCreatePixmapFromBitmapData(scr->display, W_DRAWABLE(scr), + magnify_mask_bits, mglass_width, + mglass_height, 1, 0, 1); + + /* Draw initial magnified part */ + panel->magnifyGlass->valid = False; + /* also free's magnifyGlass->pixmap */ + panel->magnifyGlass->pixmap = magnifyGetStorePixmap(panel, x, y, x, y); + panel->magnifyGlass->valid = True; + + pixmap = magnifyCreatePixmap(panel); + W_MoveView(panel->magnifyGlass->view, x - magnify_hotspot_x, + y - magnify_hotspot_y); + + XSetWindowBackgroundPixmap(scr->display, panel->magnifyGlass->view->window, + pixmap); + XClearWindow(scr->display, panel->magnifyGlass->view->window); + XFlush(scr->display); + + XFreePixmap(scr->display, pixmap); + + point.x = x; + point.y = y; + + return point; +} + + +static void +magnifyPutCursor(WMWidget *w, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)(data); + W_Screen *scr = WMWidgetScreen(panel->win); + Cursor magCursor; + int x, y; + Pixmap pixmap; + XEvent event; + WMPoint initialPosition; + + panel->magnifyGlass = wmalloc(sizeof(MovingView)); + + panel->magnifyGlass->view = magnifyCreateView(panel); + magCursor = magnifyGrabPointer(panel); + + initialPosition = magnifyInitialize(panel); + x = initialPosition.x; + y = initialPosition.y; + + + while(panel->magnifyGlass->valid) + { + WMNextEvent(scr->display, &event); + + switch (event.type) + { + case ButtonPress: + if (event.xbutton.button == Button1) { + WMSetColorPanelColor(panel, panel->magnifyGlass->color); + switch (panel->mode) { + case WMWheelModeColorPanel: + wheelInit(panel); + wheelRender(panel); + wheelPaint(panel); + break; + case WMGrayModeColorPanel: + grayInit(panel); + break; + case WMRGBModeColorPanel: + rgbInit(panel); + break; + case WMCMYKModeColorPanel: + cmykInit(panel); + break; + case WMHSBModeColorPanel: + hsbInit(panel); + break; + default: + break; + } + panel->lastChanged = panel->mode; + } + + panel->magnifyGlass->valid = False; + WMSetButtonSelected(panel->magnifyBtn, False); + break; + + case MotionNotify: + /* Get a "dirty rectangle" */ + panel->magnifyGlass->pixmap = magnifyGetStorePixmap( + panel, x, y, /* Cool, a circular reference ! */ + event.xmotion.x_root, + event.xmotion.y_root); /* also free's magnifyGlass->pixmap */ + + /* Update coordinates */ + x = event.xmotion.x_root; + y = event.xmotion.y_root; + + /* Move view */ + W_MoveView(panel->magnifyGlass->view, x - magnify_hotspot_x, + y - magnify_hotspot_y); + + /* Put new image (with magn.) in view */ + pixmap = magnifyCreatePixmap(panel); + XSetWindowBackgroundPixmap(scr->display, + panel->magnifyGlass->view->window, + pixmap); + XClearWindow(scr->display, panel->magnifyGlass->view->window); + + XFreePixmap(scr->display, pixmap); + break; + + default: + WMHandleEvent(&event); + break; + } /* of switch */ + } + panel->magnifyGlass->valid = False; + + XUngrabPointer(scr->display, CurrentTime); + XFreeCursor(scr->display, magCursor); + W_DestroyView(panel->magnifyGlass->view); + + XFreePixmap(scr->display, panel->magnifyGlass->mask); + XFreePixmap(scr->display, panel->magnifyGlass->pixmap); + free(panel->magnifyGlass); +} + + + +/****************** WheelMatrix Functions ************************/ + +static wheelMatrix* +wheelCreateMatrix(unsigned int width, unsigned int height) +{ + wheelMatrix *matrix = NULL; + int i; + + assert((width > 0) && (height > 0)); + + matrix = malloc(sizeof(wheelMatrix)); + if (!matrix) { + RErrorCode = RERR_NOMEMORY; + return NULL; + } + + memset(matrix, 0, sizeof(wheelMatrix)); + matrix->width = width; + matrix->height = height; + for (i = 0; i < 3; i++) { + matrix->data[i] = malloc(width*height*sizeof(unsigned char)); + if (!matrix->data[i]) + goto error; + } + + return matrix; + + error: + for (i = 0; i < 3; i++) { + if (matrix->data[i]) + free(matrix->data[i]); + } + if (matrix) + free(matrix); + RErrorCode = RERR_NOMEMORY; + return NULL; +} + + +static void +wheelDestroyMatrix(wheelMatrix *matrix) +{ + int i; + + assert (matrix!=NULL); + + for (i = 0; i < 3; i++) { + if (matrix->data[i]) + free(matrix->data[i]); + } + free(matrix); +} + + +static wheelMatrix* +wheelInitMatrix(W_ColorPanel *panel) +{ + int i; + int x,y; + wheelMatrix *matrix; + unsigned char *rp, *gp, *bp; + RHSVColor cur_hsv; + RColor cur_rgb; + long ofs[4]; + float hue; + int sat; + float xcor, ycor; + float W_PI = 4 *atan(1); + int dhue[4]; + + matrix = wheelCreateMatrix(colorWheelSize+4, colorWheelSize+4); + if (!matrix) + return NULL; + + RRGBtoHSV(&panel->color, &cur_hsv); + + for (i = 0; i < 256; i++) + matrix->values[i] = (unsigned char)(rint(i*cur_hsv.value/255)); + + cur_hsv.value = 255; + + ofs[0] = -1; + ofs[1] = -(colorWheelSize + 4); + /* ofs[2] = 0; superfluous + ofs[3] = 0; + */ + for (y = 0; y < (colorWheelSize+4)/2; y++) { + for (x = y; x < (colorWheelSize+4-y); x++) { + xcor = ((float)(2.0*x - 4.0) / colorWheelSize) - 1; + ycor = ((float)(2.0*y - 4.0) / colorWheelSize) - 1; + + sat = rint(255.0 * sqrt((xcor*xcor) + (ycor*ycor))); + + + + /* offsets are counterclockwise (in triangles) */ + if (y < (colorWheelSize+4)/2) + ofs[0]++; + /* top quarter */ + ofs[1] += colorWheelSize + 4; /* left quarter */ + + + ofs[2] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[0]; /* bottom quarter */ + ofs[3] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[1]; /* right quarter */ + + if (sat < 256) { + cur_hsv.saturation = (unsigned char)sat; + + if (xcor != 0) + hue = atan(ycor/xcor); + else { + if (ycor > 0) + hue = W_PI * 0.5; + else + hue = W_PI * 1.5; + } + + if (xcor < 0) + hue += W_PI; + if ((xcor > 0) && (ycor < 0)) + hue += W_PI * 2.0; + + hue = -hue; /* Reverse direction of ColorWheel */ + + if (hue < 0) + hue += W_PI * 2.0; + + dhue[0] = (hue*360) / (W_PI * 2.0); + + for (i = 0; i < 4; i++) { + + if (i > 0) + dhue[i] = (dhue[i-1] + 90) % 360; + + if ((i == 1) || (i == 3)) + dhue[i] = 360 - dhue[i]; + + if (i == 2) + dhue[i] = 360 - dhue[i] + 180; + + rp = matrix->data[0] + (ofs[i] * sizeof(unsigned char)); + gp = matrix->data[1] + (ofs[i] * sizeof(unsigned char)); + bp = matrix->data[2] + (ofs[i] * sizeof(unsigned char)); + + cur_hsv.hue = dhue[i]; + RHSVtoRGB(&cur_hsv, &cur_rgb); + + *rp = (unsigned char)(cur_rgb.red); + *gp = (unsigned char)(cur_rgb.green); + *bp = (unsigned char)(cur_rgb.blue); + } + } + else { + for (i = 0; i < 4; i++) { + rp = matrix->data[0] + (ofs[i] * sizeof(unsigned char)); + gp = matrix->data[1] + (ofs[i] * sizeof(unsigned char)); + bp = matrix->data[2] + (ofs[i] * sizeof(unsigned char)); + + *rp = (unsigned char)(0); + *gp = (unsigned char)(0); + *bp = (unsigned char)(0); + } + } + } + if (y < (colorWheelSize+4)/2) + ofs[0] += 2*y+1; + + ofs[1] += 1 - (colorWheelSize + 4) * (colorWheelSize + 4 - 1 - 2*y); + } + + return matrix; +} + +/****************** ColorWheel Functions *******************/ + +static void +wheelRender(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + int x,y; + RImage *image; + unsigned char *rp, *gp, *bp; + RColor gray; + unsigned long ofs; + + image = RCreateImage(colorWheelSize+4, colorWheelSize+4, False); + if (!image) + return; + + gray.red = gray.green = gray.blue = 0xaa; + + for (x = 0; x < colorWheelSize+4; x++) { + for (y = 0; y < colorWheelSize+4; y++) { + + ofs = (y * image->width) + x; + rp = image->data[0] + ofs; + gp = image->data[1] + ofs; + bp = image->data[2] + ofs; + + if (wheelInsideColorWheel(panel, ofs)) { + *rp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]); + *gp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]); + *bp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]); + } + else { + *rp = (unsigned char)(gray.red); + *gp = (unsigned char)(gray.green); + *bp = (unsigned char)(gray.blue); + } + } + } + + if (panel->wheelImg) + XFreePixmap(scr->display, panel->wheelImg); + + panel->wheelImg = XCreatePixmap(scr->display, W_DRAWABLE(scr), colorWheelSize+4, colorWheelSize+4, scr->depth); + RConvertImage(scr->rcontext, image, &panel->wheelImg); + + /* Check backimage existence. If it doesn't exist, allocate it and fill it */ + if (!panel->selectionBackImg) { + panel->selectionBackImg = XCreatePixmap(scr->display, W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); + XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, scr->copyGC, + panel->colx -2, panel->coly -2, 4, 4, 0, 0); /* -2 is for hot spot correction */ + } + + RDestroyImage(image); +} + +static Bool +wheelInsideColorWheel(W_ColorPanel *panel, unsigned long ofs) +{ + return ((panel->wheelMtrx->data[0][ofs] != 0) && + (panel->wheelMtrx->data[1][ofs] != 0) && + (panel->wheelMtrx->data[2][ofs] != 0)); +} + +static void +wheelPaint (W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + + XCopyArea(scr->display, panel->wheelImg, panel->wheelView->window, scr->copyGC, + 0, 0, colorWheelSize+4, colorWheelSize+4, 0, 0); + + /* Draw selection image */ + XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, scr->copyGC, + 0, 0, 4, 4, panel->colx -2, panel->coly -2); +} + +static void +wheelHandleEvents(XEvent *event, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)data; + + switch (event->type) { + case Expose: + if (event->xexpose.count != 0) + break; + wheelPaint(panel); + break; + } +} + +static void +wheelHandleActionEvents(XEvent *event, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)data; + + switch (event->type) { + case ButtonPress: + if (getPickerPart(panel, event->xbutton.x, event->xbutton.y) == COLORWHEEL_PART) { + panel->flags.dragging = 1; + wheelPositionSelection(panel, event->xbutton.x, event->xbutton.y); + } + break; + + case ButtonRelease: + panel->flags.dragging = 0; + break; + + case MotionNotify: + if (panel->flags.dragging) { + if (getPickerPart(panel, event->xmotion.x, event->xmotion.y) == COLORWHEEL_PART) { + wheelPositionSelection(panel, event->xmotion.x, event->xmotion.y); + } + else + wheelPositionSelectionOutBounds(panel, event->xmotion.x, event->xmotion.y); + } + break; + } +} + + +static int +getPickerPart(W_ColorPanel *panel, int x, int y) +{ + int lx, ly; + unsigned long ofs; + + lx = x; + ly = y; + + if (panel->mode == WMWheelModeColorPanel) { + if ((lx >= 2) && (lx <= 2+colorWheelSize) && (ly >= 2) && (ly <= 2+colorWheelSize)) { + ofs = ly*panel->wheelMtrx->width+lx; + + if (wheelInsideColorWheel(panel, ofs)) + return COLORWHEEL_PART; + } + } + + if (panel->mode == WMCustomPaletteModeColorPanel) { + if ((lx >= 2) && (lx < customPaletteWidth-2) && (ly >= 2) && (ly < customPaletteHeight-2)) { + return CUSTOMPALETTE_PART; + } + } + + return 0; +} + + +static void +wheelBrightnessSliderCallback(WMWidget *w, void *data) +{ + int i; + unsigned int v; + int value; + unsigned long ofs; + RColor cur_rgb; + + W_ColorPanel *panel = (W_ColorPanel*)data; + + value = 255-WMGetSliderValue(panel->wheelBrightnessS); + + for (i = 0; i < 256; i++) { + /* We divide by 128 in advance, and check whether that number divides + * by 2 properly. If not, we add one to round the number correctly + */ + v = (i*value) >> 7; +#ifdef EASTEREGG + panel->wheelMtrx->values[i] = (unsigned char)((v >> 1) + v); +#else + panel->wheelMtrx->values[i] = (unsigned char)((v >> 1) +(v & 0x01)); +#endif + } + + ofs = (panel->coly * panel->wheelMtrx->width) + panel->colx; + + if (!wheelInsideColorWheel(panel, ofs)) { + panel->hsvcolor.saturation = 255; + panel->hsvcolor.value = value; + RHSVtoRGB(&panel->hsvcolor, &cur_rgb); + + panel->color = cur_rgb; + } + else { + panel->color.red = panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]; + panel->color.green = panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]; + panel->color.blue = panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]; + } + + wheelRender(panel); + wheelPaint(panel); + wheelUpdateSelection(panel); +} + + +static void +wheelUpdateSelection(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + + WMSetColorPanelColor(panel, panel->color); + panel->lastChanged = WMWheelModeColorPanel; + + /* Redraw color selector (and make a backup of the part it will cover) */ + XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, scr->copyGC, + panel->colx -2, panel->coly -2, 4, 4, 0, 0); /* "-2" is correction for hotspot location */ + XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, scr->copyGC, + 0, 0, 4, 4, panel->colx -2, panel->coly -2); /* see above */ +} + +static void +wheelUndrawSelection(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + + XCopyArea(scr->display, panel->selectionBackImg, panel->wheelView->window, scr->copyGC, + 0, 0, 4, 4, panel->colx -2, panel->coly -2); /* see above */ +} + +static void +wheelPositionSelection(W_ColorPanel *panel, int x, int y) +{ + unsigned long ofs = (y * panel->wheelMtrx->width)+ x; + + + panel->color.red = panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]; + panel->color.green = panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]; + panel->color.blue = panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]; + + wheelUndrawSelection(panel); + + panel->colx = x; + panel->coly = y; + + wheelUpdateSelection(panel); + wheelUpdateBrightnessGradientFromLocation(panel); +} + +static void +wheelPositionSelectionOutBounds(W_ColorPanel *panel, int x, int y) +{ + RHSVColor cur_hsv; + float hue; + float xcor, ycor; + float W_PI = 4*atan(1); + + xcor = ((x*2.0) / (colorWheelSize+4)) - 1.0; + ycor = ((y*2.0) / (colorWheelSize+4)) - 1.0; + + cur_hsv.saturation = 255; + cur_hsv.value = 255 - WMGetSliderValue(panel->wheelBrightnessS); + + if (xcor != 0) + hue = atan(ycor/xcor); + else { + if (ycor > 0) + hue = W_PI * 0.5; + else + hue = W_PI * 1.5; + } + + if (xcor < 0) + hue += W_PI; + if ((xcor > 0) && (ycor < 0)) + hue += W_PI * 2.0; + + hue = -hue; + + if (hue < 0) + hue += W_PI * 2.0; + + cur_hsv.hue = (hue*360.0)/(W_PI*2.0); + RHSVtoRGB(&cur_hsv, &panel->color); + + wheelUndrawSelection(panel); + + panel->colx = 2 + rint((colorWheelSize * (1.0 + cos( cur_hsv.hue*W_PI/180))) /2.0); /* "+2" because of "colorWheelSize + 4" */ + panel->coly = 2 + rint((colorWheelSize * (1.0 + sin(-cur_hsv.hue*W_PI/180))) /2.0); + + wheelUpdateSelection(panel); + wheelUpdateBrightnessGradientFromHSV(panel, cur_hsv); +} + +static void +wheelUpdateBrightnessGradientFromHSV(W_ColorPanel *panel, RHSVColor topColor) +{ + RColor from; + + /* Update Brightness-Slider */ + topColor.value = 255; + RHSVtoRGB(&topColor, &from); + + wheelUpdateBrightnessGradient(panel, from); +} + +static void +wheelUpdateBrightnessGradientFromLocation(W_ColorPanel *panel) +{ + RColor from; + unsigned long ofs; + + ofs = panel->coly * panel->wheelMtrx->width + panel->colx; + + from.red = panel->wheelMtrx->data[0][ofs]; + from.green = panel->wheelMtrx->data[1][ofs]; + from.blue = panel->wheelMtrx->data[2][ofs]; + + wheelUpdateBrightnessGradient(panel, from); +} + +static void +wheelUpdateBrightnessGradient(W_ColorPanel *panel, RColor topColor) +{ + RColor to; + RImage *sliderImg; + WMPixmap *sliderPxmp; + + to.red = to.green = to.blue = 0; + + sliderImg = RRenderGradient(16, 153, &topColor, &to, RGRD_VERTICAL); + sliderPxmp = WMCreatePixmapFromRImage(WMWidgetScreen(panel->win), sliderImg, 0); + RDestroyImage(sliderImg); + WMSetSliderImage(panel->wheelBrightnessS, sliderPxmp); + WMReleasePixmap(sliderPxmp); +} + +/****************** Grayscale Panel Functions ***************/ + +static void +grayBrightnessSliderCallback(WMWidget *w, void *data) +{ + RColor color; + int value; + char tmp[4]; + + W_ColorPanel *panel = (W_ColorPanel*)data; + + value = WMGetSliderValue(panel->grayBrightnessS); + + sprintf(tmp, "%d", value); + + WMSetTextFieldText(panel->grayBrightnessT, tmp); + color.red = color.green = color.blue = rint(2.55*value); + + WMSetColorPanelColor(panel, color); + panel->lastChanged = WMGrayModeColorPanel; +} + +static void +grayPresetButtonCallback(WMWidget *w, void *data) +{ + RColor color; + char tmp[4]; + int value; + int i=0; + + W_ColorPanel *panel = (W_ColorPanel*)data; + + while (i < 7) { + if (w == panel->grayPresetBtn[i]) + break; + i++; + } + + value = rint(100.0/6.0*i); + sprintf(tmp, "%d", value); + + WMSetTextFieldText(panel->grayBrightnessT, tmp); + color.red = color.green = color.blue = rint(255.0*i/6.0); + + WMSetSliderValue(panel->grayBrightnessS, rint(100.0*i/6.0)); + + WMSetColorPanelColor(panel, color); + panel->lastChanged = WMGrayModeColorPanel; +} + +static void +grayBrightnessTextFieldCallback(void *observerData, WMNotification *notification) +{ + RColor color; + char tmp[4]; + int value; + W_ColorPanel *panel = (W_ColorPanel*)observerData; + + value = atoi(WMGetTextFieldText(panel->grayBrightnessT)); + if (value > 100) + value = 100; + if (value < 0) + value = 0; + + sprintf(tmp, "%d", value); + WMSetTextFieldText(panel->grayBrightnessT, tmp); + WMSetSliderValue(panel->grayBrightnessS, value); + + color.red = color.green = color.blue = rint(255.0*value/100.0); + WMSetColorPanelColor(panel, color); + panel->lastChanged = WMGrayModeColorPanel; +} + +/******************* RGB Panel Functions *****************/ + +static void +rgbSliderCallback(WMWidget *w, void *data) +{ + RColor color; + int value[3]; + char tmp[4]; + + W_ColorPanel *panel = (W_ColorPanel*)data; + + value[0] = WMGetSliderValue(panel->rgbRedS); + value[1] = WMGetSliderValue(panel->rgbGreenS); + value[2] = WMGetSliderValue(panel->rgbBlueS); + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->rgbRedT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->rgbGreenT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->rgbBlueT, tmp); + + color.red = value[0]; + color.green = value[1]; + color.blue = value[2]; + + WMSetColorPanelColor(panel, color); + panel->lastChanged = WMRGBModeColorPanel; +} + +static void +rgbTextFieldCallback(void *observerData, WMNotification *notification) +{ + RColor color; + char tmp[4]; + int value[3]; + int n; + W_ColorPanel *panel = (W_ColorPanel*)observerData; + + value[0] = atoi(WMGetTextFieldText(panel->rgbRedT)); + value[1] = atoi(WMGetTextFieldText(panel->rgbGreenT)); + value[2] = atoi(WMGetTextFieldText(panel->rgbBlueT)); + + for (n=0; n < 3; n++) { + if (value[n] > 255) + value[n] = 255; + if (value[n] < 0) + value[n] = 0; + } + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->rgbRedT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->rgbGreenT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->rgbBlueT, tmp); + + WMSetSliderValue(panel->rgbRedS, value[0]); + WMSetSliderValue(panel->rgbGreenS, value[1]); + WMSetSliderValue(panel->rgbBlueS, value[2]); + + color.red = value[0]; + color.green = value[1]; + color.blue = value[2]; + + WMSetColorPanelColor(panel, color); + panel->lastChanged = WMRGBModeColorPanel; +} + + +/******************* CMYK Panel Functions *****************/ + +static void +cmykSliderCallback(WMWidget *w, void *data) +{ + RColor color; + int value[4]; + char tmp[4]; + + W_ColorPanel *panel = (W_ColorPanel*)data; + + value[0] = WMGetSliderValue(panel->cmykCyanS); + value[1] = WMGetSliderValue(panel->cmykMagentaS); + value[2] = WMGetSliderValue(panel->cmykYellowS); + value[3] = WMGetSliderValue(panel->cmykBlackS); + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->cmykCyanT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->cmykMagentaT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->cmykYellowT, tmp); + sprintf(tmp, "%d", value[3]); + WMSetTextFieldText(panel->cmykBlackT, tmp); + + color.red = rint((255.0 - (value[0] * 2.55)) * (1.0 - (value[3] / 100.0))); + color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3] / 100.0))); + color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] / 100.0))); + + WMSetColorPanelColor(panel, color); + panel->lastChanged = WMCMYKModeColorPanel; +} + +static void +cmykTextFieldCallback(void *observerData, WMNotification *notification) +{ + RColor color; + char tmp[4]; + int value[4]; + int n; + W_ColorPanel *panel = (W_ColorPanel*)observerData; + + value[0] = atoi(WMGetTextFieldText(panel->cmykCyanT)); + value[1] = atoi(WMGetTextFieldText(panel->cmykMagentaT)); + value[2] = atoi(WMGetTextFieldText(panel->cmykYellowT)); + value[3] = atoi(WMGetTextFieldText(panel->cmykBlackT)); + + for (n=0; n < 4; n++) { + if (value[n] > 100) + value[n] = 100; + if (value[n] < 0) + value[n] = 0; + } + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->cmykCyanT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->cmykMagentaT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->cmykYellowT, tmp); + sprintf(tmp, "%d", value[3]); + WMSetTextFieldText(panel->cmykBlackT, tmp); + + WMSetSliderValue(panel->cmykCyanS, value[0]); + WMSetSliderValue(panel->cmykMagentaS, value[1]); + WMSetSliderValue(panel->cmykYellowS, value[2]); + WMSetSliderValue(panel->cmykBlackS, value[3]); + + color.red = rint((255.0 - (value[0] * 2.55)) * (1.0 - (value[3] / 100.0))); + color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3] / 100.0))); + color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] / 100.0))); + + WMSetColorPanelColor(panel, color); + panel->lastChanged = WMCMYKModeColorPanel; +} + +/********************** HSB Panel Functions ***********************/ + +static void +hsbSliderCallback(WMWidget *w, void *data) +{ + RColor color; + int value[3]; + char tmp[4]; + + W_ColorPanel *panel = (W_ColorPanel*)data; + + value[0] = WMGetSliderValue(panel->hsbHueS); + value[1] = WMGetSliderValue(panel->hsbSaturationS); + value[2] = WMGetSliderValue(panel->hsbBrightnessS); + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->hsbHueT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->hsbSaturationT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->hsbBrightnessT, tmp); + + panel->hsvcolor.hue = value[0]; + panel->hsvcolor.saturation = value[1]*2.55; + panel->hsvcolor.value = value[2]*2.55; + + RHSVtoRGB(&panel->hsvcolor, &color); + + panel->lastChanged = WMHSBModeColorPanel; + WMSetColorPanelColor(panel, color); + + if (w != panel->hsbBrightnessS) + hsbUpdateBrightnessGradient(panel); + if (w != panel->hsbSaturationS) + hsbUpdateSaturationGradient(panel); + if (w != panel->hsbHueS) + hsbUpdateHueGradient(panel); +} + +static void +hsbTextFieldCallback(void *observerData, WMNotification *notification) +{ + RColor color; + char tmp[4]; + int value[3]; + int n; + W_ColorPanel *panel = (W_ColorPanel*)observerData; + + value[0] = atoi(WMGetTextFieldText(panel->hsbHueT)); + value[1] = atoi(WMGetTextFieldText(panel->hsbSaturationT)); + value[2] = atoi(WMGetTextFieldText(panel->hsbBrightnessT)); + + if (value[0] > 359) + value[0] = 359; + if (value[0] < 0) + value[0] = 0; + + for (n=1; n < 3; n++) { + if (value[n] > 100) + value[n] = 100; + if (value[n] < 0) + value[n] = 0; + } + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->hsbHueT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->hsbSaturationT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->hsbBrightnessT, tmp); + + WMSetSliderValue(panel->hsbHueS, value[0]); + WMSetSliderValue(panel->hsbSaturationS, value[1]); + WMSetSliderValue(panel->hsbBrightnessS, value[2]); + + panel->hsvcolor.hue = value[0]; + panel->hsvcolor.saturation = value[1]*2.55; + panel->hsvcolor.value = value[2]*2.55; + + RHSVtoRGB(&panel->hsvcolor, &color); + + panel->lastChanged = WMHSBModeColorPanel; + WMSetColorPanelColor(panel, color); + + hsbUpdateBrightnessGradient(panel); + hsbUpdateSaturationGradient(panel); + hsbUpdateHueGradient(panel); +} + +static void +hsbUpdateBrightnessGradient(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + RColor from; + RColor to; + RHSVColor hsvcolor; + RImage *sliderImg; + WMPixmap *sliderPxmp; + + from.red = from.green = from.blue = 0; + hsvcolor = panel->hsvcolor; + hsvcolor.value = 255; + + RHSVtoRGB(&hsvcolor, &to); + + sliderImg = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); + RDestroyImage(sliderImg); + W_PaintText(W_VIEW(panel->hsbBrightnessS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->white), False, "Brightness", strlen("Brightness")); + WMSetSliderImage(panel->hsbBrightnessS, sliderPxmp); + WMReleasePixmap(sliderPxmp); +} + +static void +hsbUpdateSaturationGradient(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + RColor from; + RColor to; + RHSVColor hsvcolor; + RImage *sliderImg; + WMPixmap *sliderPxmp; + + hsvcolor = panel->hsvcolor; + hsvcolor.saturation = 0; + RHSVtoRGB(&hsvcolor, &from); + + hsvcolor.saturation = 255; + RHSVtoRGB(&hsvcolor, &to); + + sliderImg = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); + sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); + RDestroyImage(sliderImg); + if (hsvcolor.value < 128) + W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->white), False, "Saturation", strlen("Saturation")); + else + W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->black), False, "Saturation", strlen("Saturation")); + + WMSetSliderImage(panel->hsbSaturationS, sliderPxmp); + WMReleasePixmap(sliderPxmp); +} + +static void +hsbUpdateHueGradient(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + RColor **colors = NULL; + RHSVColor hsvcolor; + RImage *sliderImg; + WMPixmap *sliderPxmp; + int i; + + hsvcolor = panel->hsvcolor; + + colors = malloc(sizeof(RColor*)*(8)); + for (i=0; i<7; i++) { + hsvcolor.hue = (360*i)/6; + colors[i] = malloc(sizeof(RColor)); + RHSVtoRGB(&hsvcolor, colors[i]); + } + colors[7] = NULL; + + sliderImg = RRenderMultiGradient(141, 16, colors, RGRD_HORIZONTAL); + sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); + RDestroyImage(sliderImg); + if (hsvcolor.value < 128) + W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->white), False, "Hue", strlen("Hue")); + else + W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->black), False, "Hue", strlen("Hue")); + + WMSetSliderImage(panel->hsbHueS, sliderPxmp); + WMReleasePixmap(sliderPxmp); + + for (i=0; i<7; i++) { + if (colors[i]) + free(colors[i]); + } + if (colors) + free(colors); +} + +/*************** Custom Palette Functions ****************/ + +static void +customRenderSpectrum(W_ColorPanel *panel) +{ + RImage *spectrum; + int hue, sat, val; + int x,y; + unsigned long ofs; + unsigned char *rp, *gp, *bp; + RColor color; + RHSVColor cur_hsv; + + spectrum = RCreateImage(SPECTRUM_WIDTH, SPECTRUM_HEIGHT, 0); + + for (y=0; y<360; y++) { + val = 255; + sat = 0; + hue = y; + for (x=0; x<511; x++) { + ofs = (y * 511) + x; + + cur_hsv.hue = hue; + cur_hsv.saturation = sat; + cur_hsv.value = val; + + RHSVtoRGB (&cur_hsv, &color); + + rp = spectrum->data[0] + ofs; + gp = spectrum->data[1] + ofs; + bp = spectrum->data[2] + ofs; + + *rp = (unsigned char)color.red; + *gp = (unsigned char)color.green; + *bp = (unsigned char)color.blue; + + if (x<255) + sat++; + + if (x>255) + val--; + } + } + if (panel->customPaletteImg) { + RDestroyImage(panel->customPaletteImg); + panel->customPaletteImg = NULL; + } + panel->customPaletteImg = spectrum; +} + + + +static void +customSetPalette(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + RImage *scaledImg; + Pixmap image; + int item; + + image = XCreatePixmap(scr->display, W_DRAWABLE(scr), customPaletteWidth, customPaletteHeight, scr->depth); + + scaledImg = RScaleImage(panel->customPaletteImg, customPaletteWidth, customPaletteHeight); + RConvertImage(scr->rcontext, scaledImg, &image); + RDestroyImage(scaledImg); + + XCopyArea(scr->display, image, panel->customPaletteContentView->window, scr->copyGC, 0, 0, customPaletteWidth, customPaletteHeight, 0, 0); + + /* Check backimage existence. If it doesn't exist, allocate it and fill it */ + if (!panel->selectionBackImg) { + panel->selectionBackImg = XCreatePixmap(scr->display, panel->customPaletteContentView->window, 4, 4, scr->depth); + } + + XCopyArea(scr->display, image, panel->selectionBackImg, scr->copyGC, panel->palx-2, panel->paly-2, 4, 4, 0, 0); + XCopyArea(scr->display, panel->selectionImg, panel->customPaletteContentView->window, scr->copyGC, 0 , 0, 4, 4, panel->palx-2, panel->paly-2); + XFreePixmap(scr->display, image); + + panel->palXRatio = (float)(panel->customPaletteImg->width) / (float)(customPaletteWidth); + panel->palYRatio = (float)(panel->customPaletteImg->height) / (float)(customPaletteHeight); + + item = WMGetPopUpButtonSelectedItem (panel->customPaletteHistoryBtn); + + /* if palette != "Spectrum", we are allowed to rename and remove it */ + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, menuRename, (item > 0) ); + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, menuRemove, (item > 0) ); +} + + +static void +customPalettePositionSelection(W_ColorPanel *panel, int x, int y) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + unsigned long ofs; + + + /* undraw selection */ + XCopyArea(scr->display, panel->selectionBackImg, panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, panel->palx-2, panel->paly-2); + + panel->palx = x; + panel->paly = y; + + ofs = rint(x * panel->palXRatio) + rint(y * panel->palYRatio) * panel->customPaletteImg->width; + + panel->color.red = panel->customPaletteImg->data[0][ofs]; + panel->color.green = panel->customPaletteImg->data[1][ofs]; + panel->color.blue = panel->customPaletteImg->data[2][ofs]; + + WMSetColorPanelColor(panel, panel->color); + panel->lastChanged = WMCustomPaletteModeColorPanel; + + /* Redraw color selector (and make a backup of the part it will cover) */ + XCopyArea(scr->display, panel->customPaletteContentView->window, panel->selectionBackImg, scr->copyGC, panel->palx-2, panel->paly-2, 4, 4, 0, 0); /* "-2" is correction for hotspot location */ + XCopyArea(scr->display, panel->selectionImg, panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, panel->palx-2, panel->paly-2); /* see above */ +} + + +static void +customPalettePositionSelectionOutBounds(W_ColorPanel *panel, int x, int y) +{ + if (x < 2) + x = 2; + if (y < 2) + y = 2; + if (x >= customPaletteWidth) + x = customPaletteWidth -2; + if (y >= customPaletteHeight) + y = customPaletteHeight -2; + + customPalettePositionSelection(panel, x, y); +} + + +static void +customPaletteHandleEvents(XEvent *event, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)data; + + switch (event->type) { + case Expose: + if (event->xexpose.count != 0) + break; + customSetPalette(panel); + break; + } +} + +static void +customPaletteHandleActionEvents(XEvent *event, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)data; + int x, y; + + switch (event->type) { + case ButtonPress: + x = event->xbutton.x; + y = event->xbutton.y; + + if (getPickerPart(panel, x, y) == CUSTOMPALETTE_PART) { + panel->flags.dragging = 1; + customPalettePositionSelection(panel, x, y); + } + break; + + case ButtonRelease: + panel->flags.dragging = 0; + break; + + case MotionNotify: + x = event->xmotion.x; + y = event->xmotion.y; + + if (panel->flags.dragging) { + if (getPickerPart(panel, x, y) == CUSTOMPALETTE_PART) { + customPalettePositionSelection(panel, x, y); + } + else + customPalettePositionSelectionOutBounds(panel, x, y); + } + break; + } +} + + +static void +customPaletteMenuCallback(WMWidget *w, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)data; + int item; + + item = WMGetPopUpButtonSelectedItem(panel->customPaletteMenuBtn); + + switch (item) { + case menuNewFromFile: + customPaletteMenuNewFromFile(panel); + break; + case menuRename: + customPaletteMenuRename(panel); + break; + case menuRemove: + customPaletteMenuRemove(panel); + break; + case menuCopy: + break; + case menuNewFromClipboard: + break; + } +} + + +static void +customPaletteMenuNewFromFile(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + WMOpenPanel *browseP; + char *filepath; + char *filename = NULL; + char *spath; + char *tmp; + int i; + RImage *tmpImg = NULL; + + if ((!panel->lastBrowseDir) || (strcmp(panel->lastBrowseDir,"\0") == 0)) + spath = wexpandpath(wgethomedir()); + else + spath = wexpandpath(panel->lastBrowseDir); + + browseP = WMGetOpenPanel(scr); + WMSetFilePanelCanChooseDirectories(browseP, 0); + WMSetFilePanelCanChooseFiles(browseP, 1); + + /* Get a filename */ + if (WMRunModalFilePanelForDirectory(browseP, panel->win, spath, + "Open Palette", + RSupportedFileFormats())) { + filepath = WMGetFilePanelFileName(browseP); + + /* Get seperation position between path and filename */ + i = strrchr(filepath, '/') - filepath + 1; + if (i > strlen(filepath)) + i = strlen(filepath); + + /* Store last browsed path */ + if (panel->lastBrowseDir) + free(panel->lastBrowseDir); + panel->lastBrowseDir = wmalloc((i+1)*sizeof(char)); + strncpy(panel->lastBrowseDir, filepath, i); + panel->lastBrowseDir[i] = '\0'; + + /* Get filename from path */ + filename = wstrdup(filepath + i); + + /* Check for duplicate files, and rename it if there are any */ + tmp = wstrappend(panel->configurationPath, filename); + while (access(tmp, F_OK) == 0) { + char *newName; + + free(tmp); + + newName = generateNewFilename(filename); + free(filename); + filename = newName; + + tmp = wstrappend(panel->configurationPath, filename); + } + free(tmp); + + /* Copy the image to $(gnustepdir)/Library/Colors/ & Add the filename to the history menu */ + if (!fetchImageFile (panel->configurationPath, filepath, filename)) { /* error = -1 */ + + /* filepath is a "local" path now the file has been copied */ + free(filepath); + filepath = wstrappend(panel->configurationPath, filename); + + /* load the image & add menu entries */ + tmpImg = RLoadImage(scr->rcontext, filepath, 0); + if (tmpImg) { + if (panel->customPaletteImg) + RDestroyImage(panel->customPaletteImg); + panel->customPaletteImg = tmpImg; + + customSetPalette(panel); + WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, filename); + + panel->currentPalette = + WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1; + + WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, + panel->currentPalette); + } + } else { + tmp = wstrappend(panel->configurationPath, filename); + + i = remove(tmp); /* Delete the file, it doesn't belong here */ + WMRunAlertPanel(scr, panel->win, "File Error", "Invalid file format !", "OK", NULL, NULL); + if (i != 0) { + wsyserror("can't remove file %s", tmp); + WMRunAlertPanel(scr, panel->win, "File Error", "Couldn't remove file from Configuration Directory !", "OK", NULL, NULL); + } + + free(tmp); + } + free(filepath); + free(filename); + } + WMFreeFilePanel(browseP); + + free(spath); +} + + +static void +customPaletteMenuRename(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + char *toName = NULL; + char *fromName; + char *toPath, *fromPath; + int item; + int index; + + item = WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); + fromName = WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item); + + toName = WMRunInputPanel(scr, panel->win, "Rename", "Rename palette to:", + fromName, "OK", "Cancel"); + + if (toName) { + + /* As some people do certain stupid things... */ + if (strcmp(toName, fromName) == 0) { + free(toName); + return; + } + + /* For normal people */ + fromPath = wstrappend(panel->configurationPath, fromName); + toPath = wstrappend(panel->configurationPath, toName); + + if (access (toPath, F_OK) == 0) { /* Careful, this palette exists already */ + if (WMRunAlertPanel(scr, panel->win, "Warning", + "Palette already exists !\n\nOverwrite ?", "No", "Yes", NULL) == 1) { + /* "No" = 0, "Yes" = 1 */ + int items = WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn); + + remove(toPath); + + /* Remove from History list too */ + index = 1; + while ((index < items) && + (strcmp(WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, index), toName) != 0 )) + index++; + + if (index < items) { + WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, index); + if (index < item) + item--; + } + + } else { + free(fromPath); + free(toName); + free(toPath); + + return; + } + } + + if ( rename(fromPath, toPath) != 0) + wsyserror("Couldn't rename palette %s to %s\n", fromName, toName); + else { + WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); + WMInsertPopUpButtonItem(panel->customPaletteHistoryBtn, item, toName); + + WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item); + } + free(fromPath); + free(toPath); + free(toName); + } +} + + +static void +customPaletteMenuRemove(W_ColorPanel *panel) +{ + W_Screen *scr = WMWidgetScreen(panel->win); + char *text; + char *tmp; + int choice; + int item; + + item = WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); + + tmp = wstrappend( "This will permanently remove the palette ", + WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item )); + text = wstrappend( tmp, ".\n\nAre you sure you want to remove this palette ?"); + free(tmp); + + choice = WMRunAlertPanel(scr, panel->win, NULL, text, "Yes", "No", NULL); + /* returns 0 (= "Yes") or 1 (="No") */ + free(text); + + if (choice == 0) { + + tmp = wstrappend(panel->configurationPath, + WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item )); + + if ( remove(tmp) != 0) + wsyserror("Couldn't remove palette %s\n", tmp); + free(tmp); + + WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item-1); /* item -1 always exists */ + customPaletteHistoryCallback(panel->customPaletteHistoryBtn, panel); + customSetPalette(panel); + + WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); + } +} + + +static void +customPaletteHistoryCallback(WMWidget *w, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)data; + W_Screen *scr = WMWidgetScreen(panel->win); + int item; + char *filename; + RImage *tmp = NULL; + + item = WMGetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn); + if (item == panel->currentPalette) + return; + + if (item == 0) + customRenderSpectrum(panel); + else { + /* Load file from configpath */ + filename = wstrappend( panel->configurationPath, WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item) ); + + /* XXX To do: Check existence of file and remove it from the history if it doesn't exist */ + + tmp = RLoadImage(scr->rcontext, filename, 0); + if (tmp) { + if (panel->customPaletteImg) { + RDestroyImage(panel->customPaletteImg); + panel->customPaletteImg = NULL; + } + panel->customPaletteImg = tmp; + } + free(filename); + } + customSetPalette(panel); + + panel->currentPalette = item; +} + + +/*************** Panel Initialisation Functions *****************/ + +static void +wheelInit(W_ColorPanel *panel) +{ + RHSVColor cur_hsv; + float W_PI = 4 * atan(1); + int i; + int v; + + RRGBtoHSV(&panel->color, &cur_hsv); + + WMSetSliderValue(panel->wheelBrightnessS, 255-cur_hsv.value); + wheelUpdateBrightnessGradientFromHSV(panel, cur_hsv); + + panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + (cur_hsv.saturation/255.0) * cos( cur_hsv.hue*W_PI/180.0))); + panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + (cur_hsv.saturation/255.0) * sin(-cur_hsv.hue*W_PI/180.0))); + + for (i = 0; i < 256; i++) { + /* We divide by 128 in advance, and check whether that number divides + * by 2 properly. If not, we add one to round the number correctly + */ + v = (i*cur_hsv.value) >> 7; + panel->wheelMtrx->values[i] = (unsigned char)((v >> 1) + (v & 1)); + } +} + +static void +grayInit(W_ColorPanel *panel) +{ + RHSVColor cur_hsv; + int value; + char tmp[4]; + + RRGBtoHSV(&panel->color, &cur_hsv); + + value = rint(cur_hsv.value/2.55); + WMSetSliderValue(panel->grayBrightnessS, value); + + sprintf(tmp, "%d", value); + WMSetTextFieldText(panel->grayBrightnessT, tmp); +} + +static void +rgbInit(W_ColorPanel *panel) +{ + char tmp[4]; + + WMSetSliderValue(panel->rgbRedS,panel->color.red); + WMSetSliderValue(panel->rgbGreenS,panel->color.green); + WMSetSliderValue(panel->rgbBlueS,panel->color.blue); + + sprintf(tmp, "%d", panel->color.red); + WMSetTextFieldText(panel->rgbRedT, tmp); + sprintf(tmp, "%d", panel->color.green); + WMSetTextFieldText(panel->rgbGreenT, tmp); + sprintf(tmp, "%d", panel->color.blue); + WMSetTextFieldText(panel->rgbBlueT, tmp); +} + +static void +cmykInit(W_ColorPanel *panel) +{ + int value[3]; + char tmp[4]; + + value[0] = rint((255-panel->color.red)/2.55); + value[1] = rint((255-panel->color.green)/2.55); + value[2] = rint((255-panel->color.blue)/2.55); + + WMSetSliderValue(panel->cmykCyanS, value[0]); + WMSetSliderValue(panel->cmykMagentaS, value[1]); + WMSetSliderValue(panel->cmykYellowS, value[2]); + WMSetSliderValue(panel->cmykBlackS, 0); + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->cmykCyanT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->cmykMagentaT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->cmykYellowT, tmp); + WMSetTextFieldText(panel->cmykBlackT, "0"); +} + +static void +hsbInit(W_ColorPanel *panel) +{ + int value[3]; + char tmp[4]; + + value[0] = panel->hsvcolor.hue; + value[1] = rint(panel->hsvcolor.saturation/2.55); + value[2] = rint(panel->hsvcolor.value/2.55); + + WMSetSliderValue(panel->hsbHueS,value[0]); + WMSetSliderValue(panel->hsbSaturationS,value[1]); + WMSetSliderValue(panel->hsbBrightnessS,value[2]); + + sprintf(tmp, "%d", value[0]); + WMSetTextFieldText(panel->hsbHueT, tmp); + sprintf(tmp, "%d", value[1]); + WMSetTextFieldText(panel->hsbSaturationT, tmp); + sprintf(tmp, "%d", value[2]); + WMSetTextFieldText(panel->hsbBrightnessT, tmp); + + hsbUpdateBrightnessGradient(panel); + hsbUpdateSaturationGradient(panel); + hsbUpdateHueGradient(panel); +} + + + + +/************************* ColorList Panel Functions **********************/ + +static void +colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect) +{ + int width, height, x, y; + RColor color = *((RColor *)WMGetListItem(lPtr, index)->clientData); + WMScreen *scr = WMWidgetScreen(lPtr); + Display *dpy = WMScreenDisplay(scr); + RImage *image; + WMPixmap *pixmap; + int i, j; + W_ColorPanel *panel = WMGetHangedData(lPtr); + WMColor *white = WMWhiteColor(scr); + WMColor *black = WMBlackColor(scr); + + width = rect->size.width; + height = rect->size.height; + x = rect->pos.x; + y = rect->pos.y; + + if (state & WLDSSelected) + XFillRectangle(dpy, d, WMColorGC(white), x, y, width, height); + else + XClearArea(dpy, d, x, y, width, height, False); + + image = RCreateImage(15, 15, False); + for (i=0; i < 15 ; i++) { + for (j=0; j < 15; j++) { + image->data[0][j*15+i] = color.red; + image->data[1][j*15+i] = color.green; + image->data[2][j*15+i] = color.blue; + } + } + + pixmap = WMCreatePixmapFromRImage(scr, image, 0); + RDestroyImage(image); + WMDrawPixmap(pixmap, d, x, y); + WMReleasePixmap(pixmap); + WMDrawString(scr, d, WMColorGC(black), panel->font12, x+18, y, text, + strlen(text)); + + WMReleaseColor(white); + WMReleaseColor(black); +} + + +static void +colorListSelect(WMWidget *w, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel *)data; + RColor color = *((RColor *)WMGetListSelectedItem(w)->clientData); + + panel->lastChanged = WMColorListModeColorPanel; + WMSetColorPanelColor(panel, color); +} + + + + +/************************** Common utility functions ************************/ + +static int +fetchImageFile(char *toPath, char *imageSrcFile, char *imageDestFile) +{ + int src, dest; + int n; + char *tmp; + char buf[BUFSIZE]; + + if ((src = open(imageSrcFile, O_RDONLY)) < 0) { + wsyserror("Could not open %s", imageSrcFile); + return -1; + } + + tmp = wstrappend(toPath, imageDestFile); + if ((dest = open( tmp, O_RDWR|O_CREAT, S_IRWXU|S_IRGRP|S_IROTH)) < 0) { + wsyserror("Could not create %s", tmp); + free(tmp); + return -1; + } + free(tmp); + + + /* Copy the file */ + while ((n = read(src, buf, BUFSIZE)) > 0) + { + if (write(dest, buf, n) != n) { + wsyserror("Write error on file %s", imageDestFile); + return -1; + } + } + + return 0; +} + + + +char* +generateNewFilename(char *curName) +{ +#if 1 + int n; + int baseLen; + char *ptr; + char *newName; + + ptr = strrchr(curName, '{'); + if (!ptr || sscanf(ptr, "{%i}", &n)!=1) { + return wstrappend(curName, " {1}"); + } + + baseLen = ptr - curName; + + newName = wmalloc(baseLen + 16); + strncpy(newName, curName, baseLen); + newName[baseLen] = 0; + + sprintf(&newName[baseLen], " {%i}", n+1); + + return newName; +#else + char *newName; + char *numStart, *numEnd; + char *pre, *num, *post; + int n, numLength; + char *tmp; + + newName = wstrdup(curName); + + if (newName == NULL) + return wstrdup("Unnamed"); + + /* + * Modify the name to contain a number to make it unique + */ + + /* Get number-string from filename. */ + numStart = strrchr(newName, '-'); + if (numStart) { + if (strlen(numStart) > 1) + numStart++; /* Next character, please */ + + + numEnd = strrchr(numStart, '-'); /* Already past "numbers" */ + + if (numEnd) { + /* Now it gets interesting */ + + pre = wmalloc((numStart - newName +1) * sizeof(char)); /* a trailing '\0' is useful here */ + strncpy (pre, newName, numStart-newName); + pre[numStart - newName] = '\0'; + + num = wmalloc((numEnd - numStart +1) * sizeof(char)); + strncpy (num, numStart, numEnd-numStart); + num[numEnd - numStart] = '\0'; + + post = wstrdup( numEnd); + + free(newName); /* We don't need it anymore */ + + if (strcspn(num, "0123456789") == 0) { + n = (int)strtol(num, NULL, 10); + + /* Increase number between brackets (in filename); This is what it all is about */ + n++; + + free(num); + num = wmalloc(3 * sizeof(char)); /* Nobody uses more than 999 duplicate filenames, do you ? */ + numLength = sprintf(num, "%d", n); + + free(num); + num = wmalloc(numLength * sizeof(char)); + sprintf(num, "%d", n); + + tmp = wstrappend (num, post); + newName = wstrappend (pre, tmp); + + free(pre); + free(num); + free(post); + free(tmp); + } + } + } + + if (strcmp( curName, newName) == 0) { + /* The name is still unchanged, so there was no number (between brackets) in it. + Add a number 1 to the end. + */ + tmp = wstrdup(newName); + if (newName) + free(newName); + newName = wstrappend(tmp, " -1-"); + free(tmp); + } + + return newName; +#endif +} + diff --git a/WINGs/wevent.c b/WINGs/wevent.c index 8f4f3a68..e38cf551 100644 --- a/WINGs/wevent.c +++ b/WINGs/wevent.c @@ -328,8 +328,10 @@ checkIdleHandlers() { IdleHandler *handler, *tmp; - if (!idleHandler) - return; + if (!idleHandler) { + W_FlushIdleNotificationQueue(); + return; + } handler = idleHandler; @@ -344,6 +346,7 @@ checkIdleHandlers() handler = tmp; } + W_FlushIdleNotificationQueue(); } @@ -353,7 +356,7 @@ checkTimerHandlers() { TimerHandler *handler; struct timeval now; - + rightNow(&now); while (timerHandler && IS_AFTER(now, timerHandler->when)) { @@ -363,6 +366,8 @@ checkTimerHandlers() (*handler->callback)(handler->clientData); free(handler); } + + W_FlushASAPNotificationQueue(); } @@ -797,7 +802,9 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask) retval = fds[0].revents & (POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI); free(fds); - + + W_FlushASAPNotificationQueue(); + return retval; #else /* not HAVE_POLL */ #ifdef HAVE_SELECT @@ -882,7 +889,9 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask) handler = handler->next; } } - + + W_FlushASAPNotificationQueue(); + return FD_ISSET(ConnectionNumber(dpy), &rset); #else /* not HAVE_SELECT, not HAVE_POLL */ Neither select nor poll. You lose. @@ -890,6 +899,7 @@ Neither select nor poll. You lose. #endif /* HAVE_POLL */ } + void WMNextEvent(Display *dpy, XEvent *event) { diff --git a/WINGs/wfilepanel.c b/WINGs/wfilepanel.c index da99ef9b..4a445f85 100644 --- a/WINGs/wfilepanel.c +++ b/WINGs/wfilepanel.c @@ -1,7 +1,4 @@ - - - #include "WINGsP.h" #include @@ -47,15 +44,24 @@ typedef struct W_FilePanel { unsigned int showAllFiles:1; unsigned int canFreeFileTypes:1; unsigned int fileMustExist:1; + unsigned int panelType:1; + + /**/ + unsigned int ignoreTextChangeNotification:1; } flags; } W_FilePanel; +/* Type of panel */ +#define WP_OPEN 0 +#define WP_SAVE 1 + #define PWIDTH 320 #define PHEIGHT 360 static void listDirectoryOnColumn(WMFilePanel *panel, int column, char *path); static void browserClick(); +static void browserDClick(); static void fillColumn(WMBrowser *bPtr, int column); @@ -65,6 +71,7 @@ static void buttonClick(); static char *getCurrentFileName(WMFilePanel *panel); +static void handleEvents(XEvent *event, void *data); static int @@ -94,14 +101,24 @@ static void textChangedObserver(void *observerData, WMNotification *notification) { W_FilePanel *panel = (W_FilePanel*)observerData; - char *text, *text1; + char *text; WMList *list; int col = WMGetBrowserNumberOfColumns(panel->browser) - 1; int i, j, textEvent = (int)WMGetNotificationClientData(notification); + static int running = 0; + + if (running) + return; + + running = 1; + + if (panel->flags.ignoreTextChangeNotification) + return; list = WMGetBrowserListInColumn(panel->browser, col); if (!list) return; + text = WMGetTextFieldText(panel->fileField); if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent) @@ -110,45 +127,28 @@ textChangedObserver(void *observerData, WMNotification *notification) i = closestListItem(list, text, True); WMSelectListItem(list, i); - if (i>=0) { + if (i>=0 && panel->flags.autoCompletion) { WMListItem *item = WMGetListItem(list, i); int textLen = strlen(text), itemTextLen = strlen(item->text); - - WMSetListPosition(list, i); - - if (panel->flags.autoCompletion) { - /* Be careful with the '<' condition below. Changing it can drop - * you into an endless loop. We call here, inside a function - * called from a notification observer, to a function that - * generates notification events. So make sure we do not call it - * recursively for ever. - * '<' means we only update text field if it is really not yet - * complete. -Dan - */ - if (textLen < itemTextLen && textEvent!=WMDeleteTextEvent) { - WMRange range; - - WMInsertTextFieldText(panel->fileField, &item->text[textLen], - textLen); - WMSetTextFieldCursorPosition(panel->fileField, itemTextLen); - range.position = textLen; - range.count = itemTextLen - textLen; - WMSelectTextFieldRange(panel->fileField, range); - } - - text1 = WMGetTextFieldText(panel->fileField); - j = closestListItem(list, text1, True); - if (i != j) { - WMSelectListItem(list, j); - if (j>=0) { - WMSetListPosition(list, j); - } - } - free(text1); - } + int visibleItems = WMWidgetHeight(list)/WMGetListItemHeight(list); + + if (textEvent!=WMSetTextEvent || textLenfileField, &item->text[textLen], + textLen); + WMSetTextFieldCursorPosition(panel->fileField, itemTextLen); + range.position = textLen; + range.count = itemTextLen - textLen; + WMSelectTextFieldRange(panel->fileField, range); + } } free(text); + running = 0; } @@ -178,6 +178,11 @@ makeFilePanel(WMScreen *scrPtr, char *name, char *title) WMResizeWidget(fPtr->win, PWIDTH, PHEIGHT); WMSetWindowTitle(fPtr->win, ""); + WMCreateEventHandler(WMWidgetView(fPtr->win), StructureNotifyMask, + handleEvents, fPtr); + WMSetWindowMinSize(fPtr->win, PWIDTH, PHEIGHT); + + fPtr->iconLabel = WMCreateLabel(fPtr->win); WMResizeWidget(fPtr->iconLabel, 64, 64); WMMoveWidget(fPtr->iconLabel, 0, 0); @@ -200,6 +205,7 @@ makeFilePanel(WMScreen *scrPtr, char *name, char *title) fPtr->browser = WMCreateBrowser(fPtr->win); WMSetBrowserFillColumnProc(fPtr->browser, fillColumn); WMSetBrowserAction(fPtr->browser, browserClick, fPtr); + WMSetBrowserDoubleAction(fPtr->browser, browserDClick, fPtr); WMMoveWidget(fPtr->browser, 7, 72); WMHangData(fPtr->browser, fPtr); @@ -238,12 +244,15 @@ makeFilePanel(WMScreen *scrPtr, char *name, char *title) WMResizeWidget(fPtr->homeButton, 28, 28); WMSetButtonImagePosition(fPtr->homeButton, WIPImageOnly); WMSetButtonImage(fPtr->homeButton, scrPtr->homeIcon); - WMSetButtonAltImage(fPtr->homeButton, scrPtr->homeAltIcon); + WMSetButtonAltImage(fPtr->homeButton, scrPtr->altHomeIcon); WMSetButtonAction(fPtr->homeButton, goHome, fPtr); WMRealizeWidget(fPtr->win); WMMapSubwidgets(fPtr->win); + WMSetFocusToWidget(fPtr->fileField); + WMSetTextFieldCursorPosition(fPtr->fileField, 0); + WMLoadBrowserColumnZero(fPtr->browser); fPtr->flags.canChooseFiles = 1; @@ -264,6 +273,7 @@ WMGetOpenPanel(WMScreen *scrPtr) panel = makeFilePanel(scrPtr, "openFilePanel", "Open"); panel->flags.fileMustExist = 1; + panel->flags.panelType = WP_OPEN; scrPtr->sharedOpenPanel = panel; @@ -281,6 +291,7 @@ WMGetSavePanel(WMScreen *scrPtr) panel = makeFilePanel(scrPtr, "saveFilePanel", "Save"); panel->flags.fileMustExist = 0; + panel->flags.panelType = WP_SAVE; scrPtr->sharedSavePanel = panel; @@ -305,20 +316,40 @@ WMFreeFilePanel(WMFilePanel *panel) int -WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner, - char *path, char *name) +WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner, + char *path, char *name, char **fileTypes) { WMScreen *scr = WMWidgetScreen(panel->win); XEvent event; WMChangePanelOwner(panel->win, owner); + if (name && !owner) { + WMSetWindowTitle(panel->win, name); + } + WMSetFilePanelDirectory(panel, path); panel->flags.done = 0; - panel->fileTypes = NULL; + switch(panel->flags.panelType) { + case WP_OPEN: + if (fileTypes) + panel->flags.filtered = 1; + panel->fileTypes = fileTypes; + if (name == NULL) + name = "Open"; + break; + case WP_SAVE: + panel->fileTypes = NULL; + panel->flags.filtered = 0; + if (name == NULL) + name = "Save"; + break; + default: + break; + } - panel->flags.filtered = 0; + WMSetLabelText(panel->titleLabel, name); WMMapWidget(panel->win); @@ -337,35 +368,6 @@ WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner, -int -WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner, - char *path, char *name, char **fileTypes) -{ - WMScreen *scr = WMWidgetScreen(panel->win); - XEvent event; - - WMChangePanelOwner(panel->win, owner); - - WMSetFilePanelDirectory(panel, path); - - panel->flags.done = 0; - - if (fileTypes) - panel->flags.filtered = 1; - panel->fileTypes = fileTypes; - - WMMapWidget(panel->win); - - while (!panel->flags.done) { - WMNextEvent(scr->display, &event); - WMHandleEvent(&event); - } - - WMCloseWindow(panel->win); - - return (panel->flags.canceled ? False : True); -} - void WMSetFilePanelDirectory(WMFilePanel *panel, char *path) @@ -373,18 +375,22 @@ WMSetFilePanelDirectory(WMFilePanel *panel, char *path) WMList *list; WMListItem *item; int col; - - WMSetBrowserPath(panel->browser, path); - col = WMGetBrowserNumberOfColumns(panel->browser) - 1; + char *rest; + + rest = WMSetBrowserPath(panel->browser, path); + if (strcmp(path, "/")==0) + rest = NULL; + + col = WMGetBrowserSelectedColumn(panel->browser); list = WMGetBrowserListInColumn(panel->browser, col); if (list && (item = WMGetListSelectedItem(list))) { - if (item->isBranch) { - WMSetTextFieldText(panel->fileField, NULL); - } else { - WMSetTextFieldText(panel->fileField, item->text); - } + if (item->isBranch) { + WMSetTextFieldText(panel->fileField, rest); + } else { + WMSetTextFieldText(panel->fileField, item->text); + } } else { - WMSetTextFieldText(panel->fileField, path); + WMSetTextFieldText(panel->fileField, rest); } } @@ -425,7 +431,7 @@ WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view) v = WMWidgetView(panel->win); - W_ReparentView(view, v); + W_ReparentView(view, v, 0, 0); W_MoveView(view, (v->size.width - v->size.width)/2, 300); } @@ -541,18 +547,27 @@ fillColumn(WMBrowser *bPtr, int column) } +static void +browserDClick(WMBrowser *bPtr, WMFilePanel *panel) +{ + WMPerformButtonClick(panel->okButton); +} static void browserClick(WMBrowser *bPtr, WMFilePanel *panel) { int col = WMGetBrowserSelectedColumn(bPtr); WMListItem *item = WMGetBrowserSelectedItemInColumn(bPtr, col); - + + panel->flags.ignoreTextChangeNotification = 1; + if (!item || item->isBranch) WMSetTextFieldText(panel->fileField, NULL); else { WMSetTextFieldText(panel->fileField, item->text); } + + panel->flags.ignoreTextChangeNotification = 0; } @@ -570,6 +585,39 @@ goHome(WMButton *bPtr, WMFilePanel *panel) } +static void +handleEvents(XEvent *event, void *data) +{ + W_FilePanel *pPtr = (W_FilePanel*)data; + W_View *view = WMWidgetView(pPtr->win); + + if (event->type == ConfigureNotify) { + if (event->xconfigure.width != view->size.width + || event->xconfigure.height != view->size.height) { + unsigned int newWidth = event->xconfigure.width; + unsigned int newHeight = event->xconfigure.height; + int newColumnCount; + + W_ResizeView(view, newWidth, newHeight); + WMResizeWidget(pPtr->line, newWidth, 2); + WMResizeWidget(pPtr->browser, newWidth-14, + newHeight-(PHEIGHT-200)); + WMResizeWidget(pPtr->fileField, newWidth-60-10, 24); + WMMoveWidget(pPtr->nameLabel, 7, newHeight-(PHEIGHT-282)); + WMMoveWidget(pPtr->fileField, 60, newHeight-(PHEIGHT-278)); + WMMoveWidget(pPtr->okButton, newWidth-(PWIDTH-230), + newHeight-(PHEIGHT-325)); + WMMoveWidget(pPtr->cancelButton, newWidth-(PWIDTH-140), + newHeight-(PHEIGHT-325)); + WMMoveWidget(pPtr->homeButton, 55, newHeight-(PHEIGHT-325)); + + newColumnCount = (newWidth - 14) / 140; + WMSetBrowserMaxVisibleColumns(pPtr->browser, newColumnCount); + } + } +} + + static char* getCurrentFileName(WMFilePanel *panel) { @@ -604,23 +652,30 @@ static Bool validOpenFile(WMFilePanel *panel) { WMListItem *item; - int col; + int col, haveFile = 0; + char *file = WMGetTextFieldText(panel->fileField); - /*col = WMGetBrowserSelectedColumn(panel->browser);*/ - col = WMGetBrowserNumberOfColumns(panel->browser) - 1; + if (file[0] != '\0') + haveFile = 1; + free(file); + + col = WMGetBrowserSelectedColumn(panel->browser); item = WMGetBrowserSelectedItemInColumn(panel->browser, col); if (item) { - if (item->isBranch && !panel->flags.canChooseDirectories) + if (item->isBranch && !panel->flags.canChooseDirectories && !haveFile) return False; else if (!item->isBranch && !panel->flags.canChooseFiles) return False; else return True; + } else { + /* we compute for / here */ + if (!panel->flags.canChooseDirectories && !haveFile) + return False; + else + return True; } - if (!panel->flags.canChooseDirectories) - return False; - else - return True; + return True; } @@ -628,11 +683,13 @@ validOpenFile(WMFilePanel *panel) static void buttonClick(WMButton *bPtr, WMFilePanel *panel) { + WMRange range; + if (bPtr == panel->okButton) { + if (!validOpenFile(panel)) + return; if (panel->flags.fileMustExist) { char *file; - if (!validOpenFile(panel)) - return; file = getCurrentFileName(panel); if (access(file, F_OK)!=0) { @@ -648,6 +705,8 @@ buttonClick(WMButton *bPtr, WMFilePanel *panel) } else panel->flags.canceled = 1; + range.count = range.position = 0; + WMSelectTextFieldRange(panel->fileField, range); panel->flags.done = 1; } diff --git a/WINGs/wfont.c b/WINGs/wfont.c index 7671f42e..91c9feb7 100644 --- a/WINGs/wfont.c +++ b/WINGs/wfont.c @@ -141,6 +141,9 @@ WMSystemFontOfSize(WMScreen *scrPtr, int size) wwarning("could not load font set %s. Trying fixed.", fontSpec); font = WMCreateFont(scrPtr, "fixed"); if (!font) { + font = WMCreateFont(scrPtr, "-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*"); + } + if (!font) { wwarning("could not load fixed font!"); free(fontSpec); return NULL; @@ -166,6 +169,9 @@ WMBoldSystemFontOfSize(WMScreen *scrPtr, int size) wwarning("could not load font set %s. Trying fixed.", fontSpec); font = WMCreateFont(scrPtr, "fixed"); if (!font) { + font = WMCreateFont(scrPtr, "-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*"); + } + if (!font) { wwarning("could not load fixed font!"); free(fontSpec); return NULL; diff --git a/WINGs/widgets.c b/WINGs/widgets.c index 896056eb..b0f409d8 100644 --- a/WINGs/widgets.c +++ b/WINGs/widgets.c @@ -421,196 +421,96 @@ makePixmap(W_Screen *sPtr, char **data, int width, int height, int masked) sPtr->depth); } -#ifdef USE_TIFF -#define WINGS_IMAGES_FILE RESOURCE_PATH"/Images.tiff" -#define DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.tiff" -#else -#define WINGS_IMAGES_FILE RESOURCE_PATH"/Images.xpm" -#define DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.xpm" -#endif + +#define T_WINGS_IMAGES_FILE RESOURCE_PATH"/Images.tiff" +#define T_DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.tiff" + +#define X_WINGS_IMAGES_FILE RESOURCE_PATH"/Images.xpm" +#define X_DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.xpm" + static Bool loadPixmaps(WMScreen *scr) { RImage *image, *tmp; - Pixmap pixmap; RColor gray; - - image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0); - if (!image) { - wwarning("WINGs: could not load widget images file: %s", - RMessageForError(RErrorCode)); - return False; - } - /* make it have a gray background */ + RColor white; + gray.red = 0xae; gray.green = 0xaa; gray.blue = 0xae; - RCombineImageWithColor(image, &gray); - tmp = RGetSubImage(image, 0, 0, 24, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->homeIcon = NULL; - } else { - scr->homeIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, - scr->depth); - } - RDestroyImage(tmp); - /* Magnifying Glass Icon for ColorPanel */ - tmp = RGetSubImage(image, 24, 0, 40, 32); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->magnifyIcon = NULL; - } else { - scr->magnifyIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 32, scr->depth); - } - RDestroyImage(tmp); - /* ColorWheel Icon for ColorPanel */ - tmp = RGetSubImage(image, 0, 25, 24, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->wheelIcon = NULL; - } else { - scr->wheelIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, scr->depth); - } - RDestroyImage(tmp); - /* GrayScale Icon for ColorPanel */ - tmp = RGetSubImage(image, 65, 0, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->grayIcon = NULL; - } else { - scr->grayIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* RGB Icon for ColorPanel */ - tmp = RGetSubImage(image, 25, 33, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->rgbIcon = NULL; - } else { - scr->rgbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* CMYK Icon for ColorPanel */ - tmp = RGetSubImage(image, 65, 25, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->cmykIcon = NULL; - } else { - scr->cmykIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* HSB Icon for ColorPanel */ - tmp = RGetSubImage(image, 0, 57, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->hsbIcon = NULL; - } else { - scr->hsbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* CustomColorPalette Icon for ColorPanel */ - tmp = RGetSubImage(image, 81, 57, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->customPaletteIcon = NULL; - } else { - scr->customPaletteIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* ColorList Icon for ColorPanel */ - tmp = RGetSubImage(image, 41, 57, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->colorListIcon = NULL; - } else { - scr->colorListIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - RDestroyImage(image); + white.red = 0xff; + white.green = 0xff; + white.blue = 0xff; - image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0); + image = RLoadImage(scr->rcontext, T_WINGS_IMAGES_FILE, 0); + if (!image) + image = RLoadImage(scr->rcontext, X_WINGS_IMAGES_FILE, 0); if (!image) { wwarning("WINGs: could not load widget images file: %s", RMessageForError(RErrorCode)); return False; } + /* home icon */ + /* make it have a gray background */ + tmp = RGetSubImage(image, 0, 0, 24, 24); + RCombineImageWithColor(tmp, &gray); + scr->homeIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); /* make it have a white background */ - gray.red = 0xff; - gray.green = 0xff; - gray.blue = 0xff; - RCombineImageWithColor(image, &gray); tmp = RGetSubImage(image, 0, 0, 24, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->homeAltIcon = NULL; - } else { - scr->homeAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, - scr->depth); - } + RCombineImageWithColor(tmp, &white); + scr->altHomeIcon = WMCreatePixmapFromRImage(scr, tmp, 128); RDestroyImage(tmp); - /* Magnifying Glass Icon for ColorPanel */ - tmp = RGetSubImage(image, 25, 0, 40, 32); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->magnifyAltIcon = NULL; - } else { - scr->magnifyAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 32, scr->depth); - } - RDestroyImage(tmp); - /* ColorWheel Icon for ColorPanel */ - tmp = RGetSubImage(image, 0, 25, 24, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->wheelAltIcon = NULL; - } else { - scr->wheelAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, scr->depth); - } - RDestroyImage(tmp); - /* GrayScale Icon for ColorPanel */ - tmp = RGetSubImage(image, 65, 0, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->grayAltIcon = NULL; - } else { - scr->grayAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* RGB Icon for ColorPanel */ - tmp = RGetSubImage(image, 25, 33, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->rgbAltIcon = NULL; - } else { - scr->rgbAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* CMYK Icon for ColorPanel */ - tmp = RGetSubImage(image, 65, 25, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->cmykAltIcon = NULL; - } else { - scr->cmykAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* HSB Icon for ColorPanel */ - tmp = RGetSubImage(image, 0, 57, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->hsbAltIcon = NULL; - } else { - scr->hsbAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* CustomColorPalette Icon for ColorPanel */ - tmp = RGetSubImage(image, 81, 57, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->customPaletteAltIcon = NULL; - } else { - scr->customPaletteAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - /* ColorList Icon for ColorPanel */ - tmp = RGetSubImage(image, 41, 57, 40, 24); - if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { - scr->colorListAltIcon = NULL; - } else { - scr->colorListAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth); - } - RDestroyImage(tmp); - RDestroyImage(image); + /* Magnifying Glass Icon for ColorPanel */ + tmp = RGetSubImage(image, 24, 0, 40, 32); + RCombineImageWithColor(tmp, &gray); + scr->magnifyIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + tmp = RGetSubImage(image, 24, 0, 40, 32); + RCombineImageWithColor(tmp, &white); + scr->altMagnifyIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + /* ColorWheel Icon for ColorPanel */ + tmp = RGetSubImage(image, 0, 25, 24, 24); + scr->wheelIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + /* GrayScale Icon for ColorPanel */ + tmp = RGetSubImage(image, 65, 0, 40, 24); + scr->grayIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + /* RGB Icon for ColorPanel */ + tmp = RGetSubImage(image, 25, 33, 40, 24); + scr->rgbIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + /* CMYK Icon for ColorPanel */ + tmp = RGetSubImage(image, 65, 25, 40, 24); + scr->cmykIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + /* HSB Icon for ColorPanel */ + tmp = RGetSubImage(image, 0, 57, 40, 24); + scr->hsbIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + /* CustomColorPalette Icon for ColorPanel */ + tmp = RGetSubImage(image, 81, 57, 40, 24); + scr->customPaletteIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + /* ColorList Icon for ColorPanel */ + tmp = RGetSubImage(image, 41, 57, 40, 24); + scr->colorListIcon = WMCreatePixmapFromRImage(scr, tmp, 128); + RDestroyImage(tmp); + + RDestroyImage(image); #if 0 scr->defaultObjectIcon = - WMCreatePixmapFromFile(scr, DEFAULT_OBJECT_ICON_FILE); + WMCreatePixmapFromFile(scr, T_DEFAULT_OBJECT_ICON_FILE); + if (!scr->defaultObjectIcon) { + scr->defaultObjectIcon = + WMCreatePixmapFromFile(scr, X_DEFAULT_OBJECT_ICON_FILE); + } if (!scr->defaultObjectIcon) { wwarning("WINGs: could not load default icon file"); return False; diff --git a/WINGs/wlist.c b/WINGs/wlist.c index 2ec55a07..c9a02573 100644 --- a/WINGs/wlist.c +++ b/WINGs/wlist.c @@ -5,7 +5,7 @@ #include "WINGsP.h" char *WMListDidScrollNotification = "WMListDidScrollNotification"; - +char *WMListSelectionDidChangeNotification = "WMListSelectionDidChangeNotification"; typedef struct W_List { W_Class widgetClass; @@ -227,16 +227,19 @@ WMRemoveListItem(WMList *lPtr, int row) WMListItem *llist; WMListItem *tmp; int topItem = lPtr->topItem; + int selNotify = 0; CHECK_CLASS(lPtr, WC_List); if (row < 0 || row >= lPtr->itemCount) return; - if (lPtr->selectedItem == row) - lPtr->selectedItem = -1; - else if (lPtr->selectedItem > row) - lPtr->selectedItem--; + if (lPtr->selectedItem == row) { + lPtr->selectedItem = -1; + selNotify = 1; + } else if (lPtr->selectedItem > row) { + lPtr->selectedItem--; + } if (row <= lPtr->topItem+lPtr->fullFitLines+lPtr->flags.dontFitAll) lPtr->topItem--; @@ -271,6 +274,9 @@ WMRemoveListItem(WMList *lPtr, int row) } if (lPtr->topItem != topItem) WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL); + if (selNotify) + WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, + (void*)((int)lPtr->selectedItem)); } @@ -312,7 +318,8 @@ void WMClearList(WMList *lPtr) { WMListItem *item, *tmp; - + int oldSelected = lPtr->selectedItem; + item = lPtr->items; while (item) { free(item->text); @@ -332,6 +339,9 @@ WMClearList(WMList *lPtr) if (lPtr->view->flags.realized) { updateScroller(lPtr); } + if (oldSelected != -1) + WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, + (void*)-1); } @@ -654,11 +664,19 @@ void WMSelectListItem(WMList *lPtr, int row) { WMListItem *itemPtr; - int i; + int i, notify = 0; if (row >= lPtr->itemCount) return; - + + /* the check below must be changed when the multiple selection is + * implemented. -Dan + */ + if (!lPtr->flags.allowMultipleSelection && row == lPtr->selectedItem) + notify = 0; + else + notify = 1; + if (!lPtr->flags.allowMultipleSelection) { /* unselect previous selected item */ if (lPtr->selectedItem >= 0) { @@ -676,8 +694,12 @@ WMSelectListItem(WMList *lPtr, int row) } if (row < 0) { - if (!lPtr->flags.allowMultipleSelection) + if (!lPtr->flags.allowMultipleSelection) { lPtr->selectedItem = -1; + if (notify) + WMPostNotificationName(WMListSelectionDidChangeNotification, + lPtr, (void*)((int)lPtr->selectedItem)); + } return; } @@ -700,6 +722,9 @@ WMSelectListItem(WMList *lPtr, int row) WRSunken); } lPtr->selectedItem = row; + if (notify) + WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr, + (void*)((int)lPtr->selectedItem)); } @@ -732,7 +757,6 @@ handleActionEvents(XEvent *event, void *data) tmp = getItemIndexAt(lPtr, event->xbutton.y); if (tmp == lPtr->selectedItem && tmp >= 0) { - if (lPtr->action) (*lPtr->action)(lPtr, lPtr->clientData); } @@ -751,16 +775,16 @@ handleActionEvents(XEvent *event, void *data) case ButtonPress: if (event->xbutton.x > WMWidgetWidth(lPtr->vScroller)) { tmp = getItemIndexAt(lPtr, event->xbutton.y); - lPtr->flags.buttonPressed = 1; if (tmp >= 0) { - WMSelectListItem(lPtr, tmp); if (tmp == lPtr->selectedItem && WMIsDoubleClick(event)) { + WMSelectListItem(lPtr, tmp); if (lPtr->doubleAction) (*lPtr->doubleAction)(lPtr, lPtr->doubleClientData); + } else { + WMSelectListItem(lPtr, tmp); } - lPtr->selectedItem = tmp; } } break; @@ -770,7 +794,6 @@ handleActionEvents(XEvent *event, void *data) tmp = getItemIndexAt(lPtr, event->xmotion.y); if (tmp>=0 && tmp != lPtr->selectedItem) { WMSelectListItem(lPtr, tmp); - lPtr->selectedItem = tmp; } } break; diff --git a/WINGs/wmfile.c b/WINGs/wmfile.c index d3a1a51c..2bb11782 100644 --- a/WINGs/wmfile.c +++ b/WINGs/wmfile.c @@ -1,7 +1,16 @@ - /* * Author: Len Trigg */ + +/* + Update: Franck Wolff +----------------------------------------------------------------------- + List of updated functions : + - main : + add -s option for a save panel... +----------------------------------------------------------------------- +*/ + #include "WINGs.h" @@ -29,6 +38,7 @@ void usage(void) "\t%s [-options]\n" "\n" "options:\n" + " -s\t\tSave panel (default open panel)\n" " -i \tInitial directory (default /)\n" " -t \tQuery window title (default none)\n" "\n" @@ -42,16 +52,21 @@ void usage(void) exit(0); } +#define OPEN_PANEL_TYPE 0 +#define SAVE_PANEL_TYPE 1 + int main(int argc, char **argv) { Display *dpy = XOpenDisplay(""); WMScreen *scr; WMPixmap *pixmap; - WMOpenPanel *panel; + WMOpenPanel *oPanel; + WMSavePanel *sPanel; /* RImage *image;*/ char *title = NULL; char *initial = "/"; int ch; + int panelType = OPEN_PANEL_TYPE; extern char *optarg; extern int optind; @@ -63,9 +78,12 @@ int main(int argc, char **argv) puts("could not open display"); exit(1); } - while((ch = getopt(argc, argv, "i:ht:")) != -1) + while((ch = getopt(argc, argv, "si:ht:")) != -1) switch(ch) { + case 's': + panelType = SAVE_PANEL_TYPE; + break; case 'i': initial = optarg; break; @@ -76,24 +94,30 @@ int main(int argc, char **argv) usage(); } - for(; optind flags.pullsDown = flag; if (!flag) { - bPtr->selectedItem = bPtr->items; + /* This code causes bugs. It should not select any item, + * since it was not asked to. -Dan + bPtr->selectedItem = bPtr->items; if (bPtr->selectedItem) bPtr->selectedItemIndex = 0; else - bPtr->selectedItemIndex = -1; + bPtr->selectedItemIndex = -1; + */ + bPtr->selectedItem = NULL; + /* the drawing routine, still draws things wrong if we put + * the index to -1 (i.e. not selected). + * Find out why. -Dan */ + bPtr->selectedItemIndex = 0; } else bPtr->selectedItemIndex = -1; diff --git a/WINGs/wscrollview.c b/WINGs/wscrollview.c index cbbcb4c8..d64950f8 100644 --- a/WINGs/wscrollview.c +++ b/WINGs/wscrollview.c @@ -398,7 +398,7 @@ WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view) sPtr->contentView = view; - W_ReparentView(sPtr->contentView, sPtr->viewport); + W_ReparentView(sPtr->contentView, sPtr->viewport, 0, 0); if (sPtr->flags.hasHScroller) { float prop; diff --git a/WINGs/wslider.c b/WINGs/wslider.c index f4ee461f..d73b693a 100644 --- a/WINGs/wslider.c +++ b/WINGs/wslider.c @@ -533,6 +533,8 @@ destroySlider(Slider *sPtr) if (sPtr->backPixmap) WMReleasePixmap(sPtr->backPixmap); + WMRemoveNotificationObserver(sPtr); + free(sPtr); } diff --git a/WINGs/wsplitview.c b/WINGs/wsplitview.c index e79b9fce..4e14c101 100644 --- a/WINGs/wsplitview.c +++ b/WINGs/wsplitview.c @@ -144,7 +144,7 @@ WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview) W_UnmapView(subview); } - W_ReparentView(subview, sPtr->view); + W_ReparentView(subview, sPtr->view, 0, 0); #if 0 if (sPtr->resizeSubviewsProc && subviewCount(sPtr)>1) { diff --git a/WINGs/wtest.c b/WINGs/wtest.c index d79a1a83..05ca39df 100644 --- a/WINGs/wtest.c +++ b/WINGs/wtest.c @@ -46,10 +46,10 @@ testOpenFilePanel(WMScreen *scr) /* get the shared Open File panel */ panel = WMGetOpenPanel(scr); - WMRunModalOpenPanelForDirectory(panel, NULL, "/usr/local", NULL, NULL); + WMRunModalFilePanelForDirectory(panel, NULL, "/usr/local", NULL, NULL); /* free the panel to save some memory. Not needed otherwise. */ - WMFreeFilePanel(panel); + WMFreeFilePanel(WMGetOpenPanel(scr)); } diff --git a/WINGs/wtextfield.c b/WINGs/wtextfield.c index 235bad38..47043f79 100644 --- a/WINGs/wtextfield.c +++ b/WINGs/wtextfield.c @@ -22,8 +22,10 @@ typedef struct W_TextField { W_Class widgetClass; W_View *view; +#if 0 struct W_TextField *nextField; /* next textfield in the chain */ struct W_TextField *prevField; +#endif char *text; int textLen; /* size of text */ @@ -39,6 +41,8 @@ typedef struct W_TextField { WMRange selection; WMRange prevselection; + WMFont *font; + #if 0 WMHandlerID timerID; /* for cursor blinking */ #endif @@ -46,13 +50,15 @@ typedef struct W_TextField { WMAlignment alignment:2; unsigned int bordered:1; - + + unsigned int beveled:1; + unsigned int enabled:1; - + unsigned int focused:1; unsigned int cursorOn:1; - + unsigned int secure:1; /* password entry style */ /**/ @@ -97,11 +103,11 @@ struct W_ViewProcedureTable _TextFieldViewProcedures = { }; -#define TEXT_WIDTH(tPtr, start) (WMWidthOfString((tPtr)->view->screen->normalFont, \ - &((tPtr)->text[(start)]), (tPtr)->textLen - (start) + 1)) +#define TEXT_WIDTH(tPtr, start) (WMWidthOfString((tPtr)->font, \ + &((tPtr)->text[(start)]), (tPtr)->textLen - (start) + 1)) -#define TEXT_WIDTH2(tPtr, start, end) (WMWidthOfString((tPtr)->view->screen->normalFont, \ - &((tPtr)->text[(start)]), (end) - (start) + 1)) +#define TEXT_WIDTH2(tPtr, start, end) (WMWidthOfString((tPtr)->font, \ + &((tPtr)->text[(start)]), (end) - (start) + 1)) static void @@ -163,7 +169,6 @@ WMCreateTextField(WMWidget *parent) { TextField *tPtr; - tPtr = wmalloc(sizeof(TextField)); memset(tPtr, 0, sizeof(TextField)); @@ -185,24 +190,28 @@ WMCreateTextField(WMWidget *parent) tPtr->text[0] = 0; tPtr->textLen = 0; tPtr->bufferSize = MIN_TEXT_BUFFER; - + tPtr->flags.enabled = 1; WMCreateEventHandler(tPtr->view, ExposureMask|StructureNotifyMask |FocusChangeMask, handleEvents, tPtr); W_ResizeView(tPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); - WMSetTextFieldBordered(tPtr, DEFAULT_BORDERED); + + tPtr->font = WMRetainFont(tPtr->view->screen->normalFont); + + tPtr->flags.bordered = DEFAULT_BORDERED; + tPtr->flags.beveled = True; tPtr->flags.alignment = DEFAULT_ALIGNMENT; - tPtr->offsetWidth = (tPtr->view->size.height - - WMFontHeight(tPtr->view->screen->normalFont))/2; + tPtr->offsetWidth = + WMAX((tPtr->view->size.height - WMFontHeight(tPtr->font))/2, 1); WMCreateEventHandler(tPtr->view, EnterWindowMask|LeaveWindowMask |ButtonPressMask|KeyPressMask|Button1MotionMask, handleTextFieldActionEvents, tPtr); tPtr->flags.cursorOn = 1; - + return tPtr; } @@ -311,10 +320,6 @@ WMGetTextFieldText(WMTextField *tPtr) void WMSetTextFieldText(WMTextField *tPtr, char *text) { - /* We do not set text if it's the same. This will also help - * to avoid some infinite loops if this function is called from - * a function called by a notification observer. -Dan - */ if ((text && strcmp(tPtr->text, text) == 0) || (!text && tPtr->textLen == 0)) return; @@ -348,6 +353,14 @@ WMSetTextFieldText(WMTextField *tPtr, char *text) void +WMSetTextFieldFont(WMTextField *tPtr, WMFont *font) +{ + /* TODO: update font change after field is mapped */ + WMReleaseFont(tPtr->font); + tPtr->font = WMRetainFont(font); +} + +void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment) { tPtr->flags.alignment = alignment; @@ -373,6 +386,17 @@ WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered) } +void +WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag) +{ + tPtr->flags.beveled = flag; + + if (tPtr->view->flags.realized) { + paintTextField(tPtr); + } +} + + void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag) @@ -385,6 +409,13 @@ WMSetTextFieldSecure(WMTextField *tPtr, Bool flag) } +Bool +WMGetTextFieldEnabled(WMTextField *tPtr) +{ + return tPtr->flags.enabled; +} + + void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag) { @@ -438,15 +469,61 @@ WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position) } +void +WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next) +{ + CHECK_CLASS(tPtr, WC_TextField); + if (next == NULL) { + if (tPtr->view->nextFocusChain) + tPtr->view->nextFocusChain->prevFocusChain = NULL; + tPtr->view->nextFocusChain = NULL; + return; + } + + CHECK_CLASS(next, WC_TextField); + + if (tPtr->view->nextFocusChain) + tPtr->view->nextFocusChain->prevFocusChain = NULL; + if (next->view->prevFocusChain) + next->view->prevFocusChain->nextFocusChain = NULL; + + tPtr->view->nextFocusChain = next->view; + next->view->prevFocusChain = tPtr->view; +} + + +void +WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev) +{ + CHECK_CLASS(tPtr, WC_TextField); + if (prev == NULL) { + if (tPtr->view->prevFocusChain) + tPtr->view->prevFocusChain->nextFocusChain = NULL; + tPtr->view->prevFocusChain = NULL; + return; + } + + CHECK_CLASS(prev, WC_TextField); + + if (tPtr->view->prevFocusChain) + tPtr->view->prevFocusChain->nextFocusChain = NULL; + if (prev->view->nextFocusChain) + prev->view->nextFocusChain->prevFocusChain = NULL; + + tPtr->view->prevFocusChain = prev->view; + prev->view->nextFocusChain = tPtr->view; +} + + static void resizeTextField(WMTextField *tPtr, unsigned int width, unsigned int height) { W_ResizeView(tPtr->view, width, height); - - tPtr->offsetWidth = (tPtr->view->size.height - - WMFontHeight(tPtr->view->screen->normalFont))/2; - - tPtr->usableWidth = tPtr->view->size.width - 2*tPtr->offsetWidth; + + tPtr->offsetWidth = + WMAX((tPtr->view->size.height - WMFontHeight(tPtr->font))/2, 1); + + tPtr->usableWidth = tPtr->view->size.width - 2*tPtr->offsetWidth + 2; } @@ -457,27 +534,24 @@ paintCursor(TextField *tPtr) WMScreen *screen = tPtr->view->screen; int textWidth; - cx = WMWidthOfString(screen->normalFont, - &(tPtr->text[tPtr->viewPosition]), + cx = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), tPtr->cursorPosition-tPtr->viewPosition); switch (tPtr->flags.alignment) { case WARight: - textWidth = WMWidthOfString(screen->normalFont, tPtr->text, - tPtr->textLen); + textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen); if (textWidth < tPtr->usableWidth) - cx += tPtr->offsetWidth + tPtr->usableWidth - textWidth; + cx += tPtr->offsetWidth + tPtr->usableWidth - textWidth + 1; else - cx += tPtr->offsetWidth; + cx += tPtr->offsetWidth + 1; break; case WALeft: - cx += tPtr->offsetWidth; + cx += tPtr->offsetWidth + 1; break; case WAJustified: /* not supported */ case WACenter: - textWidth = WMWidthOfString(screen->normalFont, tPtr->text, - tPtr->textLen); + textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen); if (textWidth < tPtr->usableWidth) cx += tPtr->offsetWidth + (tPtr->usableWidth-textWidth)/2; else @@ -497,7 +571,7 @@ paintCursor(TextField *tPtr) static void -drawRelief(WMView *view) +drawRelief(WMView *view, Bool beveled) { WMScreen *scr = view->screen; Display *dpy = scr->display; @@ -507,8 +581,14 @@ drawRelief(WMView *view) int width = view->size.width; int height = view->size.height; - wgc = W_GC(scr->white); dgc = W_GC(scr->darkGray); + + if (!beveled) { + XDrawRectangle(dpy, view->window, dgc, 0, 0, width-1, height-1); + + return; + } + wgc = W_GC(scr->white); lgc = W_GC(scr->gray); /* top left */ @@ -550,16 +630,15 @@ paintTextField(TextField *tPtr) totalWidth = tPtr->view->size.width - 2*bd; if (tPtr->textLen > 0) { - tw = WMWidthOfString(screen->normalFont, - &(tPtr->text[tPtr->viewPosition]), + tw = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), tPtr->textLen - tPtr->viewPosition); - th = WMFontHeight(screen->normalFont); + th = WMFontHeight(tPtr->font); ty = tPtr->offsetWidth; switch (tPtr->flags.alignment) { case WALeft: - tx = tPtr->offsetWidth; + tx = tPtr->offsetWidth + 1; if (tw < tPtr->usableWidth) XClearArea(screen->display, view->window, bd+tw, bd, totalWidth-tw, view->size.height-2*bd, @@ -575,7 +654,7 @@ paintTextField(TextField *tPtr) default: case WARight: - tx = tPtr->offsetWidth + tPtr->usableWidth - tw; + tx = tPtr->offsetWidth + tPtr->usableWidth - tw - 1; if (tw < tPtr->usableWidth) XClearArea(screen->display, view->window, bd, bd, totalWidth-tw, view->size.height-2*bd, False); @@ -587,7 +666,7 @@ paintTextField(TextField *tPtr) WMSetColorInGC(screen->darkGray, screen->textFieldGC); WMDrawImageString(screen, view->window, screen->textFieldGC, - screen->normalFont, tx, ty, + tPtr->font, tx, ty, &(tPtr->text[tPtr->viewPosition]), tPtr->textLen - tPtr->viewPosition); @@ -598,7 +677,7 @@ paintTextField(TextField *tPtr) ? tPtr->selection.position + tPtr->selection.count : tPtr->selection.position; - rx = tx + WMWidthOfString(screen->normalFont, + rx = tx + WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), count); @@ -606,8 +685,7 @@ paintTextField(TextField *tPtr) screen->gray->color.pixel); WMDrawImageString(screen, view->window, screen->textFieldGC, - screen->normalFont, rx, ty, - &(tPtr->text[count]), + tPtr->font, rx, ty, &(tPtr->text[count]), abs(tPtr->selection.count)); XSetBackground(screen->display, screen->textFieldGC, @@ -630,7 +708,7 @@ paintTextField(TextField *tPtr) /* draw relief */ if (tPtr->flags.bordered) { - drawRelief(view); + drawRelief(view, tPtr->flags.beveled); } } @@ -715,7 +793,6 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) KeySym ksym; int count, refresh = 0; int control_pressed = 0; - WMScreen *scr = tPtr->view->screen; if (((XKeyEvent *) event)->state & WM_EMACSKEYMASK) { control_pressed = 1; @@ -733,9 +810,9 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) } /* Be careful in any case in this switch statement, never to call - * to more than 2 functions at the same time, that can generate text - * change notifications. Only one text change notification should be sent - * in any case. Else hazardous things can happen. + * to more than a function that can generate text change notifications. + * Only one text change notification should be sent in any case. + * Else hazardous things can happen. * Maybe we need a better solution than the function wrapper to inform * functions that change text in text fields, if they need to send a * change notification or not. -Dan @@ -811,7 +888,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) } else { tPtr->cursorPosition++; } - while (WMWidthOfString(scr->normalFont, + while (WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), tPtr->cursorPosition-tPtr->viewPosition) > tPtr->usableWidth) { @@ -851,7 +928,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) paintCursor(tPtr); tPtr->cursorPosition = tPtr->textLen; tPtr->viewPosition = 0; - while (WMWidthOfString(scr->normalFont, + while (WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), tPtr->textLen-tPtr->viewPosition) > tPtr->usableWidth) { @@ -870,6 +947,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) case XK_BackSpace: if (tPtr->cursorPosition > 0) { WMRange range; + if (tPtr->prevselection.count) { range.position = tPtr->prevselection.count < 0 ? tPtr->prevselection.position + tPtr->prevselection.count @@ -892,6 +970,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) case XK_Delete: if (tPtr->cursorPosition < tPtr->textLen || tPtr->prevselection.count) { WMRange range; + if (tPtr->prevselection.count) { range.position = tPtr->prevselection.count < 0 ? tPtr->prevselection.position + tPtr->prevselection.count @@ -910,6 +989,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) default: if (count > 0 && !iscntrl(buffer[0])) { WMRange range; + if (tPtr->prevselection.count) { range.position = tPtr->prevselection.count < 0 ? tPtr->prevselection.position + tPtr->prevselection.count @@ -944,7 +1024,6 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event) static int pointToCursorPosition(TextField *tPtr, int x) { - WMFont *font = tPtr->view->screen->normalFont; int a, b, mid; int tw; @@ -953,13 +1032,13 @@ pointToCursorPosition(TextField *tPtr, int x) a = tPtr->viewPosition; b = tPtr->viewPosition + tPtr->textLen; - if (WMWidthOfString(font, &(tPtr->text[tPtr->viewPosition]), + if (WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), tPtr->textLen-tPtr->viewPosition) < x) return tPtr->textLen; while (a < b && b-a>1) { mid = (a+b)/2; - tw = WMWidthOfString(font, &(tPtr->text[tPtr->viewPosition]), + tw = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]), mid - tPtr->viewPosition); if (tw > x) b = mid; @@ -981,7 +1060,7 @@ handleTextFieldActionEvents(XEvent *event, void *data) switch (event->type) { case KeyPress: - if (tPtr->flags.enabled) + if (tPtr->flags.enabled && tPtr->flags.focused) handleTextFieldKeyPress(tPtr, event); break; @@ -1045,7 +1124,9 @@ destroyTextField(TextField *tPtr) if (tPtr->timerID) WMDeleteTimerHandler(tPtr->timerID); #endif - + + WMReleaseFont(tPtr->font); + if (tPtr->text) free(tPtr->text); diff --git a/WINGs/wview.c b/WINGs/wview.c index 8b7e5b3b..c0a3adaa 100644 --- a/WINGs/wview.c +++ b/WINGs/wview.c @@ -102,6 +102,32 @@ adoptChildView(W_View *view, W_View *child) } +static void +getPosition(Display *dpy, Window win, int *x_ret, int *y_ret) +{ + unsigned foo; + Window bar; + Window parent; + Window *childs; + int x, y; + + XGetGeometry(dpy, win, &bar, &x, &y, &foo, &foo, &foo, &foo); + if (XQueryTree(dpy, win, &bar, &parent, &childs, &foo)) { + int px, py; + + XFree(childs); + if (parent != bar) { + getPosition(dpy, parent, &px, &py); + + x += px; + y += py; + } + } + + *x_ret = x; + *y_ret = y; +} + static void handleEvents(XEvent *event, void *data) @@ -109,17 +135,29 @@ handleEvents(XEvent *event, void *data) W_View *view = (W_View*)data; if (event->type == ConfigureNotify) { - + if (event->xconfigure.width != view->size.width || event->xconfigure.height != view->size.height) { - + + view->size.width = event->xconfigure.width; + view->size.height = event->xconfigure.height; + if (view->flags.notifySizeChanged) { - view->size.width = event->xconfigure.width; - view->size.height = event->xconfigure.height; WMPostNotificationName(WMViewSizeDidChangeNotification, view, NULL); } } + if (event->xconfigure.x != view->pos.x + || event->xconfigure.y != view->pos.y) { + + if (event->xconfigure.send_event) { + view->pos.x = event->xconfigure.x; + view->pos.y = event->xconfigure.y; + } else { + getPosition(view->screen->display, view->window, + &view->pos.x, &view->pos.y); + } + } } } @@ -265,34 +303,26 @@ W_CheckInternalMessage(W_Screen *scr, XClientMessageEvent *cev, int event) void -W_ReparentView(W_View *view, W_View *newParent) +W_ReparentView(W_View *view, W_View *newParent, int x, int y) { - int wasMapped; Display *dpy = view->screen->display; assert(!view->flags.topLevel); - - wasMapped = view->flags.mapped; - if (wasMapped) - W_UnmapView(view); unparentView(view); adoptChildView(newParent, view); if (view->flags.realized) { if (newParent->flags.realized) { - XReparentWindow(dpy, view->window, newParent->window, 0, 0); + XReparentWindow(dpy, view->window, newParent->window, x, y); } else { wwarning("trying to reparent realized view to unrealized parent"); return; } } - view->pos.x = 0; - view->pos.y = 0; - - if (wasMapped) - W_MapView(view); + view->pos.x = x; + view->pos.y = y; } @@ -382,6 +412,11 @@ destroyView(W_View *view) return; view->flags.alreadyDead = 1; + if (view->nextFocusChain) + view->nextFocusChain->prevFocusChain = view->prevFocusChain; + if (view->prevFocusChain) + view->prevFocusChain->nextFocusChain = view->nextFocusChain; + /* Do not leave focus in a inexisting control */ if (W_FocusedViewOfToplevel(W_TopLevelOfView(view))==view) W_SetFocusOfTopLevel(W_TopLevelOfView(view), NULL); diff --git a/WPrefs.app/Focus.c b/WPrefs.app/Focus.c index e81093b7..75aed5a2 100644 --- a/WPrefs.app/Focus.c +++ b/WPrefs.app/Focus.c @@ -69,6 +69,8 @@ showData(_Panel *panel) char buffer[32]; str = GetStringForKey("FocusMode"); + if (!str) + str = "manual"; if (strcasecmp(str, "manual")==0 || strcasecmp(str, "clicktofocus")==0) WMSetPopUpButtonSelectedItem(panel->kfocP, 0); else if (strcasecmp(str, "auto")==0 || strcasecmp(str, "focusfollowsmouse")==0) @@ -84,12 +86,14 @@ showData(_Panel *panel) /**/ str = GetStringForKey("ColormapMode"); + if (!str) + str = "auto"; if (strcasecmp(str, "manual")==0 || strcasecmp(str, "clicktofocus")==0) { WMPerformButtonClick(panel->manB); } else if (strcasecmp(str, "auto")==0 || strcasecmp(str, "focusfollowsmouse")==0) { WMPerformButtonClick(panel->autB); } else { - wwarning(_("bad option value %s for option ColormapMode. Using default Manual"), + wwarning(_("bad option value %s for option ColormapMode. Using default Auto"), str); WMPerformButtonClick(panel->manB); } diff --git a/WPrefs.app/Icons.c b/WPrefs.app/Icons.c index c0c43ec5..e5841ea7 100644 --- a/WPrefs.app/Icons.c +++ b/WPrefs.app/Icons.c @@ -145,6 +145,8 @@ showData(_Panel *panel) WMSetPopUpButtonSelectedItem(panel->sizeP, i); str = GetStringForKey("IconificationStyle"); + if (!str) + str = "zoom"; if (strcasecmp(str, "none")==0) WMPerformButtonClick(panel->animB[3]); else if (strcasecmp(str, "twist")==0) diff --git a/WPrefs.app/Makefile.am b/WPrefs.app/Makefile.am index 0106bfea..7982c2f6 100644 --- a/WPrefs.app/Makefile.am +++ b/WPrefs.app/Makefile.am @@ -1,7 +1,5 @@ SUBDIRS = xpm tiff po -nlsdir = @NLSDIR@ - AUTOMAKE_OPTIONS = no-dependencies wpexecbindir = @wprefsdir@ @@ -28,6 +26,7 @@ WPrefs_SOURCES = \ Menu.c \ MenuPreferences.c \ MouseSettings.c \ + NoMenuAlert.c \ Paths.c \ Preferences.c \ Text.c \ @@ -39,26 +38,25 @@ WPrefs_SOURCES = \ Workspace.c \ double.c \ double.h \ + editmenu.c \ + editmenu.h \ MenuGuru.c \ xmodifier.c -CPPFLAGS = \ - @CPPFLAGS@ +CPPFLAGS = @CPPFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\" INCLUDES = \ -I$(top_srcdir)/wrlib \ - -I$(top_srcdir)/WINGs \ - @XCFLAGS@ + -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a WPrefs_LDADD = \ $(top_builddir)/WINGs/libWINGs.a\ $(top_builddir)/wrlib/libwraster.la \ + @LIBRARY_SEARCH_PATH@ \ @LIBPL@ \ - @GFXLFLAGS@ \ - @XLFLAGS@ \ @GFXLIBS@ \ @XLIBS@ \ @X_EXTRA_LIBS@ \ diff --git a/WPrefs.app/Makefile.in b/WPrefs.app/Makefile.in index 289d53f2..0e163ad1 100644 --- a/WPrefs.app/Makefile.in +++ b/WPrefs.app/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -89,8 +89,6 @@ wprefsdir = @wprefsdir@ SUBDIRS = xpm tiff po -nlsdir = @NLSDIR@ - AUTOMAKE_OPTIONS = no-dependencies wpexecbindir = @wprefsdir@ @@ -103,18 +101,17 @@ wpdata_DATA = WPrefs.tiff WPrefs.xpm EXTRA_DIST = $(wpdata_DATA) TexturePanel.icons -WPrefs_SOURCES = main.c WPrefs.c WPrefs.h Appearance.c Configurations.c Expert.c Focus.c Icons.c KeyboardSettings.c KeyboardShortcuts.c Menu.c MenuPreferences.c MouseSettings.c Paths.c Preferences.c Text.c TextureAndColor.c TexturePanel.c TexturePanel.h Themes.c WindowHandling.c Workspace.c double.c double.h MenuGuru.c xmodifier.c - +WPrefs_SOURCES = main.c WPrefs.c WPrefs.h Appearance.c Configurations.c Expert.c Focus.c Icons.c KeyboardSettings.c KeyboardShortcuts.c Menu.c MenuPreferences.c MouseSettings.c NoMenuAlert.c Paths.c Preferences.c Text.c TextureAndColor.c TexturePanel.c TexturePanel.h Themes.c WindowHandling.c Workspace.c double.c double.h editmenu.c editmenu.h MenuGuru.c xmodifier.c -CPPFLAGS = @CPPFLAGS@ +CPPFLAGS = @CPPFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\" -INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @XCFLAGS@ +INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a -WPrefs_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBPL@ @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ @X_EXTRA_LIBS@ @INTLIBS@ -lm +WPrefs_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @LIBPL@ @GFXLIBS@ @XLIBS@ @X_EXTRA_LIBS@ @INTLIBS@ -lm mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../src/config.h @@ -130,9 +127,9 @@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ WPrefs_OBJECTS = main.o WPrefs.o Appearance.o Configurations.o Expert.o \ Focus.o Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o \ -MenuPreferences.o MouseSettings.o Paths.o Preferences.o Text.o \ -TextureAndColor.o TexturePanel.o Themes.o WindowHandling.o Workspace.o \ -double.o MenuGuru.o xmodifier.o +MenuPreferences.o MouseSettings.o NoMenuAlert.o Paths.o Preferences.o \ +Text.o TextureAndColor.o TexturePanel.o Themes.o WindowHandling.o \ +Workspace.o double.o editmenu.o MenuGuru.o xmodifier.o WPrefs_LDFLAGS = CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) diff --git a/WPrefs.app/Menu.c b/WPrefs.app/Menu.c index 5e224c44..9d580725 100644 --- a/WPrefs.app/Menu.c +++ b/WPrefs.app/Menu.c @@ -83,7 +83,7 @@ typedef struct _Panel { extern char *OpenMenuGuru(WMWindow *mainWindow); - +extern Bool AskMenuCopy(WMWindow *wwin); /* must match the indexes of the commands popup */ @@ -631,16 +631,21 @@ fillBrowserColumn(WMBrowser *bPtr, int column) if (column > 0) { menuList = getItemOfSelectedEntry(panel->browser); + + WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList); + if (column > WMGetBrowserFirstVisibleColumn(bPtr)) WMSetTextFieldText(panel->tit2T, getItemTitle(menuList)); else WMSetTextFieldText(panel->tit1T, getItemTitle(menuList)); } else { menuList = panel->menu; + + WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList); + WMSetTextFieldText(panel->tit1T, getItemTitle(panel->menu)); } - WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList); for (i=1; iwin), panel->win, - _("Error"), _("Could not copy default plmenu file " - "from ~/GNUstep/Library/WindowMaker"), - _("OK"), NULL, NULL); - return NULL; + _("Error"), buffer, _("OK"), NULL, NULL); } } free(gspath); free(menuPath); - pmenu = preProcessMenu(menu, hasWSMenu); - PLRelease(menu); + if (menu) { + pmenu = preProcessMenu(menu, hasWSMenu); + PLRelease(menu); + } else { + pmenu = NULL; + } return pmenu; } @@ -1322,8 +1332,7 @@ showData(_Panel *panel) char *gspath; char *menuPath; proplist_t menu, pmenu, plPath; - char buffer[512]; - int hasWSMenu=0; + int hasWSMenu = 0; gspath = wusergnusteppath(); @@ -1336,22 +1345,13 @@ showData(_Panel *panel) pmenu = NULL; if (!menu || !PLIsArray(menu)) { - sprintf(buffer, _("The format of the menu in ~/G/D/WMRootMenu is " - "not recognized by WPrefs. It might be in a format different " - "than the one supported by WPrefs or contain a syntax error. " - "Do you want to continue using the current menu to edit " - "it by hand later or replace it with a default menu in the new " - "format?")); - if (WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, - _("Warning"), buffer, _("Keep current menu"), - _("Install default menu"), NULL)!=WAPRDefault) { + if (AskMenuCopy(panel->win)) { panel->dontSave = 0; pmenu = getDefaultMenu(panel, &hasWSMenu); } else { - WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, - _("Warning"), _("Any changes made in this section will not be saved"), - _("OK"), NULL, NULL); + WMSetPopUpButtonEnabled(panel->cmd1P, False); + WMSetPopUpButtonEnabled(panel->cmd2P, False); panel->dontSave = 1; } if (!pmenu) { diff --git a/WPrefs.app/MouseSettings.c b/WPrefs.app/MouseSettings.c index ca1e1d69..bfaaaa58 100644 --- a/WPrefs.app/MouseSettings.c +++ b/WPrefs.app/MouseSettings.c @@ -253,6 +253,8 @@ showData(_Panel *panel) Display *dpy = WMScreenDisplay(WMWidgetScreen(panel->win)); str = GetStringForKey("SelectWindowsMouseButton"); + if (!str) + str = "left"; i = getbutton(str); if (i==-1) { a = 0; @@ -264,6 +266,8 @@ showData(_Panel *panel) } str = GetStringForKey("WindowListMouseButton"); + if (!str) + str = "middle"; i = getbutton(str); if (i==-1) { b = 0; @@ -275,6 +279,8 @@ showData(_Panel *panel) } str = GetStringForKey("ApplicationMenuMouseButton"); + if (!str) + str = "right"; i = getbutton(str); if (i==-1) { c = 0; @@ -319,9 +325,10 @@ showData(_Panel *panel) /**/ str = GetStringForKey("ModifierKey"); - + if (!str) + str = "mod1"; a = ModifierFromKey(dpy, str); - + if (a != -1) { str = modifierNames[a]; @@ -334,7 +341,7 @@ showData(_Panel *panel) } } } - + if (a < 1) { sscanf(WMGetPopUpButtonItem(panel->grabP, 0), "%s", buffer); WMSetPopUpButtonSelectedItem(panel->grabP, 0); @@ -528,8 +535,8 @@ createPanel(Panel *p) free(path); } - buf1 = wmalloc(strlen(SPEED_IMAGE)+1); - buf2 = wmalloc(strlen(SPEED_IMAGE_S)+1); + buf1 = wmalloc(strlen(SPEED_IMAGE)+2); + buf2 = wmalloc(strlen(SPEED_IMAGE_S)+2); for (i = 0; i < 5; i++) { panel->speedB[i] = WMCreateCustomButton(panel->speedF, @@ -601,8 +608,8 @@ createPanel(Panel *p) WMMoveWidget(panel->ddelaF, 15, 125); WMSetFrameTitle(panel->ddelaF, _("Double-Click Delay")); - buf1 = wmalloc(strlen(DELAY_ICON)+1); - buf2 = wmalloc(strlen(DELAY_ICON_S)+1); + buf1 = wmalloc(strlen(DELAY_ICON)+2); + buf2 = wmalloc(strlen(DELAY_ICON_S)+2); for (i = 0; i < 5; i++) { panel->ddelaB[i] = WMCreateCustomButton(panel->ddelaF, @@ -855,18 +862,22 @@ storeData(_Panel *panel) int i; char *tmp, *p; static char *button[3] = {"left", "middle", "right"}; + WMUserDefaults *udb = WMGetStandardUserDefaults(); + + if (!WMGetUDBoolForKey(udb, "NoXSetStuff")) { + tmp = WMGetTextFieldText(panel->threT); + if (strlen(tmp)==0) { + free(tmp); + tmp = wstrdup("4"); + } + + sprintf(buffer, XSET" m %i/%i %s\n", (int)(panel->acceleration*10), + 10, tmp); + storeCommandInScript(XSET" m", buffer); - tmp = WMGetTextFieldText(panel->threT); - if (strlen(tmp)==0) { free(tmp); - tmp = wstrdup("0"); } - sprintf(buffer, XSET" m %i/%i %s\n", (int)(panel->acceleration*10),10, tmp); - storeCommandInScript(XSET" m", buffer); - - free(tmp); - for (i=0; i<5; i++) { if (WMGetButtonSelected(panel->ddelaB[i])) break; @@ -874,7 +885,7 @@ storeData(_Panel *panel) SetIntegerForKey(DELAY(i), "DoubleClickTime"); SetBoolForKey(WMGetButtonSelected(panel->disaB), "DisableWSMouseActions"); - + for (i=0; i<3; i++) { if (WMGetButtonSelected(panel->amb[i])) break; diff --git a/WPrefs.app/NoMenuAlert.c b/WPrefs.app/NoMenuAlert.c new file mode 100644 index 00000000..fd8809f7 --- /dev/null +++ b/WPrefs.app/NoMenuAlert.c @@ -0,0 +1,127 @@ +/* NoMenuAlert.c - warn user that menu can't be edited with WPrefs + * + * WPrefs - Window Maker Preferences Program + * + * Copyright (c) 1999 Alfredo K. Kojima + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + + +#include "WPrefs.h" + + +typedef struct NoMenuPanel { + WMWindow *wwin; + + WMLabel *text; + + WMButton *copyBtn; + WMButton *keepBtn; + + int finished; + int copy; +} NoMenuPanel; + + +#define MESSAGE_TEXT \ + " The menu that is being used now could not be opened. "\ + "This either means that there is a syntax error in it or that "\ + "the menu is in a format not supported by WPrefs (WPrefs only "\ + "supports property list menus).\n"\ + " If you want to change the current menu, please read "\ + "the '%s' file, press 'Keep Current Menu' and edit it with a "\ + "text editor.\n"\ + " If you want to use this editor, press 'Copy Default Menu'. "\ + "It will copy the default menu and will instruct Window Maker "\ + "to use it instead of the current one.\n"\ + " If you want more flexibility, keep using the current one "\ + "as it allows you to use C preprocessor (cpp) macros, while being "\ + "easy to edit." + + +static void +closeCallback(WMWidget *self, void *data) +{ + NoMenuPanel *panel = (NoMenuPanel*)data; + + panel->finished = True; +} + + +static void +buttonCallback(WMWidget *self, void *data) +{ + NoMenuPanel *panel = (NoMenuPanel*)data; + + panel->finished = True; + if (self == panel->keepBtn) + panel->copy = False; + else + panel->copy = True; +} + + +Bool +AskMenuCopy(WMWindow *wwin) +{ + NoMenuPanel panel; + char buffer[1024]; + + panel.wwin = WMCreatePanelForWindow(wwin, "noMenuAlert"); + WMResizeWidget(panel.wwin, 430, 260); + WMSetWindowTitle(panel.wwin, "Warning"); + WMSetWindowCloseAction(panel.wwin, closeCallback, &panel); + + panel.text = WMCreateLabel(panel.wwin); + WMResizeWidget(panel.text, 370, 200); + WMMoveWidget(panel.text, 30, 20); + + sprintf(buffer, _(MESSAGE_TEXT), "shit/ewq/ewq/rweq"); + WMSetLabelText(panel.text, buffer); + + panel.copyBtn = WMCreateCommandButton(panel.wwin); + WMResizeWidget(panel.copyBtn, 180, 24); + WMMoveWidget(panel.copyBtn, 30, 225); + WMSetButtonText(panel.copyBtn, _("Copy Default Menu")); + WMSetButtonAction(panel.copyBtn, buttonCallback, &panel); + + panel.keepBtn = WMCreateCommandButton(panel.wwin); + WMResizeWidget(panel.keepBtn, 180, 24); + WMMoveWidget(panel.keepBtn, 225, 225); + WMSetButtonText(panel.keepBtn, _("Keep Current Menu")); + WMSetButtonAction(panel.keepBtn, buttonCallback, &panel); + + WMMapSubwidgets(panel.wwin); + WMRealizeWidget(panel.wwin); + WMMapWidget(panel.wwin); + + panel.finished = False; + panel.copy = False; + + while (!panel.finished) { + XEvent event; + + WMNextEvent(WMScreenDisplay(WMWidgetScreen(panel.wwin)), &event); + WMHandleEvent(&event); + } + + WMDestroyWidget(panel.wwin); + + return panel.copy; +} + + diff --git a/WPrefs.app/Paths.c b/WPrefs.app/Paths.c index 88e9fee7..bf4bcf1f 100644 --- a/WPrefs.app/Paths.c +++ b/WPrefs.app/Paths.c @@ -365,6 +365,9 @@ createPanel(Panel *p) WMAddNotificationObserver(textBeginObserver, panel, WMTextDidBeginEditingNotification, panel->pixT); + WMSetTextFieldNextTextField(panel->pixT, panel->icoT); + WMSetTextFieldPrevTextField(panel->pixT, panel->icoT); + WMMapSubwidgets(panel->pixF); WMRealizeWidget(panel->frame); diff --git a/WPrefs.app/Preferences.c b/WPrefs.app/Preferences.c index a8f181aa..ddfac4e3 100644 --- a/WPrefs.app/Preferences.c +++ b/WPrefs.app/Preferences.c @@ -60,6 +60,8 @@ showData(_Panel *panel) char *str; str = GetStringForKey("ResizeDisplay"); + if (!str) + str = "corner"; if (strcasecmp(str, "corner")==0) WMSetPopUpButtonSelectedItem(panel->sizeP, 0); else if (strcasecmp(str, "center")==0) @@ -70,6 +72,8 @@ showData(_Panel *panel) WMSetPopUpButtonSelectedItem(panel->sizeP, 3); str = GetStringForKey("MoveDisplay"); + if (!str) + str = "corner"; if (strcasecmp(str, "corner")==0) WMSetPopUpButtonSelectedItem(panel->posiP, 0); else if (strcasecmp(str, "center")==0) diff --git a/WPrefs.app/README b/WPrefs.app/README index 0aa844e0..618fb303 100644 --- a/WPrefs.app/README +++ b/WPrefs.app/README @@ -37,12 +37,11 @@ License ------- Like Window Maker, WPrefs is distributed with through the General Public -License (as stated in the file COPYING). As an exception, the icons and -original graphical artwork included with WPrefs has the additional -restriction that they must not be redistributed without the rest of the -Window Maker distribution. In other words, you can use and distribute the -WPrefs icons freely, as long as they are distributed for use with Window -Maker (ripping the icons and putting them in your program is prohibited). +License (as stated in the file COPYING). + +The graphical artwork included with WPrefs is NOT licensed through the GPL. +It is licensed through the OpenContent License, instead. Please read the +COPYING.OPL file for the detailed license. Notes diff --git a/WPrefs.app/TexturePanel.c b/WPrefs.app/TexturePanel.c index 1f6c049c..47f359b5 100644 --- a/WPrefs.app/TexturePanel.c +++ b/WPrefs.app/TexturePanel.c @@ -245,9 +245,8 @@ buttonCallback(WMWidget *self, void *data) /* Pixmap Panel Buttons */ } else if (self == panel->pbrowB) { - - op = WMGetOpenPanel(WMWidgetScreen(panel->pbrowB)); - if (WMRunModalOpenPanelForDirectory(op, NULL, "/usr/local", NULL, NULL)) { + op = WMGetOpenPanel(WMWidgetScreen(panel->pbrowB)); + if (WMRunModalFilePanelForDirectory(op, NULL, "/usr/local", NULL, NULL)) { char *path; path = WMGetFilePanelFileName(op); WMSetTextFieldText(panel->pimagT, path); diff --git a/WPrefs.app/WPrefs.c b/WPrefs.app/WPrefs.c index 20b5292a..9f900775 100644 --- a/WPrefs.app/WPrefs.c +++ b/WPrefs.app/WPrefs.c @@ -460,7 +460,6 @@ Initialize(WMScreen *scr) break; } } - RFreeStringList(list); if (TIFFOK) path = WMPathForResourceOfType("WPrefs.tiff", NULL); @@ -495,7 +494,7 @@ Initialize(WMScreen *scr) loadConfigurations(scr, WPrefs.win); WMSetLabelText(WPrefs.statusL, _("Initializing configuration panels...")); - +#if 1 InitWindowHandling(scr, WPrefs.win); InitFocus(scr, WPrefs.win); InitMenuPreferences(scr, WPrefs.win); @@ -505,7 +504,9 @@ Initialize(WMScreen *scr) InitPaths(scr, WPrefs.win); InitWorkspace(scr, WPrefs.win); InitConfigurations(scr, WPrefs.win); +#endif InitMenu(scr, WPrefs.win); +#if 1 #ifdef not_yet_fully_implemented InitKeyboardSettings(scr, WPrefs.win); #endif @@ -518,15 +519,14 @@ Initialize(WMScreen *scr) InitThemes(scr, WPrefs.win); #endif InitExpert(scr, WPrefs.win); - +#endif WMRealizeWidget(WPrefs.scrollV); WMSetLabelText(WPrefs.statusL, - _("WPrefs is free software and is distributed WITHOUT ANY " - "WARRANTY under the terms of the GNU General Public License. " - "Redistribution of the icons in this program separately " - "from the program is prohibited.")); - + _("WPrefs is free software and is distributed WITHOUT ANY\n" + "WARRANTY under the terms of the GNU General Public License.\n" + "The icons in this program are licensed through the\n" + "OpenContent License.")); } @@ -580,8 +580,10 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw) if (sscanf(buffer, "Window Maker %i.%i.%i",&v1,&v2,&v3)!=3 && sscanf(buffer, "WindowMaker %i.%i.%i",&v1,&v2,&v3)!=3) { WMRunAlertPanel(scr, mainw, _("Error"), - _("Could not extract version from Window Maker. Make sure it is correctly installed."), - _("OK"), NULL, NULL); + _("Could not extract version from Window Maker. " + "Make sure it is correctly installed and the path " + "where it installed is in the PATH environment " + "variable."), _("OK"), NULL, NULL); exit(1); } if (v1 == 0 && (v2 < 18 || v3 < 0)) { @@ -601,7 +603,14 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw) if (!file || !fgets(buffer, 1023, file)) { wsyserror(_("could not run \"wmaker --global_defaults_path\".")); exit(1); + } else { + char *ptr; + ptr = strchr(buffer, '\n'); + if (ptr) + *ptr = 0; + strcat(buffer, "/WindowMaker"); } + if (file) pclose(file); @@ -849,6 +858,9 @@ GetSpeedForKey(char *defaultName) int i; str = GetStringForKey(defaultName); + if (!str) + return 2; + if (strcasecmp(str, "ultraslow")==0) i = 0; else if (strcasecmp(str, "slow")==0) diff --git a/WPrefs.app/WPrefs.h b/WPrefs.app/WPrefs.h index 6939658e..35a245dc 100644 --- a/WPrefs.app/WPrefs.h +++ b/WPrefs.app/WPrefs.h @@ -42,8 +42,8 @@ /****/ -#define WVERSION "0.10" -#define WMVERSION "0.50.x" +#define WVERSION "0.11" +#define WMVERSION "0.51.x" typedef struct _Panel Panel; diff --git a/WPrefs.app/WPrefs.tiff b/WPrefs.app/WPrefs.tiff dissimilarity index 100% index 1435461016324b1ff0c3e2b6869bf5e1004ff8be..9038572a91ae893b5f3e573457a792d5b729ff4f 100644 GIT binary patch delta 3588 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 delta 2473 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 diff --git a/WPrefs.app/WPrefs.xpm b/WPrefs.app/WPrefs.xpm dissimilarity index 99% index d6d9c917..6d03f461 100644 --- a/WPrefs.app/WPrefs.xpm +++ b/WPrefs.app/WPrefs.xpm @@ -1,237 +1,426 @@ -/* XPM */ -static char * image_name[] = { -"45 45 189 2", -" c None", -". c #186175D60000", -"X c #000000000000", -"o c #082004100820", -"O c #082008200820", -"+ c #4924A28930C2", -"@ c #514451445144", -"# c #492449244924", -"$ c #49244D344924", -"% c #208179E70820", -"& c #104010401040", -"* c #28A22CB228A2", -"= c #38E338E338E3", -"- c #28A228A228A2", -"; c #30C22CB230C2", -": c #186114511861", -"> c #514455555965", -", c #10400C301040", -"< c #186118611861", -"1 c #208120812081", -"2 c #2081249228A2", -"3 c #186171C60000", -"4 c #28A282071040", -"5 c #28A27DF70820", -"6 c #28A2249228A2", -"7 c #30C230C230C2", -"8 c #410341034103", -"9 c #30C292482081", -"0 c #30C234D338E3", -"q c #79E77DF78617", -"w c #C71BC71BC71B", -"e c #71C675D671C6", -"r c #965892489658", -"t c #FFFFFFFFFFFF", -"y c #EFBEEFBEEFBE", -"u c #5144AAAA38E3", -"i c #A699FFFF8E38", -"p c #596559656185", -"a c #AEBA10401040", -"s c #E79D14511861", -"d c #208104100000", -"f c #FFFF61856185", -"g c #F7DE2CB22081", -"h c #C71BAAAAA699", -"j c #DF7D14511861", -"k c #71C608200820", -"l c #FFFF30C230C2", -"z c #E79D20811861", -"x c #79E714511861", -"c c #28A204100000", -"v c #EFBE18611861", -"b c #79E70C300820", -"n c #FFFFE38DE79D", -"m c #FFFF28A228A2", -"M c #E79D18611861", -"N c #8E381C711861", -"B c #596559655965", -"V c #861749240820", -"C c #D75C24921040", -"Z c #B6DA10401040", -"A c #B6DA14511040", -"S c #10403CF30000", -"D c #69A6C30B5144", -"F c #CF3C96585144", -"G c #EFBE38E328A2", -"H c #BEFB18611861", -"J c #410375D638E3", -"K c #30C28E381861", -"L c #38E33CF34103", -"P c #A69910401040", -"I c #8E380C300820", -"U c #CF3C14511040", -"Y c #FFFF59655965", -"T c #D75C41034103", -"R c #965820811861", -"E c #DF7D20812081", -"W c #596508200820", -"Q c #38E304100820", -"! c #FFFF34D338E3", -"~ c #8E3838E338E3", -"^ c #6185492428A2", -"/ c #F7DE20812081", -"( c #8E388A288E38", -") c #30C204100000", -"_ c #104000000000", -"` c #FFFFD34CD75C", -"' c #FFFF20812081", -"] c #28A220812081", -"[ c #69A6A2895965", -"{ c #F7DE24922081", -"} c #492414511040", -"| c #AEBAAEBAAEBA", -" . c #86170C300820", -".. c #69A608200820", -"X. c #104059650000", -"o. c #FFFF8A288E38", -"O. c #F7DE38E338E3", -"+. c #9E79EFBE8617", -"@. c #71C614511040", -"#. c #861786178617", -"$. c #965810401040", -"%. c #208151441040", -"&. c #FFFF45144103", -"*. c #D75C34D338E3", -"=. c #FFFF49244924", -"-. c #9E791C712081", -";. c #618565956185", -":. c #492404100820", -">. c #38E35D7528A2", -",. c #C71BC30BC71B", -"<. c #8617E38D69A6", -"1. c #FFFF249228A2", -"2. c #69A628A228A2", -"3. c #FFFF65956185", -"4. c #C71B20812081", -"5. c #28A26DB60000", -"6. c #FFFF18611861", -"7. c #E79D1C711861", -"8. c #30C2492428A2", -"9. c #FFFFF3CEEFBE", -"0. c #B6DAB6DAB6DA", -"q. c #FFFFA2899E79", -"w. c #E79D20812081", -"e. c #51445D750820", -"r. c #F7DE1C711861", -"t. c #618549240820", -"y. c #18616DB60000", -"u. c #9E7941031040", -"i. c #A69934D31040", -"p. c #186120811040", -"a. c #BEFBC71B69A6", -"s. c #AEBA92485144", -"d. c #D75C7DF74924", -"f. c #CF3C618538E3", -"g. c #AEBAF3CE8617", -"h. c #104018610820", -"j. c #F7DE1C712081", -"k. c #18610C300820", -"l. c #AEBAA289A699", -"z. c #BEFB45144103", -"x. c #618561856185", -"c. c #104004100820", -"v. c #EFBE28A228A2", -"b. c #69A610401040", -"n. c #79E718611861", -"m. c #51442CB228A2", -"M. c #79E779E779E7", -"N. c #F7DE30C230C2", -"B. c #F7DE18611861", -"V. c #410304100820", -"C. c #E79D34D330C2", -"Z. c #C71B18611861", -"A. c #F7DE28A22081", -"S. c #DF7DA289A699", -"D. c #F7DE28A228A2", -"F. c #E79D30C230C2", -"G. c #D75CD34CD75C", -"H. c #EFBE41034103", -"J. c #C71B14511040", -"K. c #000014510000", -"L. c #514408200820", -"P. c #C71B59655965", -"I. c #B6DA249228A2", -"U. c #492410401040", -"Y. c #208110401040", -"T. c #082010400820", -"R. c #FFFF7DF779E7", -"E. c #618514511040", -"W. c #AEBA45144103", -"Q. c #000008200000", -"!. c #DF7D2CB22081", -"~. c #59655D755965", -"^. c #71C671C671C6", -"/. c #AEBAAAAAAEBA", -"(. c #69A66DB671C6", -"). c #28A282070820", -"_. c #71C6CB2B5965", -"`. c #A699FBEE8E38", -"'. c #69A6C71B5144", -"]. c #E79DE79DE79D", -"[. c #FFFFFBEEFFFF", -"{. c #BEFBBEFBBEFB", -"}. c #8E388E389658", -"|. c #A699A699A699", -" X c #9E79A2899E79", -".X c #DF7DDF7DDF7D", -"XX c #F7DEF7DEF7DE", -"oX c #861782078617", -"OX c #71C6D34C5965", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . ", -". . . . . . ", -". . . . . . ", -". . o X O + @ # # # # # # $ % X . . ", -". . & * $ = - . X X X X X X X X . ; ; o . . ", -". . : > - , X X . X X X X X X X X . X o O , X . . ", -". . < 1 , X X X X . X X X X X X X X . X X X o X 2 . . ", -". . . . . . . . 3 % 4 . . . . . . . . . . . . . . . . . . . . . % 5 . . . . . . . . . . . ", -". % 2 X X X X X X X . X X X X X X X X . X 6 7 ; 7 ; = 8 9 0 0 0 0 . ", -". < % X X X X X X X X . X X X X X X X X . X q w w w w w e % X X X X . ", -". < 6 . X X X X X X X X . X X X X X X X X . X r t t t t t y u X X X X . ", -". X o X . X X X X X X X X . X X X X X X X X . X r t t t t t t i p X X X . ", -". O : X . X X X X a s d X . X X X X X X X X . X r t t t t t f g h : X X . ", -". X < X X . X X X X s j k X . X X X X X X X X . X r t t t t t l z x > X X . ", -". X O X X . X X X c v j b X . X X X X X X X X . X r t t t t n m M N B & X . ", -". . . . . . . . . . . . V C Z A S . . . . . . . . . . . D i i i i F G A H J K . . . . . . ", -". L X X X . X X X Z P I U X . X X X X X X X X . X r t t t t Y T R E 8 @ X . ", -". : X X X . X X X j W Q v X . X X X X X X X X . X r t t t t ! ~ ^ / ; ( , . ", -". X X X X . X X ) v _ X v Q . X X X X X X X X . X r t t t ` ' ] [ { } | : . ", -". X X X X . X X .U X X j ..X.X X X X X X X X . X r t t t o.O., +.! @.#.: . ", -". X X X X . X X U Z X X U $.%.; * ; * * ; ; - K ; | t t t &.*.; i =.-.;.< . ", -". X X X X . X X v :.X X a H >.w ,.w w w w w w <.w y t t t 1.2.$ i 3.4.# : . ", -". X X X ) 5.X ) 6.X X X ..7.8.t t t t t t t t i t ` 9.t ` 6., 0.i q.w.7 : . ", -". . . . % . e.r.t.y.u.i.X . . 5.r.p.i i i i i i i i i a.{ s.+.d.f.X i i g.r.h.5 . . . . . ", -". = X v v s _ U .X X X X j.k.t t t t t t t t i m ' s l.&.z.x.t i t ' c.X . ", -". 6 W 6.Q 6...s c X X X X v.b.y t t t t t t t i 6.} 6.n.m m.M.t i t N...X . ", -"r.B.6.6.6.6.V.X 7.v U X X X X X C.Z.6.1.m m m ' { { A.S.X D.v F.: G.t i t H.J.6.v v v v . ", -"K.X X X X X X X u.v L.X X X X X P.v I.L.U.} } Y., & T.: ,.R.v E.7 t t i y W.v P L.Q Q Q Q.", -". & , X . X X X X X X X r !., ~.t t t t t t i t t t ^.& /.t t i ,.: U X X X X X X.", -". o < X . X X X X X X X r i 7 t t t t t t t i t t t t t t t t i (.X X X . ", -". X X . X X X X X X X r i t t t t t t t t i t t t t t t t t D , X X X . ", -". . . . 3 3 3 . . % ).).).).).)._.i i i i i i i i i i i i i i i i `.'.% . . . . . . . . . ", -". X X X X . - r | | | | | ].i t t t t t t t t i t t t t t [.{.7 . X X X X . ", -". X X X X . , $ w t t t t t i t t t t t t t t i t t t t t }.7 X . X X X X . ", -". X X X X . X X 1 |.t t t t i t t t t t t t t i t t t ].}., X X . X X X X . ", -". X X X X . X X X X 6 X.XXXi t t t t t t t t i XX.X X6 X X X X . X X X X . ", -". X X X X . X X X X X X = oXOXw w t t t t w w OXoX= X X X X X X . X X X X . ", -". X X X X . X X X X X X X X % 7 ; ;.;.;.;.; ; % X X X X X X X X . X X X X . ", -". X X X X 3 X X X X X X X X . X X X X X X X X . X X X X X X X X . X X X X . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". . . . . . ", -". . . . . . ", -". . . . . . ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; +/* XPM */ +static char * WPrefs3D_xpm[] = { +"48 48 375 2", +" c None", +". c #A3FF84", +"+ c #77B563", +"@ c #4A4A4A", +"# c #39393B", +"$ c #353537", +"% c #323234", +"& c #2E2E31", +"* c #2C2C2E", +"= c #29292B", +"- c #262628", +"; c #73B15F", +"> c #393939", +", c #6C6C6C", +"' c #626266", +") c #83A479", +"! c #808080", +"~ c #6F6F70", +"{ c #626263", +"] c #585859", +"^ c #4E4E4F", +"/ c #444446", +"( c #3C3C3D", +"_ c #303031", +": c #4D6F42", +"< c #242427", +"[ c #292929", +"} c #1C1C1C", +"| c #9A9A9B", +"1 c #9C9C9E", +"2 c #949495", +"3 c #878787", +"4 c #88A67D", +"5 c #6D6D6D", +"6 c #606060", +"7 c #545454", +"8 c #3F3F3F", +"9 c #353535", +"0 c #2C2C2C", +"a c #1F1F1F", +"b c #44633A", +"c c #0D0D0D", +"d c #030303", +"e c #000000", +"f c #7AB765", +"g c #96B88B", +"h c #A0BE97", +"i c #9EBC94", +"j c #91AF87", +"k c #84A37A", +"l c #7D9B73", +"m c #75936B", +"n c #6C8B62", +"o c #66845B", +"p c #607E55", +"q c #59774F", +"r c #537149", +"s c #4E6C43", +"t c #46653C", +"u c #405F36", +"v c #3B5931", +"w c #35542B", +"x c #538144", +"y c #70AD5B", +"z c #1C1C1D", +"A c #8F8F91", +"B c #ADADAD", +"C c #9A9A9A", +"D c #888888", +"E c #777777", +"F c #666666", +"G c #749269", +"H c #525252", +"I c #474747", +"J c #373737", +"K c #2D2D2D", +"L c #262626", +"M c #1D1D1D", +"N c #141414", +"O c #3D5B33", +"P c #020202", +"Q c #050505", +"R c #9F9FA3", +"S c #A9A9A9", +"T c #9D9D9D", +"U c #828282", +"V c #727272", +"W c #5B5B5B", +"X c #6D8B63", +"Y c #414141", +"Z c #303030", +"` c #272727", +" . c #171717", +".. c #39572F", +"+. c #040404", +"@. c #060606", +"#. c #070707", +"$. c #080808", +"%. c #111111", +"&. c #29292D", +"*. c #506E48", +"=. c #28282C", +"-. c #28282B", +";. c #1F1F22", +">. c #050506", +",. c #79B765", +"'. c #939393", +"). c #A5A5A5", +"!. c #999999", +"~. c #737373", +"{. c #696969", +"]. c #565656", +"^. c #6A885F", +"/. c #464646", +"(. c #3C3C3C", +"_. c #232323", +":. c #1B1B1B", +"<. c #090909", +"[. c #37552C", +"}. c #181818", +"|. c #797979", +"1. c #757575", +"2. c #6B6B6B", +"3. c #6F6F6F", +"4. c #0F0F0F", +"5. c #1E1E1E", +"6. c #98B98C", +"7. c #ABABAB", +"8. c #8B8B8B", +"9. c #FF1818", +"0. c #5C5C5C", +"a. c #67855D", +"b. c #424242", +"c. c #313131", +"d. c #202020", +"e. c #505050", +"f. c #DFDFDF", +"g. c #F4F4F4", +"h. c #F1F1F1", +"i. c #ECECEC", +"j. c #BFBFBF", +"k. c #454546", +"l. c #A6C49C", +"m. c #9F9F9F", +"n. c #7D7D7D", +"o. c #717171", +"p. c #4C0000", +"q. c #4D4D4D", +"r. c #64835A", +"s. c #3D3D3D", +"t. c #343434", +"u. c #242424", +"v. c #1A1A1A", +"w. c #131313", +"x. c #0A0A0A", +"y. c #585858", +"z. c #EAEAEA", +"A. c #FFFFFF", +"B. c #FEFEFE", +"C. c #FBFBFB", +"D. c #E9E9E9", +"E. c #A0BE96", +"F. c #919191", +"G. c #818181", +"H. c #494949", +"I. c #617F57", +"J. c #282828", +"K. c #E6E6E6", +"L. c #F5F5F5", +"M. c #E8E8E8", +"N. c #D8D8D8", +"O. c #4E4E51", +"P. c #A3A3A3", +"Q. c #9BBA91", +"R. c #8A8A8A", +"S. c #7B7B7B", +"T. c #707070", +"U. c #5E7D54", +"V. c #363636", +"W. c #555555", +"X. c #E4E4E4", +"Y. c #D9D9D9", +"Z. c #CECECE", +"`. c #747474", +" + c #94B38A", +".+ c #5C7A51", +"++ c #0E0E0E", +"@+ c #E1E1E1", +"#+ c #FAFAFA", +"$+ c #D0D0D0", +"%+ c #77B463", +"&+ c #92B387", +"*+ c #9BB991", +"=+ c #92B188", +"-+ c #89A77F", +";+ c #809E75", +">+ c #7B9971", +",+ c #547249", +"'+ c #4D6B43", +")+ c #47663D", +"!+ c #436139", +"~+ c #3C5B32", +"{+ c #37562D", +"]+ c #CAE8C0", +"^+ c #D9F8CF", +"/+ c #C9E7BF", +"(+ c #BDDCB3", +"_+ c #6CAA58", +":+ c #484849", +"<+ c #929292", +"[+ c #8EAD84", +"}+ c #646464", +"|+ c #56754C", +"1+ c #515151", +"2+ c #EEEEEE", +"3+ c #D6D6D6", +"4+ c #C5C5C5", +"5+ c #9FBD95", +"6+ c #404040", +"7+ c #8D8D8D", +"8+ c #8AA87F", +"9+ c #676767", +"0+ c #5F5F5F", +"a+ c #506E45", +"b+ c #D3D3D3", +"c+ c #E7E7E7", +"d+ c #BDBDBD", +"e+ c #9EBD94", +"f+ c #898989", +"g+ c #86A57C", +"h+ c #636363", +"i+ c #48673E", +"j+ c #161616", +"k+ c #101010", +"l+ c #4E4E4E", +"m+ c #CCCCCC", +"n+ c #E0E0E0", +"o+ c #C8C8C8", +"p+ c #9AB990", +"q+ c #868686", +"r+ c #858585", +"s+ c #84A279", +"t+ c #3B3B3B", +"u+ c #0C0C0C", +"v+ c #010101", +"w+ c #4F4F4F", +"x+ c #C3C3C3", +"y+ c #96B58C", +"z+ c #333333", +"A+ c #809F76", +"B+ c #5A5A5A", +"C+ c #3A3A3A", +"D+ c #3E3E3E", +"E+ c #5B7951", +"F+ c #484848", +"G+ c #DEDEDE", +"H+ c #BABABA", +"I+ c #989898", +"J+ c #92B088", +"K+ c #7E9C73", +"L+ c #CACACA", +"M+ c #D1D1D1", +"N+ c #CBCBCB", +"O+ c #D7D7D7", +"P+ c #C9C9C9", +"Q+ c #BEDCB4", +"R+ c #EDEDED", +"S+ c #E5E5E5", +"T+ c #8EAC84", +"U+ c #7C7C7C", +"V+ c #2B2B2B", +"W+ c #DBF9D0", +"X+ c #F2F2F2", +"Y+ c #B3B3B3", +"Z+ c #86A47B", +"`+ c #2F2F30", +" @ c #191919", +".@ c #F3F3F3", +"+@ c #FCFCFC", +"@@ c #F9F9F9", +"#@ c #EBEBEB", +"$@ c #C7E6BD", +"%@ c #A8A8A8", +"&@ c #5C7A52", +"*@ c #54724A", +"=@ c #4D6B42", +"-@ c #44623A", +";@ c #79976F", +">@ c #6B8961", +",@ c #2A2A2A", +"'@ c #2E2E2F", +")@ c #535353", +"!@ c #EFEFEF", +"~@ c #D5D5D5", +"{@ c #CDCDCD", +"]@ c #C6C6C6", +"^@ c #AFCDA4", +"/@ c #A4A4A4", +"(@ c #9C9C9C", +"_@ c #626262", +":@ c #66845C", +"<@ c #4B4B4C", +"[@ c #323232", +"}@ c #212121", +"|@ c #CFCFCF", +"1@ c #C0C0C0", +"2@ c #B6B6B6", +"3@ c #ABC9A0", +"4@ c #A7A7A7", +"5@ c #9E9E9E", +"6@ c #969696", +"7@ c #8F8F8F", +"8@ c #6E6E6E", +"9@ c #58764E", +"0@ c #5E7C53", +"a@ c #121212", +"b@ c #F8F8F8", +"c@ c #E3E3E3", +"d@ c #C2C2C2", +"e@ c #B1B1B1", +"f@ c #A7C59C", +"g@ c #A1A1A1", +"h@ c #7E7E7E", +"i@ c #416037", +"j@ c #679C56", +"k@ c #87A57D", +"l@ c #DBDBDB", +"m@ c #AAAAAA", +"n@ c #A2C098", +"o@ c #7F7F7F", +"p@ c #679457", +"q@ c #222222", +"r@ c #BCBCBC", +"s@ c #B5B5B5", +"t@ c #949494", +"u@ c #656565", +"v@ c #2A2A2B", +"w@ c #6D6D6E", +"x@ c #B7B7B7", +"y@ c #D2F0C8", +"z@ c #AFAFAF", +"A@ c #98B78E", +"B@ c #575757", +"C@ c #4C4C4C", +"D@ c #F6F6F6", +"E@ c #D7F6CD", +"F@ c #B8B8B8", +"G@ c #B0B0B0", +"H@ c #8E8E8E", +"I@ c #616161", +"J@ c #669356", +"K@ c #6C8A61", +"L@ c #628058", +"M@ c #5A784F", +"N@ c #527148", +"O@ c #4C6B42", +"P@ c #45643B", +"Q@ c #3E5C34", +"R@ c #4F6E45", +"S@ c #739169", +"T@ c #AECCA4", +"U@ c #ADCCA3", +"V@ c #A0BF96", +"W@ c #9CBA92", +"X@ c #97B68D", +"Y@ c #78966D", +"Z@ c #638159", +"`@ c #537249", +" # c #506F46", +".# c #787878", +"+# c #5C7B52", +"@# c #0B0B0B", +"## c #252525", +"$# c #3A5930", +"%# c #517E41", +" ", +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" . . . . . . ", +" . . . . . . ", +" . . . . . . ", +" . . . . . . ", +" . . . . . . ", +" . . + @ # $ % & * = - ; . . ", +" . . > , ' ) ! ~ { ] ^ / ( _ : < [ . . ", +" . . } | 1 2 3 4 5 6 7 @ 8 9 0 a b c d e e . . ", +" . . . . . . . . . . . . f g h i j k l m n o p q r s t u v w w w x y . . . . . . . . . . . . ", +" . . z A B C D E F G H I 8 J K L M N O d e e e P Q e . . ", +" . . a R S T U V F W X @ Y > Z ` a .c ..e e +.@.#.$.%.&.*.=.-.;.>. . ", +" . ,.'.).!.D ~.{.6 ].^./.(.9 K _.:.N <.[.e }.W |.1.2.3.4.w e e e e . ", +" . 5.6.7.T 8.|.9.9.0.H a.b.> c.[ d. .4.@.w e e.f.g.h.i.j.9.9.e e e e . ", +" . k.l.m.8.n.o.9.9.p.q.r.s.t.0 u.v.w.x.P w e y.z.A.B.C.D.9.9.p.e e e . ", +" . 1 E.F.G.1.5 9.9.p.H.I.> Z J.d. .4.#.e w e ].K.A.L.M.N.9.9.p.e e e . ", +" . O.P.Q.R.S.T.{.9.9.9./.U.V.0 u.} w.x.d e w e W.X.A.z.Y.Z.9.9.9.e e e . ", +" . `.!. +U `., 9.9.9.9.p..+Z ` a .++@.e e w e 7 @+#+@+$+9.9.9.9.p.e e . ", +" . . . . . . %+&+*+=+-+;+>+9.p.p.9.p.q ,+'+)+!+~+{+w w w w n ]+^+/+(+9.p.p.9.p.w _+. . . . . ", +" . :+C <+[+E , }+9.p.@ 9.p.|+[ d. .4.@.e e e w e 1+Y.2+3+4+9.p.5+9.p.e e . ", +" . 6+7+R.8+o.9+0+9.p./.9.p.a+d.}.%.<.P e e e w e e.b+c+Z.d+9.p.e+9.p.5.e . ", +" . J 3 f+g+5 h+9.9.p.Y 9.9.i+j+k+x.+.e e e e w e l+m+n+o+9.9.p.p+9.9.} e . ", +" . t.q+r+s+{.0+9.p.p.t+9.9.p.u+$.+.v+e e e e w e w+b+f.x+9.p.p.y+9.9.p.e . ", +" . z+r+! A+}+B+9.p.8 c.a 9.p.C+Y D+C+D+z+/.c.E+F+m.D.G+H+9.p.I+J+~.9.p.e . ", +" . t.U S.K+6 9.9.p.t+K M 9.p.L+$+$+M+m+N+O+P+Q+G+R+S+o+9.9.p.<+T+3.9.p.e . ", +" . z+U+9.>+0.9.9.p.J V+} 9.p.g.B.B.B.B.B.B.C.W+X+9.L+Y+9.9.p.8.Z+}+9.p.e . ", +" . `+9.9.9.y.9.p.p.z+L @9.p..@B.B.+@@@X+#@n+$@9.9.9.%@9.p.p.G.l y.9.p.e . ", +" . 9.9.9.9.9.9.9.p.9.p.9.p.&@*@=@-@9.p.9.9.9.9.9.9.9.9.9.9.p.9.p.9.p.j Z+;@>@9.p.9.9.9.9.9.. ", +" . p.p.p.p.p.p.p.p.9.9.9.p.V.,@d.N 9.9.9.p.p.p.p.p.p.p.p.p.p.9.9.9.p.G.3.G C+9.9.9.p.p.p.p.. ", +" . '@)@n 9.p.p.Z L :.k+k+9.p.p.!@f.~@{@]@d+^@B /@(@9.p.p.E _@:@a e 9.p.p. . ", +" . <@a.I p.[@,@}@}.++4.-+p.C.M.Y.|@o+1@2@3@4@5@6@7@p.S.8@W.9@$.e e p. . ", +" . } 0@s.t.[ d. @a@x.++4 h.b@c@b+P+d@H+e@f@g@I+F.D h@T.0.t.i@P e e e . ", +" . j@(.V+ @%.u+<.Q u+k@h.X+l@m+x+H+Y+m@n@C F.f+o@T.F H } [.e e e e . ", +" . @9 c.p@t+` } %.%.k+4.q@e+b@X+3+]@r@s@B P.i t@R.! 3.W e.K x.w e e e e . ", +" . [@u@0.>@s.v@w@m@Y+).m.x@y@B.S+{@1@2@z@4@5@A@8.n.8@B+V.q@<.e w e e e e . ", +" . 0 B@C@I.t.L }., |@K.g.D@E@G+x+F@G@4@m.I+H@8+`.I@W.Z @.e e e w e e e e . ", +" . . . . . . J@K@L@M@N@O@P@Q@R@S@5+T@U@3@V@W@X@=+T+8+s+Y@S@Z@`@Q@w w w w w w w w _+. . . . . ", +" . J.@ V. #d. @w.u+Q #.v.C@A+U ! U+.#o.2.F W +#Z .@.v+e e e e w e e e e . ", +" . v.0 }.i@++@##.+.v+e e e w @} q@` ##_.M .$#e e e e e e e e w e e e e . ", +" . P P e %#e e e e e e e e %#e e e e e e e e %#e e e e e e e e %#e e e e . ", +" . . . . . . ", +" . . . . . . ", +" . . . . . . ", +" . . . . . . ", +" . . . . . . ", +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" "}; diff --git a/WPrefs.app/WindowHandling.c b/WPrefs.app/WindowHandling.c index 252c0b2a..d7c10174 100644 --- a/WPrefs.app/WindowHandling.c +++ b/WPrefs.app/WindowHandling.c @@ -41,7 +41,11 @@ typedef struct _Panel { WMSlider *vsli; WMSlider *hsli; - + + WMFrame *resF; + WMSlider *resS; + WMLabel *resL; + WMFrame *maxiF; WMButton *miconB; WMButton *mdockB; @@ -93,9 +97,31 @@ sliderCallback(WMWidget *w, void *data) } + +static void +resistanceCallback(WMWidget *w, void *data) +{ + _Panel *panel = (_Panel*)data; + char buffer[64]; + int i; + + i = WMGetSliderValue(panel->resS); + + if (i == 0) + WMSetLabelText(panel->resL, "OFF"); + else { + sprintf(buffer, "%i", i); + WMSetLabelText(panel->resL, buffer); + } +} + + static int getPlacement(char *str) { + if (!str) + return 0; + if (strcasecmp(str, "auto")==0 || strcasecmp(str, "smart")==0) return 0; else if (strcasecmp(str, "random")==0) @@ -139,7 +165,11 @@ showData(_Panel *panel) WMSetSliderValue(panel->vsli, y); sliderCallback(NULL, panel); - + + x = GetIntegerForKey("EdgeResistance"); + WMSetSliderValue(panel->resS, x); + resistanceCallback(NULL, panel); + WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace")); WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove")); @@ -166,6 +196,7 @@ storeData(_Panel *panel) sprintf(y, "%i", WMGetSliderValue(panel->vsli)); arr = PLMakeArrayFromElements(PLMakeString(x), PLMakeString(y), NULL); SetObjectForKey(arr, "WindowPlaceOrigin"); + SetIntegerForKey(WMGetSliderValue(panel->resS), "EdgeResistance"); PLRelease(arr); } @@ -187,27 +218,27 @@ createPanel(Panel *p) /************** Window Placement ***************/ panel->placF = WMCreateFrame(panel->frame); - WMResizeWidget(panel->placF, 270, 150); - WMMoveWidget(panel->placF, 20, 15); + WMResizeWidget(panel->placF, 270, 110); + WMMoveWidget(panel->placF, 20, 10); WMSetFrameTitle(panel->placF, _("Window Placement")); panel->placP = WMCreatePopUpButton(panel->placF); - WMResizeWidget(panel->placP, 195, 20); - WMMoveWidget(panel->placP, 35, 20); + WMResizeWidget(panel->placP, 120, 20); + WMMoveWidget(panel->placP, 15, 20); WMAddPopUpButtonItem(panel->placP, _("Automatic")); WMAddPopUpButtonItem(panel->placP, _("Random")); WMAddPopUpButtonItem(panel->placP, _("Manual")); WMAddPopUpButtonItem(panel->placP, _("Cascade")); panel->porigL = WMCreateLabel(panel->placF); - WMResizeWidget(panel->porigL, 118, 32); - WMMoveWidget(panel->porigL, 5, 60); + WMResizeWidget(panel->porigL, 138, 32); + WMMoveWidget(panel->porigL, 5, 45); WMSetLabelTextAlignment(panel->porigL, WACenter); WMSetLabelText(panel->porigL, _("Placement Origin")); panel->porigvL = WMCreateLabel(panel->placF); - WMResizeWidget(panel->porigvL, 70, 20); - WMMoveWidget(panel->porigvL, 25, 95); + WMResizeWidget(panel->porigvL, 80, 20); + WMMoveWidget(panel->porigvL, 30, 75); WMSetLabelTextAlignment(panel->porigvL, WACenter); color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True); @@ -219,16 +250,16 @@ createPanel(Panel *p) swidth = WidthOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr))); sheight = HeightOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr))); - if (120*sheight/swidth < 80*swidth/sheight) { - width = 80*swidth/sheight; - height = 80; + if (120*sheight/swidth < 70*swidth/sheight) { + width = 70*swidth/sheight; + height = 70; } else { height = 120*sheight/swidth; width = 120; } WMResizeWidget(panel->porigF, width, height); - WMMoveWidget(panel->porigF, 125+(120-width)/2, 45+(80-height)/2); - + WMMoveWidget(panel->porigF, 135+(120-width)/2, 20+(70-height)/2); + panel->porigW = WMCreateLabel(panel->porigF); WMResizeWidget(panel->porigW, THUMB_SIZE, THUMB_SIZE); WMMoveWidget(panel->porigW, 2, 2); @@ -237,14 +268,14 @@ createPanel(Panel *p) panel->hsli = WMCreateSlider(panel->placF); WMResizeWidget(panel->hsli, width, 12); - WMMoveWidget(panel->hsli, 125+(120-width)/2, 45+(80-height)/2+height+2); + WMMoveWidget(panel->hsli, 135+(120-width)/2, 20+(70-height)/2+height+2); WMSetSliderAction(panel->hsli, sliderCallback, panel); WMSetSliderMinValue(panel->hsli, 0); WMSetSliderMaxValue(panel->hsli, swidth); panel->vsli = WMCreateSlider(panel->placF); WMResizeWidget(panel->vsli, 12, height); - WMMoveWidget(panel->vsli, 125+(120-width)/2+width+2, 45+(80-height)/2); + WMMoveWidget(panel->vsli, 135+(120-width)/2+width+2, 20+(70-height)/2); WMSetSliderAction(panel->vsli, sliderCallback, panel); WMSetSliderMinValue(panel->vsli, 0); WMSetSliderMaxValue(panel->vsli, sheight); @@ -255,13 +286,13 @@ createPanel(Panel *p) /************** Opaque Move ***************/ panel->opaqF = WMCreateFrame(panel->frame); - WMMoveWidget(panel->opaqF, 300, 15); - WMResizeWidget(panel->opaqF, 205, 125); + WMResizeWidget(panel->opaqF, 205, 110); + WMMoveWidget(panel->opaqF, 300, 10); WMSetFrameTitle(panel->opaqF, _("Opaque Move")); panel->opaqB = WMCreateButton(panel->opaqF, WBTToggle); WMResizeWidget(panel->opaqB, 64, 64); - WMMoveWidget(panel->opaqB, 70, 35); + WMMoveWidget(panel->opaqB, 70, 25); WMSetButtonImagePosition(panel->opaqB, WIPImageOnly); path = LocateImage(NON_OPAQUE_MOVE_PIXMAP); @@ -291,33 +322,53 @@ createPanel(Panel *p) /**************** Account for Icon/Dock ***************/ panel->maxiF = WMCreateFrame(panel->frame); - WMResizeWidget(panel->maxiF, 205, 70); - WMMoveWidget(panel->maxiF, 300, 145); + WMResizeWidget(panel->maxiF, 205, 95); + WMMoveWidget(panel->maxiF, 300, 125); WMSetFrameTitle(panel->maxiF, _("When maximizing...")); panel->miconB = WMCreateSwitchButton(panel->maxiF); - WMResizeWidget(panel->miconB, 185, 20); - WMMoveWidget(panel->miconB, 10, 15); - WMSetButtonText(panel->miconB, _("...do not resize over icons")); + WMResizeWidget(panel->miconB, 185, 30); + WMMoveWidget(panel->miconB, 10, 18); + WMSetButtonText(panel->miconB, _("...do not cover icons")); panel->mdockB = WMCreateSwitchButton(panel->maxiF); - WMResizeWidget(panel->mdockB, 185, 20); - WMMoveWidget(panel->mdockB, 10, 40); + WMResizeWidget(panel->mdockB, 185, 30); + WMMoveWidget(panel->mdockB, 10, 53); - WMSetButtonText(panel->mdockB, _("...do not resize over dock")); + WMSetButtonText(panel->mdockB, _("...do not cover dock")); WMMapSubwidgets(panel->maxiF); - - /**************** Transients On Top ****************/ + + /**************** Edge Resistance ****************/ + + panel->resF = WMCreateFrame(panel->frame); + WMResizeWidget(panel->resF, 270, 45); + WMMoveWidget(panel->resF, 20, 125); + WMSetFrameTitle(panel->resF, _("Edge Resistance")); + + panel->resS = WMCreateSlider(panel->resF); + WMResizeWidget(panel->resS, 200, 15); + WMMoveWidget(panel->resS, 10, 20); + WMSetSliderMinValue(panel->resS, 0); + WMSetSliderMaxValue(panel->resS, 200); + WMSetSliderAction(panel->resS, resistanceCallback, panel); + + panel->resL = WMCreateLabel(panel->resF); + WMResizeWidget(panel->resL, 40, 15); + WMMoveWidget(panel->resL, 220, 20); + + WMMapSubwidgets(panel->resF); + + /**************** Transients on Parent Workspace ****************/ panel->tranF = WMCreateFrame(panel->frame); WMResizeWidget(panel->tranF, 270, 40); - WMMoveWidget(panel->tranF, 20, 175); + WMMoveWidget(panel->tranF, 20, 180); panel->tranB = WMCreateSwitchButton(panel->tranF); WMMoveWidget(panel->tranB, 10, 5); WMResizeWidget(panel->tranB, 250, 30); - WMSetButtonText(panel->tranB, _("Open transients in same workspace as their owners")); + WMSetButtonText(panel->tranB, _("Open dialogs in same workspace as their owners")); WMMapSubwidgets(panel->tranF); diff --git a/WPrefs.app/editmenu.c b/WPrefs.app/editmenu.c new file mode 100644 index 00000000..01948129 --- /dev/null +++ b/WPrefs.app/editmenu.c @@ -0,0 +1,668 @@ +/* editmenu.c - editable menus + * + * WPrefs - Window Maker Preferences Program + * + * Copyright (c) 1999 Alfredo K. Kojima + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + + +#include +#include +#include +#include +#include + +#include "editmenu.h" + +typedef struct W_EditMenuItem { + W_Class widgetClass; + WMView *view; + + struct W_EditMenu *menu; + + char *label; + + WMTextField *textField; + + struct W_EditMenu *submenu; /* if it's a cascade, NULL otherwise */ +} EditMenuItem; + + +typedef struct W_EditMenu { + W_Class widgetClass; + WMView *view; + + struct W_EditMenu *parent; + + char *label; + + int itemCount; + int itemsAlloced; + struct W_EditMenuItem **items; + + int titleHeight; + int itemHeight; + + struct W_EditMenu *next; + struct W_EditMenu *prev; + + /* item dragging */ + int draggedItem; + int dragX, dragY; +} EditMenu; + + + +/******************** WEditMenuItem ********************/ + +static void destroyEditMenuItem(WEditMenuItem *iPtr); +static void paintEditMenuItem(WEditMenuItem *iPtr); + +static void handleItemEvents(XEvent *event, void *data); +static void handleItemActionEvents(XEvent *event, void *data); + + +static W_ViewProcedureTable WEditMenuItemViewProcedures = { + NULL, + NULL, + NULL +}; + + +static W_Class EditMenuItemClass = 0; + + +W_Class +InitEditMenuItem(WMScreen *scr) +{ + /* register our widget with WINGs and get our widget class ID */ + if (!EditMenuItemClass) { + EditMenuItemClass = W_RegisterUserWidget(&WEditMenuItemViewProcedures); + } + + return EditMenuItemClass; +} + + +WEditMenuItem* +WCreateEditMenuItem(WMWidget *parent, char *title) +{ + WEditMenuItem *iPtr; + + if (!EditMenuItemClass) + InitEditMenuItem(WMWidgetScreen(parent)); + + + iPtr = wmalloc(sizeof(WEditMenuItem)); + + memset(iPtr, 0, sizeof(WEditMenuItem)); + + iPtr->widgetClass = EditMenuItemClass; + + iPtr->view = W_CreateView(W_VIEW(parent)); + if (!iPtr->view) { + free(iPtr); + return NULL; + } + iPtr->view->self = iPtr; + + iPtr->label = wstrdup(title); + + WMCreateEventHandler(iPtr->view, ExposureMask|StructureNotifyMask, + handleItemEvents, iPtr); + + WMCreateEventHandler(iPtr->view, ButtonPressMask, handleItemActionEvents, + iPtr); + + return iPtr; +} + + + +static void +paintEditMenuItem(WEditMenuItem *iPtr) +{ + WMScreen *scr = WMWidgetScreen(iPtr); + WMColor *black = scr->black; + Window win = W_VIEW(iPtr)->window; + int w = W_VIEW(iPtr)->size.width; + int h = WMFontHeight(scr->normalFont) + 6; + + if (!iPtr->view->flags.realized) + return; + + XClearWindow(scr->display, win); + + W_DrawRelief(scr, win, 0, 0, w+1, h, WRRaised); + + WMDrawString(scr, win, W_GC(black), scr->normalFont, 5, 3, iPtr->label, + strlen(iPtr->label)); +} + + +static void +handleItemEvents(XEvent *event, void *data) +{ + WEditMenuItem *iPtr = (WEditMenuItem*)data; + + + switch (event->type) { + case Expose: + if (event->xexpose.count!=0) + break; + paintEditMenuItem(iPtr); + break; + + case DestroyNotify: + destroyEditMenuItem(iPtr); + break; + + } +} + + +static void +handleItemActionEvents(XEvent *event, void *data) +{ + WEditMenuItem *iPtr = (WEditMenuItem*)data; + + switch (event->type) { + case ButtonPress: + break; + } +} + + + +static void +destroyEditMenuItem(WEditMenuItem *iPtr) +{ + if (iPtr->label) + free(iPtr->label); + + free(iPtr); +} + + + +/******************** WEditMenu *******************/ + + +static WEditMenu *EditMenuList = NULL; + +static void destroyEditMenu(WEditMenu *mPtr); +static void paintEditMenu(WEditMenu *mPtr, int y); + +static void updateMenuContents(WEditMenu *mPtr); + +static void handleEvents(XEvent *event, void *data); +static void handleActionEvents(XEvent *event, void *data); + +static void handleItemDrag(XEvent *event, void *data); + + +static W_ViewProcedureTable WEditMenuViewProcedures = { + NULL, + NULL, + NULL +}; + + +static W_Class EditMenuClass = 0; + + +W_Class +InitEditMenu(WMScreen *scr) +{ + /* register our widget with WINGs and get our widget class ID */ + if (!EditMenuClass) { + + EditMenuClass = W_RegisterUserWidget(&WEditMenuViewProcedures); + } + + return EditMenuClass; +} + + + +typedef struct { + int flags; + int window_style; + int window_level; + int reserved; + Pixmap miniaturize_pixmap; /* pixmap for miniaturize button */ + Pixmap close_pixmap; /* pixmap for close button */ + Pixmap miniaturize_mask; /* miniaturize pixmap mask */ + Pixmap close_mask; /* close pixmap mask */ + int extra_flags; +} GNUstepWMAttributes; + + +#define GSWindowStyleAttr (1<<0) +#define GSWindowLevelAttr (1<<1) + + +static void +writeGNUstepWMAttr(WMScreen *scr, Window window, GNUstepWMAttributes *attr) +{ + unsigned long data[9]; + + /* handle idiot compilers where array of CARD32 != struct of CARD32 */ + data[0] = attr->flags; + data[1] = attr->window_style; + data[2] = attr->window_level; + data[3] = 0; /* reserved */ + /* The X protocol says XIDs are 32bit */ + data[4] = attr->miniaturize_pixmap; + data[5] = attr->close_pixmap; + data[6] = attr->miniaturize_mask; + data[7] = attr->close_mask; + data[8] = attr->extra_flags; + XChangeProperty(scr->display, window, scr->attribsAtom, scr->attribsAtom, + 32, PropModeReplace, (unsigned char *)data, 9); +} + + +static void +realizeObserver(void *self, WMNotification *not) +{ + WEditMenu *menu = (WEditMenu*)self; + GNUstepWMAttributes attribs; + + memset(&attribs, 0, sizeof(GNUstepWMAttributes)); + attribs.flags = GSWindowStyleAttr|GSWindowLevelAttr; + attribs.window_style = WMBorderlessWindowMask; + attribs.window_level = WMSubmenuWindowLevel; + + writeGNUstepWMAttr(WMWidgetScreen(menu), menu->view->window, &attribs); +} + + +WEditMenu* +WCreateEditMenu(WMScreen *scr, char *title) +{ + WEditMenu *mPtr; + + if (!EditMenuClass) + InitEditMenu(scr); + + + mPtr = wmalloc(sizeof(WEditMenu)); + + memset(mPtr, 0, sizeof(WEditMenu)); + + mPtr->widgetClass = EditMenuClass; + + mPtr->view = W_CreateTopView(scr); + if (!mPtr->view) { + free(mPtr); + return NULL; + } + mPtr->view->self = mPtr; + + WMAddNotificationObserver(realizeObserver, mPtr, + WMViewRealizedNotification, mPtr->view); + + W_SetViewBackgroundColor(mPtr->view, mPtr->view->screen->darkGray); + + mPtr->label = wstrdup(title); + + mPtr->itemsAlloced = 10; + mPtr->items = wmalloc(sizeof(WEditMenuItem*)*mPtr->itemsAlloced); + + WMCreateEventHandler(mPtr->view, ExposureMask|StructureNotifyMask, + handleEvents, mPtr); + + WMCreateEventHandler(mPtr->view, ButtonPressMask,handleActionEvents, mPtr); + + updateMenuContents(mPtr); + + + mPtr->itemHeight = WMFontHeight(scr->normalFont) + 6; + mPtr->titleHeight = WMFontHeight(scr->boldFont) + 8; + + mPtr->draggedItem = -1; + + mPtr->next = EditMenuList; + if (EditMenuList) + EditMenuList->prev = mPtr; + EditMenuList = mPtr; + + return mPtr; +} + + +WEditMenuItem* +WInsertMenuItemWithTitle(WEditMenu *mPtr, char *title, int index) +{ + WEditMenuItem *item; + + item = WCreateEditMenuItem(mPtr, title); + item->menu = mPtr; + + WMCreateEventHandler(item->view, ButtonPressMask|ButtonReleaseMask + |Button1MotionMask, handleItemDrag, item); + + WMMapWidget(item); + + if (index < 0) + index = 0; + else if (index > mPtr->itemCount) + index = mPtr->itemCount; + + if (mPtr->itemCount == mPtr->itemsAlloced) { + WEditMenuItem *newList; + + newList = wmalloc(sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10)); + memset(newList, 0, sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10)); + + memcpy(newList, mPtr->items, mPtr->itemsAlloced*sizeof(WEditMenuItem*)); + + mPtr->itemsAlloced += 10; + + free(mPtr->items); + + mPtr->items = newList; + } + + if (index < mPtr->itemCount) { + memmove(&mPtr->items[index+1], &mPtr->items[index], + sizeof(WEditMenuItem*)); + mPtr->items[index] = item; + mPtr->itemCount++; + } else { + mPtr->items[mPtr->itemCount++] = item; + } + + updateMenuContents(mPtr); + + return item; +} + + +void +WSetMenuSubmenu(WEditMenu *mPtr, WEditMenu *submenu, WEditMenuItem *item) +{ + item->submenu = submenu; + submenu->parent = mPtr; + + paintEditMenuItem(item); +} + + +void +WRemoveMenuItem(WEditMenu *mPtr, WEditMenuItem *item) +{ + +} + + +static void +updateMenuContents(WEditMenu *mPtr) +{ + WMScreen *scr = WMWidgetScreen(mPtr); + int i; + int newW, newH; + int w; + int iheight = mPtr->itemHeight; + + newW = WMWidthOfString(scr->boldFont, mPtr->label, + strlen(mPtr->label)) + 12 + iheight; + + newH = mPtr->titleHeight; + + for (i = 0; i < mPtr->itemCount; i++) { + w = WMWidthOfString(scr->normalFont, mPtr->items[i]->label, + strlen(mPtr->items[i]->label)) + 5; + if (w > newW) + newW = w; + + W_MoveView(mPtr->items[i]->view, 0, newH); + newH += iheight; + } + + newH--; + + W_ResizeView(mPtr->view, newW, newH); + + for (i = 0; i < mPtr->itemCount; i++) { + W_ResizeView(mPtr->items[i]->view, newW, iheight); + } + + paintEditMenu(mPtr, -1); +} + + +static void +paintMenuTitle(WEditMenu *mPtr) +{ + WMScreen *scr = WMWidgetScreen(mPtr); + WMColor *black = scr->black; + WMColor *white = scr->white; + Window win = W_VIEW(mPtr)->window; + int w = W_VIEW(mPtr)->size.width; + int h = mPtr->titleHeight; + + XFillRectangle(scr->display, win, W_GC(black), 0, 0, w, h); + + W_DrawRelief(scr, win, 0, 0, w+1, h, WRRaised); + + WMDrawString(scr, win, W_GC(white), scr->boldFont, 5, 4, mPtr->label, + strlen(mPtr->label)); +} + + +static void +paintEditMenu(WEditMenu *mPtr, int y) +{ + if (!mPtr->view->flags.realized) + return; + + if (y < mPtr->titleHeight || y < 0) + paintMenuTitle(mPtr); +} + + + +static void +handleEvents(XEvent *event, void *data) +{ + WEditMenu *mPtr = (WEditMenu*)data; + + + switch (event->type) { + case Expose: + paintEditMenu(mPtr, event->xexpose.y); + break; + + case DestroyNotify: + destroyEditMenu(mPtr); + break; + + } +} + + + + +static void +handleActionEvents(XEvent *event, void *data) +{ + WEditMenu *mPtr = (WEditMenu*)data; + + switch (event->type) { + case ButtonPress: + break; + } +} + + +static void +editItemLabel(WEditMenuItem *iPtr) +{ + WMTextField *tPtr; + + tPtr = WMCreateTextField(iPtr); + WMResizeWidget(tPtr, iPtr->view->size.width - 20, + iPtr->view->size.height - 3); + WMMoveWidget(tPtr, 4, 1); + WMSetTextFieldBeveled(tPtr, False); + WMMapWidget(tPtr); + + WMRealizeWidget(tPtr); + + iPtr->textField = tPtr; +} + + +static void +handleItemDrag(XEvent *event, void *data) +{ + WEditMenuItem *iPtr = (WEditMenuItem*)data; + WEditMenu *mPtr = iPtr->menu; + WMScreen *scr = WMWidgetScreen(mPtr); + Bool done = False; + int y; + int i; + int newIdx, oldIdx; + int newY; + + switch (event->type) { + case ButtonPress: + if (WMIsDoubleClick(event)) { + + editItemLabel(iPtr); + + } else if (event->xbutton.button == Button1) { + mPtr->draggedItem = 1; + mPtr->dragX = event->xbutton.x; + mPtr->dragY = event->xbutton.y; + } + return; + case ButtonRelease: + if (event->xbutton.button == Button1) { + mPtr->draggedItem = -1; + } + return; + case MotionNotify: + if (mPtr->draggedItem >= 0) { + if (abs(event->xmotion.y - mPtr->dragY) > 3 + || abs(event->xmotion.x - mPtr->dragX) > 3) { + mPtr->draggedItem = -1; + } else { + return; + } + } else { + return; + } + break; + default: + return; + } + + XRaiseWindow(scr->display, iPtr->view->window); + + XGrabPointer(scr->display, mPtr->view->window, False, + PointerMotionMask|ButtonReleaseMask|ButtonPressMask + |ButtonPressMask, + GrabModeAsync, GrabModeAsync, None, None, CurrentTime); + + y = iPtr->view->pos.y; + + while (!done) { + XEvent ev; + + WMMaskEvent(scr->display, ButtonReleaseMask|PointerMotionMask + |ExposureMask, &ev); + + switch (ev.type) { + case ButtonRelease: + if (ev.xbutton.button == Button1) + done = True; + break; + + case MotionNotify: + y = ev.xbutton.y - mPtr->dragY; + + if (y < mPtr->titleHeight) + y = mPtr->titleHeight; + else if (y > mPtr->view->size.height - mPtr->itemHeight + 1) + y = mPtr->view->size.height - mPtr->itemHeight + 1; + + W_MoveView(iPtr->view, 0, y); + break; + + default: + WMHandleEvent(&ev); + break; + } + } + XUngrabPointer(scr->display, CurrentTime); + + for (oldIdx = 0; oldIdx < mPtr->itemCount; oldIdx++) { + if (mPtr->items[oldIdx] == iPtr) { + break; + } + } + assert(oldIdx < mPtr->itemCount); + + newIdx = (y - mPtr->titleHeight + mPtr->itemHeight/2) / mPtr->itemHeight; + + if (newIdx < 0) + newIdx = 0; + else if (newIdx >= mPtr->itemCount) + newIdx = mPtr->itemCount - 1; + + newY = mPtr->titleHeight + newIdx * mPtr->itemHeight; + for (i = 0; i <= 15; i++) { + W_MoveView(iPtr->view, 0, ((newY*i)/15 + (y - (y*i)/15))); + XFlush(scr->display); + } + + if (oldIdx != newIdx) { + WEditMenuItem *item; + + item = mPtr->items[oldIdx]; + mPtr->items[oldIdx] = mPtr->items[newIdx]; + mPtr->items[newIdx] = item; + + updateMenuContents(mPtr); + } +} + + +static void +destroyEditMenu(WEditMenu *mPtr) +{ + WMRemoveNotificationObserver(mPtr); + + if (mPtr->next) + mPtr->next->prev = mPtr->prev; + if (mPtr->prev) + mPtr->prev->next = mPtr->next; + if (EditMenuList == mPtr) + EditMenuList = mPtr->next; + + if (mPtr->label) + free(mPtr->label); + + if (mPtr->items) + free(mPtr->items); + + free(mPtr); +} diff --git a/src/stacking.h b/WPrefs.app/editmenu.h similarity index 55% copy from src/stacking.h copy to WPrefs.app/editmenu.h index 2c05a884..1d9c76bf 100644 --- a/src/stacking.h +++ b/WPrefs.app/editmenu.h @@ -1,7 +1,8 @@ -/* - * Window Maker window manager +/* editmenu.h - editable menus * - * Copyright (c) 1997, 1998 Alfredo K. Kojima + * WPrefs - Window Maker Preferences Program + * + * Copyright (c) 1999 Alfredo K. Kojima * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,28 +20,21 @@ * USA. */ -#ifndef WMSTACKING_H_ -#define WMSTACKING_H_ - -void wRaiseFrame(WCoreWindow *frame); - -void wLowerFrame(WCoreWindow *frame); -void wRaiseLowerFrame(WCoreWindow *frame); -void AddToStackList(WCoreWindow *frame); +typedef struct W_EditMenu WEditMenu; -void MoveInStackListAbove(WCoreWindow *next, WCoreWindow *frame); +typedef struct W_EditMenuItem WEditMenuItem; -void MoveInStackListUnder(WCoreWindow *prev, WCoreWindow *frame); -void RemoveFromStackList(WCoreWindow *frame); +WEditMenuItem *WCreateEditMenuItem(WMWidget *parent, char *title); -void ChangeStackingLevel(WCoreWindow *frame, int new_level); -void RemakeStackList(WScreen *scr); +WEditMenu *WCreateEditMenu(WMScreen *scr, char *title); -void CommitStacking(WScreen *scr); +WEditMenuItem *WInsertMenuItemWithTitle(WEditMenu *mPtr, char *title, + int index); +void WSetMenuSubmenu(WEditMenu *mPtr, WEditMenu *submenu, WEditMenuItem *item); -#endif +void WRemoveMenuItem(WEditMenu *mPtr, WEditMenuItem *item); diff --git a/WPrefs.app/main.c b/WPrefs.app/main.c index 59cebde7..fc7e8870 100644 --- a/WPrefs.app/main.c +++ b/WPrefs.app/main.c @@ -149,7 +149,7 @@ main(int argc, char **argv) if (getenv("NLSPATH")) bindtextdomain("WPrefs", getenv("NLSPATH")); else - bindtextdomain("WPrefs", NLSDIR); + bindtextdomain("WPrefs", LOCALEDIR); textdomain("WPrefs"); if (!XSupportsLocale()) { @@ -165,7 +165,7 @@ main(int argc, char **argv) wfatal(_("could not open display %s"), XDisplayName(display_name)); exit(0); } -#if 0 +#if 1 XSynchronize(dpy, 1); #endif scr = WMCreateScreen(dpy, DefaultScreen(dpy)); diff --git a/WPrefs.app/po/Makefile.am b/WPrefs.app/po/Makefile.am index 0ea7e291..3c4b5af6 100644 --- a/WPrefs.app/po/Makefile.am +++ b/WPrefs.app/po/Makefile.am @@ -1,10 +1,10 @@ -nlsdir = @NLSDIR@ - CATALOGS = @WPMOFILES@ +nlsdir = $(DESTDIR)$(NLSDIR) + CLEANFILES = $(CATALOGS) -EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po +EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po POTFILES = \ $(top_builddir)/WPrefs.app/Configurations.c \ @@ -45,15 +45,15 @@ WPrefs.pot: $(POTFILES) install-data-local: $(CATALOGS) - $(mkinstalldirs) $(DESTDIR)$(nlsdir) - chmod 755 $(DESTDIR)$(nlsdir) + $(mkinstalldirs) $(nlsdir) + chmod 755 $(nlsdir) for n in $(CATALOGS) __DuMmY ; do \ if test "$$n" -a "$$n" != "__DuMmY" ; then \ l=`basename $$n .mo`; \ - $(mkinstalldirs) $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - $(INSTALL) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ + $(mkinstalldirs) $(nlsdir)/$$l/LC_MESSAGES; \ + chmod 755 $(nlsdir)/$$l; \ + chmod 755 $(nlsdir)/$$l/LC_MESSAGES; \ + $(INSTALL_DATA) -m 644 $$n $(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ fi; \ done diff --git a/WPrefs.app/po/Makefile.in b/WPrefs.app/po/Makefile.in index e9cd4b81..ef43f81e 100644 --- a/WPrefs.app/po/Makefile.in +++ b/WPrefs.app/po/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -87,13 +87,13 @@ XLIBS = @XLIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ wprefsdir = @wprefsdir@ -nlsdir = @NLSDIR@ - CATALOGS = @WPMOFILES@ +nlsdir = $(DESTDIR)$(NLSDIR) + CLEANFILES = $(CATALOGS) -EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po +EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po POTFILES = $(top_builddir)/WPrefs.app/Configurations.c $(top_builddir)/WPrefs.app/Expert.c $(top_builddir)/WPrefs.app/Focus.c $(top_builddir)/WPrefs.app/Icons.c $(top_builddir)/WPrefs.app/KeyboardSettings.c $(top_builddir)/WPrefs.app/KeyboardShortcuts.c $(top_builddir)/WPrefs.app/Menu.c $(top_builddir)/WPrefs.app/MenuGuru.c $(top_builddir)/WPrefs.app/MenuPreferences.c $(top_builddir)/WPrefs.app/MouseSettings.c $(top_builddir)/WPrefs.app/Paths.c $(top_builddir)/WPrefs.app/Preferences.c $(top_builddir)/WPrefs.app/Text.c $(top_builddir)/WPrefs.app/TextureAndColor.c $(top_builddir)/WPrefs.app/Themes.c $(top_builddir)/WPrefs.app/WPrefs.c $(top_builddir)/WPrefs.app/WindowHandling.c $(top_builddir)/WPrefs.app/Workspace.c $(top_builddir)/WPrefs.app/main.c $(top_builddir)/WPrefs.app/xmodifier.c @@ -219,15 +219,15 @@ WPrefs.pot: $(POTFILES) fi install-data-local: $(CATALOGS) - $(mkinstalldirs) $(DESTDIR)$(nlsdir) - chmod 755 $(DESTDIR)$(nlsdir) + $(mkinstalldirs) $(nlsdir) + chmod 755 $(nlsdir) for n in $(CATALOGS) __DuMmY ; do \ if test "$$n" -a "$$n" != "__DuMmY" ; then \ l=`basename $$n .mo`; \ - $(mkinstalldirs) $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - $(INSTALL) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ + $(mkinstalldirs) $(nlsdir)/$$l/LC_MESSAGES; \ + chmod 755 $(nlsdir)/$$l; \ + chmod 755 $(nlsdir)/$$l/LC_MESSAGES; \ + $(INSTALL_DATA) -m 644 $$n $(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ fi; \ done diff --git a/WPrefs.app/po/README b/WPrefs.app/po/README index 2d23710a..f68f5ef9 100644 --- a/WPrefs.app/po/README +++ b/WPrefs.app/po/README @@ -10,3 +10,4 @@ fr.po French Bastien NOCERA ko.po Korean Byeong-Chan, Kim cs.po Czech David ©auer ja.po Japanese Kazuhide Takahashi +zh_TW.Big5.po Chinese Li Wei Jih diff --git a/WPrefs.app/po/cs.po b/WPrefs.app/po/cs.po index b9003332..50836884 100644 --- a/WPrefs.app/po/cs.po +++ b/WPrefs.app/po/cs.po @@ -5,8 +5,8 @@ # Èt pro 3 20:38:36 CET 1998 David Sauer msgid "" msgstr "" -"Project-Id-Version: WPrefs 0.9 (WindowMaker 0.50.x)\n" -"POT-Creation-Date: 1999-01-11 07:20+0100\n" +"Project-Id-Version: WPrefs 0.10 (WindowMaker 0.51.0)\n" +"POT-Creation-Date: 1999-01-29 06:48+0100\n" "PO-Revision-Date: 1999-01-11 07:37+01:00\n" "Last-Translator: David Sauer \n" "Language-Team: czech \n" @@ -15,7 +15,7 @@ msgstr "" "Content-Transfer-Encoding: unknown\n" #: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148 -#: ../../WPrefs.app/MouseSettings.c:510 ../../WPrefs.app/WindowHandling.c:274 +#: ../../WPrefs.app/MouseSettings.c:526 ../../WPrefs.app/WindowHandling.c:274 #: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71 #: ../../WPrefs.app/Workspace.c:77 #, c-format @@ -45,10 +45,10 @@ msgstr "Rychlost zm #: ../../WPrefs.app/MenuPreferences.c:135 #: ../../WPrefs.app/MenuPreferences.c:146 #: ../../WPrefs.app/MenuPreferences.c:174 -#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:538 -#: ../../WPrefs.app/MouseSettings.c:549 ../../WPrefs.app/MouseSettings.c:604 -#: ../../WPrefs.app/MouseSettings.c:615 ../../WPrefs.app/MouseSettings.c:651 -#: ../../WPrefs.app/MouseSettings.c:666 ../../WPrefs.app/MouseSettings.c:682 +#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:554 +#: ../../WPrefs.app/MouseSettings.c:565 ../../WPrefs.app/MouseSettings.c:627 +#: ../../WPrefs.app/MouseSettings.c:638 ../../WPrefs.app/MouseSettings.c:674 +#: ../../WPrefs.app/MouseSettings.c:689 ../../WPrefs.app/MouseSettings.c:705 #: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421 #, c-format msgid "could not load icon file %s" @@ -84,7 +84,7 @@ msgstr "Ditherovat na 8bpp" #: ../../WPrefs.app/Configurations.c:369 msgid "Disable dithering in any visual/depth" -msgstr "Zaka¾ jakékoli ditherování" +msgstr "Zakázat jakékoli ditherování" #: ../../WPrefs.app/Configurations.c:390 msgid "More colors for applications" @@ -112,7 +112,7 @@ msgstr "Pou #: ../../WPrefs.app/Expert.c:73 msgid "Disable cycling color highlighting of icons." -msgstr "Zaka¾ rotaci barev pøi zvýraznìní ikon" +msgstr "Zakázat rotaci barev pro zvýraznìní ikon" #: ../../WPrefs.app/Expert.c:103 msgid "Expert User Preferences" @@ -132,9 +132,7 @@ msgstr "chybn msgid "" "Click on the window to set\n" "keyboard input focus." -msgstr "" -"Click on the window to set\n" -"keyboard input focus." +msgstr "«uk my¹í zamìøí okno." #: ../../WPrefs.app/Focus.c:194 msgid "" @@ -142,7 +140,7 @@ msgid "" "the window under the mouse pointer,\n" "including the root window." msgstr "" -"Nastav zamìøení vstupu\n" +"Nastaví zamìøení vstupu\n" "na okno pod ukazatelem my¹i.\n" "(vèetnì hlavního okna)" @@ -152,7 +150,7 @@ msgid "" "the window under the mouse pointer,\n" "except the root window." msgstr "" -"Nastav zamìøení vstupu\n" +"Nastaví zamìøení vstupu\n" "na okno pod ukazatelem my¹i.\n" "(mimo hlavního okna)" @@ -222,7 +220,7 @@ msgstr "V #: ../../WPrefs.app/Icons.c:238 msgid "3D-flipping" -msgstr "3D-salta" +msgstr "3D salta" #: ../../WPrefs.app/Icons.c:239 msgid "None" @@ -230,7 +228,7 @@ msgstr " #: ../../WPrefs.app/Icons.c:247 msgid "Icon Display" -msgstr "Zobrazení Ikony" +msgstr "Zobrazení ikon" #: ../../WPrefs.app/Icons.c:252 msgid "Auto-arrange icons" @@ -258,14 +256,14 @@ msgstr "Rychlost opakov #: ../../WPrefs.app/KeyboardSettings.c:153 msgid "Type here to test" -msgstr "Zkuste klávesnici zde" +msgstr "Zkuste zde" #: ../../WPrefs.app/KeyboardSettings.c:172 msgid "Keyboard Preferences" msgstr "Nastavení klávesnice" -#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:932 -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/MenuGuru.c:263 +#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:934 +#: ../../WPrefs.app/MenuGuru.c:263 msgid "Cancel" msgstr "Nic" @@ -274,8 +272,8 @@ msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." msgstr "Stisknìte po¾adované klávesy nebo pou¾ijete \"Nic\"." #: ../../WPrefs.app/KeyboardShortcuts.c:204 -#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:944 -#: ../../WPrefs.app/Menu.c:1166 +#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:946 +#: ../../WPrefs.app/Menu.c:1168 msgid "Capture" msgstr "Snímat" @@ -342,7 +340,7 @@ msgstr "P #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Select active window" -msgstr "Vyber okno" +msgstr "Vybrat okno" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Focus next window" @@ -370,43 +368,43 @@ msgstr "P #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Switch to workspace 1" -msgstr "Pøepni na plochu 1" +msgstr "Pøepnout na plochu 1" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to workspace 2" -msgstr "Pøepni na plochu 2" +msgstr "Pøepnout na plochu 2" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to workspace 3" -msgstr "Pøepni na plochu 3" +msgstr "Pøepnout na plochu 3" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to workspace 4" -msgstr "Pøepni na plochu 4" +msgstr "Pøepnout na plochu 4" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to workspace 5" -msgstr "Pøepni na plochu 5" +msgstr "Pøepnout na plochu 5" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 6" -msgstr "Pøepni na plochu 6" +msgstr "Pøepnout na plochu 6" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 7" -msgstr "Pøepni na plochu 7" +msgstr "Pøepnout na plochu 7" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 8" -msgstr "Pøepni na plochu 8" +msgstr "Pøepnout na plochu 8" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 9" -msgstr "Pøepni na plochu 9" +msgstr "Pøepnout na plochu 9" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 10" -msgstr "Pøepni na plochu 10" +msgstr "Pøepnout na plochu 10" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Shortcut for window 1" @@ -438,15 +436,15 @@ msgstr "Sponku v #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Toggle keyboard language" -msgstr "Nastavit jazyk pro klávesnici" +msgstr "Zmìnit klávesnici" -#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1155 +#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1157 msgid "Shortcut" msgstr "Zkratka" #: ../../WPrefs.app/KeyboardShortcuts.c:438 msgid "Clear" -msgstr "Vyma¾" +msgstr "Vymazat" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Keyboard Shortcut Preferences" @@ -460,7 +458,7 @@ msgstr "Mana msgid "Program to open files" msgstr "Program na otvírání souborù" -#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1142 +#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1144 msgid "Program to Run" msgstr "Spustit program" @@ -481,150 +479,175 @@ msgstr "Extern msgid "Workspaces" msgstr "Pracovní plochy" -#: ../../WPrefs.app/Menu.c:1026 ../../WPrefs.app/Menu.c:1041 +#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 msgid "Commands" msgstr "Pøíkazy" -#: ../../WPrefs.app/Menu.c:1027 ../../WPrefs.app/Menu.c:1042 +#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 msgid "Add Command" msgstr "Pøidat pøíkaz" -#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 +#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 msgid "Add Submenu" msgstr "Pøidat podmenu" -#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 +#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046 msgid "Add External Menu" msgstr "Pøidat externí menu" -#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 +#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047 msgid "Add Workspace Menu" msgstr "Pøidat menu ploch" -#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046 +#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 msgid "Remove Item" -msgstr "Odstraò polo¾ku" +msgstr "Odstranit polo¾ku" -#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047 +#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 msgid "Cut Item" -msgstr "Vyøízni polo¾ku" +msgstr "Vyøíznout polo¾ku" -#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 +#: ../../WPrefs.app/Menu.c:1035 ../../WPrefs.app/Menu.c:1050 msgid "Copy Item" -msgstr "Zkopíruj polo¾ku" +msgstr "Zkopírovat polo¾ku" -#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 +#: ../../WPrefs.app/Menu.c:1036 ../../WPrefs.app/Menu.c:1051 msgid "Paste Item" -msgstr "Vlo¾ polo¾ku" +msgstr "Vlo¾it polo¾ku" -#: ../../WPrefs.app/Menu.c:1078 +#: ../../WPrefs.app/Menu.c:1080 msgid "Label" msgstr "Oznaèení" -#: ../../WPrefs.app/Menu.c:1091 +#: ../../WPrefs.app/Menu.c:1093 msgid "Command" msgstr "Pøíkaz" -#: ../../WPrefs.app/Menu.c:1096 +#: ../../WPrefs.app/Menu.c:1098 msgid "Run Program" -msgstr "Spus» program" +msgstr "Spustit program" -#: ../../WPrefs.app/Menu.c:1097 +#: ../../WPrefs.app/Menu.c:1099 msgid "Arrange Icons" -msgstr "Srovnej ikony" +msgstr "Srovnat ikony" -#: ../../WPrefs.app/Menu.c:1098 +#: ../../WPrefs.app/Menu.c:1100 msgid "Hide Others" -msgstr "Skryj ostatní" +msgstr "Skrýt ostatní" -#: ../../WPrefs.app/Menu.c:1099 +#: ../../WPrefs.app/Menu.c:1101 msgid "Show All Windows" -msgstr "Uka¾ v¹echna okna" +msgstr "Ukázat v¹echna okna" -#: ../../WPrefs.app/Menu.c:1100 +#: ../../WPrefs.app/Menu.c:1102 msgid "Exit WindowMaker" msgstr "Ukonèit mana¾era oken" -#: ../../WPrefs.app/Menu.c:1101 +#: ../../WPrefs.app/Menu.c:1103 msgid "Exit X Session" msgstr "Ukonèit sezení X" -#: ../../WPrefs.app/Menu.c:1102 +#: ../../WPrefs.app/Menu.c:1104 msgid "Start window manager" -msgstr "Odstartovat mana¾er oken" +msgstr "Odstartovat jiný mana¾er" -#: ../../WPrefs.app/Menu.c:1103 +#: ../../WPrefs.app/Menu.c:1105 msgid "Restart WindowMaker" -msgstr "RestartWindowMakeru" +msgstr "Restart WindowMakeru" -#: ../../WPrefs.app/Menu.c:1104 +#: ../../WPrefs.app/Menu.c:1106 msgid "Save Session" msgstr "Ulo¾it stav sezení" -#: ../../WPrefs.app/Menu.c:1105 +#: ../../WPrefs.app/Menu.c:1107 msgid "Clear Session" msgstr "Vymazat sezení" -#: ../../WPrefs.app/Menu.c:1106 +#: ../../WPrefs.app/Menu.c:1108 msgid "Refresh Screen" msgstr "Obnovit obrazovku" -#: ../../WPrefs.app/Menu.c:1107 +#: ../../WPrefs.app/Menu.c:1109 msgid "Info Panel" msgstr "Informace" -#: ../../WPrefs.app/Menu.c:1108 +#: ../../WPrefs.app/Menu.c:1110 msgid "Legal Panel" msgstr "Copyright" -#: ../../WPrefs.app/Menu.c:1116 +#: ../../WPrefs.app/Menu.c:1118 msgid "Open workspace menu" msgstr "Otevøít menu ploch" -#: ../../WPrefs.app/Menu.c:1123 +#: ../../WPrefs.app/Menu.c:1125 msgid "No confirmation panel" msgstr "Bez ukonèovacího dialogu" -#: ../../WPrefs.app/Menu.c:1129 +#: ../../WPrefs.app/Menu.c:1131 msgid "Menu Path/Directory List" msgstr "Cesta k menu/adresáø" -#: ../../WPrefs.app/Menu.c:1174 +#: ../../WPrefs.app/Menu.c:1176 msgid "Ask help to the Guru" msgstr "Zeptat se Mistra" -#: ../../WPrefs.app/Menu.c:1294 +#. if there is a localized plmenu for the tongue put it's filename here +#: ../../WPrefs.app/Menu.c:1287 ../../WPrefs.app/Menu.c:1294 +#, c-format +msgid "%s/Library/WindowMaker/plmenu" +msgstr "%s/Library/WindowMaker/plmenu" + +#: ../../WPrefs.app/Menu.c:1302 ../../WPrefs.app/MouseSettings.c:146 +#: ../../WPrefs.app/MouseSettings.c:169 ../../WPrefs.app/Text.c:181 +#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558 +#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572 +#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590 +#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 +msgid "Error" +msgstr "Chyba" + +#: ../../WPrefs.app/Menu.c:1302 +msgid "Could not copy default plmenu file from ~/GNUstep/Library/WindowMaker" +msgstr "Standardní menu nelze ze souboru plmenu z adresáøe ~/GNUstep/Library/WindowMaker nainstalovat" + +#: ../../WPrefs.app/Menu.c:1304 ../../WPrefs.app/Menu.c:1354 +#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 +#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:148 +#: ../../WPrefs.app/MouseSettings.c:171 ../../WPrefs.app/Text.c:181 +#: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:558 +#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:574 +#: ../../WPrefs.app/WPrefs.c:584 ../../WPrefs.app/WPrefs.c:590 +#: ../../WPrefs.app/WPrefs.c:597 ../../WPrefs.app/WPrefs.c:614 +#: ../../WPrefs.app/WPrefs.c:619 +msgid "OK" +msgstr "OK" + +#: ../../WPrefs.app/Menu.c:1339 msgid "" -"The format of the current menu in ~/G/D/WMRootMenu is not supported by " -"WPrefs. A new menu will be created.\n" -"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu to get the default " -"menu." -msgstr "" -"Aktuální formát menu v ~/G/D/WMRootMenu není podporován programem WPrefs. " -"Bude vytvoøeno nové menu.\n" -"Standardní menu získáte pøíkazem \"cp ~/G/L/W/plmenu ~/G/D/WMRootMenu\"." +"The format of the menu in ~/G/D/WMRootMenu is not recognized by WPrefs. It " +"might be in a format different than the one supported by WPrefs or contain a " +"syntax error. Do you want to continue using the current menu to edit it by " +"hand later or replace it with a default menu in the new format?" +msgstr "Formát menu v souboru ~/G/D/WMRootMenu nebyl rozposnán. Mù¾e být rozdílný od podporovaných formátù, nebo mù¾e obsahovat syntaktickou chybu. Chcete pokraèovat s pou¾itím souèasného menu a opravit ho pozdìji, nebo má být nainstalováno menu v novém formátu ?" -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1304 +#: ../../WPrefs.app/Menu.c:1346 ../../WPrefs.app/Menu.c:1353 #: ../../WPrefs.app/WPrefs.c:597 msgid "Warning" msgstr "Varování" -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1305 -#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 -#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:156 -#: ../../WPrefs.app/Text.c:181 ../../WPrefs.app/Themes.c:98 -#: ../../WPrefs.app/WPrefs.c:558 ../../WPrefs.app/WPrefs.c:563 -#: ../../WPrefs.app/WPrefs.c:574 ../../WPrefs.app/WPrefs.c:584 -#: ../../WPrefs.app/WPrefs.c:590 ../../WPrefs.app/WPrefs.c:597 -#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 -msgid "OK" -msgstr "OK" +#: ../../WPrefs.app/Menu.c:1346 +msgid "Keep current menu" +msgstr "Ponechat aktuální menu" -#: ../../WPrefs.app/Menu.c:1304 +#: ../../WPrefs.app/Menu.c:1347 +msgid "Install default menu" +msgstr "Instalovat standardní menu" + +#: ../../WPrefs.app/Menu.c:1353 msgid "Any changes made in this section will not be saved" msgstr "Jakékoli zmìny v této sekci budou zru¹eny" -#: ../../WPrefs.app/Menu.c:1369 +#: ../../WPrefs.app/Menu.c:1419 msgid "Applications Menu Definition" msgstr "Definice menu aplikací" @@ -754,7 +777,7 @@ msgstr "Rychlost posunu menu" #: ../../WPrefs.app/MenuPreferences.c:161 msgid "Submenu Alignment" -msgstr "Zarovnání submenu" +msgstr "Zarovnání podmenu" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" @@ -772,20 +795,11 @@ msgstr "Posouvat menu p msgid "Menu Preferences" msgstr "Nastavení menu" -#: ../../WPrefs.app/MouseSettings.c:148 -#, c-format -msgid "Accel.: %.2f" -msgstr "Zrychl.: %.2f" - -#: ../../WPrefs.app/MouseSettings.c:154 ../../WPrefs.app/Text.c:181 -#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558 -#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572 -#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590 -#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 -msgid "Error" -msgstr "Chyba" +#: ../../WPrefs.app/MouseSettings.c:147 +msgid "Invalid mouse acceleration value. Must be a positive real value." +msgstr "Chybná hodnota pro zrychlení my¹i. Má být kladné reálné èíslo." -#: ../../WPrefs.app/MouseSettings.c:155 +#: ../../WPrefs.app/MouseSettings.c:170 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." @@ -793,18 +807,18 @@ msgstr "" "Chybná hodnota pro práh zrychlení my¹i. Zadejte èíslo oznaèující poèet " "pixelù pøed akcelarecí." -#: ../../WPrefs.app/MouseSettings.c:209 +#: ../../WPrefs.app/MouseSettings.c:225 #, c-format msgid "mouse button %s not supported by WPrefs." msgstr "tlaèítko my¹i %s není podporováno." -#: ../../WPrefs.app/MouseSettings.c:243 ../../WPrefs.app/MouseSettings.c:254 -#: ../../WPrefs.app/MouseSettings.c:265 +#: ../../WPrefs.app/MouseSettings.c:259 ../../WPrefs.app/MouseSettings.c:270 +#: ../../WPrefs.app/MouseSettings.c:281 #, c-format msgid "bad value %s for option %s" msgstr "chybná hodnota %s pro volbu %s" -#: ../../WPrefs.app/MouseSettings.c:325 +#: ../../WPrefs.app/MouseSettings.c:341 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " @@ -812,66 +826,70 @@ msgid "" msgstr "" "modifikátor klávesy %s pro volbu \"ModifierKey\" není znám. Pou¾ívám %s." -#: ../../WPrefs.app/MouseSettings.c:350 +#: ../../WPrefs.app/MouseSettings.c:366 msgid "could not retrieve keyboard modifier mapping" msgstr "nelze pøevzít mapování modifikátorù kláves" -#: ../../WPrefs.app/MouseSettings.c:497 +#: ../../WPrefs.app/MouseSettings.c:513 msgid "Mouse Speed" msgstr "Rychlost my¹i" -#: ../../WPrefs.app/MouseSettings.c:564 +#: ../../WPrefs.app/MouseSettings.c:575 +msgid "Acceler.:" +msgstr "Zrychl.:" + +#: ../../WPrefs.app/MouseSettings.c:587 msgid "Threshold:" msgstr "Mez:" -#: ../../WPrefs.app/MouseSettings.c:579 +#: ../../WPrefs.app/MouseSettings.c:602 msgid "Double-Click Delay" msgstr "Prodleva pro dvojité »uknutí" -#: ../../WPrefs.app/MouseSettings.c:623 +#: ../../WPrefs.app/MouseSettings.c:646 msgid "Test" msgstr "Test" -#: ../../WPrefs.app/MouseSettings.c:633 +#: ../../WPrefs.app/MouseSettings.c:656 msgid "Workspace Mouse Actions" msgstr "Akce my¹í" -#: ../../WPrefs.app/MouseSettings.c:638 +#: ../../WPrefs.app/MouseSettings.c:661 msgid "Disable mouse actions" msgstr "Zaka¾ akce my¹í" -#: ../../WPrefs.app/MouseSettings.c:691 +#: ../../WPrefs.app/MouseSettings.c:714 msgid "Applications menu" msgstr "Menu aplikací" -#: ../../WPrefs.app/MouseSettings.c:697 +#: ../../WPrefs.app/MouseSettings.c:720 msgid "Window list menu" msgstr "Seznam oken" -#: ../../WPrefs.app/MouseSettings.c:703 +#: ../../WPrefs.app/MouseSettings.c:726 msgid "Select windows" -msgstr "Vyber okna" +msgstr "Vyberte okna" -#: ../../WPrefs.app/MouseSettings.c:738 +#: ../../WPrefs.app/MouseSettings.c:761 msgid "Mouse Grab Modifier" msgstr "Modifikátor pro my¹" -#: ../../WPrefs.app/MouseSettings.c:772 +#: ../../WPrefs.app/MouseSettings.c:795 #, c-format msgid "could not create %s" msgstr "nelze vytvoøit \"%s\"" -#: ../../WPrefs.app/MouseSettings.c:788 +#: ../../WPrefs.app/MouseSettings.c:811 #, c-format msgid "could not create temporary file %s" msgstr "nelze vytvoøit doèasný soubor %s" -#: ../../WPrefs.app/MouseSettings.c:813 +#: ../../WPrefs.app/MouseSettings.c:836 #, c-format msgid "could not rename file %s to %s\n" msgstr "soubor %s nelze pøejmenovat na %s\n" -#: ../../WPrefs.app/MouseSettings.c:896 +#: ../../WPrefs.app/MouseSettings.c:919 msgid "Mouse Preferences" msgstr "Nastavení my¹i" @@ -937,7 +955,7 @@ msgstr "nekompletn #: ../../WPrefs.app/Preferences.c:190 msgid "miniwindow titles" -msgstr "ikony" +msgstr "titulky minioken" #: ../../WPrefs.app/Preferences.c:191 msgid "application/dock icons" @@ -949,7 +967,7 @@ msgstr "P #: ../../WPrefs.app/Preferences.c:210 msgid "Keep keyboard language status for each window." -msgstr "Pro ka¾dé okno pamatovat nastavení jazyka." +msgstr "Pro ka¾dé okno pamatovat nastavení klávesnice." #: ../../WPrefs.app/Preferences.c:231 msgid "Miscellaneous Ergonomic Preferences" @@ -978,7 +996,7 @@ msgstr "Font polo #: ../../WPrefs.app/Text.c:265 msgid "Icon Title Font" -msgstr "Font titulkù ikon" +msgstr "Font titulku ikon" #: ../../WPrefs.app/Text.c:266 msgid "Clip Title Font" @@ -1185,11 +1203,11 @@ msgstr "V #: ../../WPrefs.app/WPrefs.c:237 msgid "Save" -msgstr "Ulo¾" +msgstr "Ulo¾it" #: ../../WPrefs.app/WPrefs.c:243 msgid "Close" -msgstr "Uzavøi" +msgstr "Uzavøít" #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences Utility" @@ -1222,11 +1240,11 @@ msgstr "nelze naj #: ../../WPrefs.app/WPrefs.c:474 #, c-format msgid "could not load image file %s:%s" -msgstr "nelze naèíst soubor sobrázkem %s:%s" +msgstr "nelze naèíst soubor s obrázkem %s:%s" #: ../../WPrefs.app/WPrefs.c:493 msgid "Loading Window Maker configuration files..." -msgstr "Ètu konfiguraèní soubory Window Makeru" +msgstr "Konfiguraèní soubory Window Makeru se naèítají..." #: ../../WPrefs.app/WPrefs.c:497 msgid "Initializing configuration panels..." @@ -1237,7 +1255,10 @@ msgid "" "WPrefs is free software and is distributed WITHOUT ANY WARRANTY under the " "terms of the GNU General Public License. Redistribution of the icons in this " "program separately from the program is prohibited." -msgstr "Program WPrefs je volnì ¹iøitelný software, který je distribuován BEZ JAKÉKOLI ZÁRUKY pod Obecnou Veøejnou Licencí GNU. Redistribuce ikon z tohoto programu bez programu samotného je zakázána." +msgstr "" +"Program WPrefs je volnì ¹iøitelný software, který je distribuován BEZ " +"JAKÉKOLI ZÁRUKY pod Obecnou Veøejnou Licencí GNU. Redistribuce ikon z tohoto " +"programu bez programu samotného není povolena." #: ../../WPrefs.app/WPrefs.c:557 ../../WPrefs.app/WPrefs.c:613 #, c-format @@ -1261,7 +1282,9 @@ msgstr "Zajist msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." -msgstr "Od Window Makeru nelze získat èíslo verze. Zjistìte, je-li správnì instalován a je v prohledávaných adresáøích." +msgstr "" +"Od Window Makeru nelze získat èíslo verze. Zjistìte, je-li správnì " +"instalován a je v prohledávaných adresáøích." #: ../../WPrefs.app/WPrefs.c:583 msgid "" @@ -1290,8 +1313,8 @@ msgstr "" "podporován." #: ../../WPrefs.app/WPrefs.c:602 -msgid "could not run \"wmaker -global_defaults_path\"." -msgstr "nelze provést \"wmaker -global_defaults_path\"" +msgid "could not run \"wmaker --global_defaults_path\"." +msgstr "nelze provést \"wmaker --global_defaults_path\"" #: ../../WPrefs.app/WPrefs.c:617 #, c-format @@ -1357,8 +1380,8 @@ msgid "...do not resize over dock" msgstr "... nezvìt¹ovat pøes dok" #: ../../WPrefs.app/WindowHandling.c:320 -msgid "Keep transients above their owners" -msgstr "Dialogy dr¾et nad vlastníky" +msgid "Open transients in same workspace as their owners" +msgstr "Otevøít dialogy na stejné plo¹e, jako je vlastník" #: ../../WPrefs.app/WindowHandling.c:347 msgid "Window Handling Preferences" @@ -1376,11 +1399,11 @@ msgstr "t msgid "" "switch to first workspace when switching past the last workspace and " "vice-versa" -msgstr "za poslední plochou pøepni opìt na první a opaènì" +msgstr "za poslední plochou pøepnout na první a opaènì" #: ../../WPrefs.app/Workspace.c:210 msgid "create a new workspace when switching past the last workspace." -msgstr "za poslední plochou vytvoø pøi pøepnutí novou." +msgstr "za poslední plochou vytvoøit pøi pøepnutí novou." #: ../../WPrefs.app/Workspace.c:218 msgid "Dock/Clip" @@ -1388,43 +1411,47 @@ msgstr "Dok/Sponka" #: ../../WPrefs.app/Workspace.c:287 msgid "Workspace Preferences" -msgstr "Nastavení pracovní plochy " +msgstr "Nastavení pracovní plochy" -#: ../../WPrefs.app/main.c:72 +#: ../../WPrefs.app/main.c:71 #, c-format msgid "usage: %s [options]\n" msgstr "pou¾ití: %s [volby]\n" -#: ../../WPrefs.app/main.c:73 +#: ../../WPrefs.app/main.c:72 msgid "options:" msgstr "volby:" -#: ../../WPrefs.app/main.c:74 +#: ../../WPrefs.app/main.c:73 msgid " -display \tdisplay to be used" msgstr " -display \tkterý display pou¾ít" +#: ../../WPrefs.app/main.c:74 +msgid " --version\t\tprint version number and exit" +msgstr " --version\t\tzobraz verzi a konec" + #: ../../WPrefs.app/main.c:75 -msgid " -version\t\tprint version number and exit" -msgstr " -version\t\tzobraz verzi a konec" +msgid " --help\t\tprint this message and exit" +msgstr " --help\t\tzobraz nápovìdu a konec" -#: ../../WPrefs.app/main.c:132 +#: ../../WPrefs.app/main.c:134 #, c-format msgid "too few arguments for %s" msgstr "nedostatek argumetù pro %s" -#: ../../WPrefs.app/main.c:154 +#: ../../WPrefs.app/main.c:156 msgid "X server does not support locale" msgstr "X server nepodporuje nastavení místních zvyklostí" -#: ../../WPrefs.app/main.c:157 +#: ../../WPrefs.app/main.c:159 msgid "cannot set locale modifiers" msgstr "nelze nastavit modifikátory místních zvyklostí" -#: ../../WPrefs.app/main.c:163 +#: ../../WPrefs.app/main.c:165 #, c-format msgid "could not open display %s" msgstr "nelze otevøít displej %s" -#: ../../WPrefs.app/main.c:171 +#: ../../WPrefs.app/main.c:173 msgid "could not initialize application" msgstr "nelze inicializovat aplikaci" diff --git a/WPrefs.app/po/ko.po b/WPrefs.app/po/ko.po index 21f79b3b..fcda53cf 100644 --- a/WPrefs.app/po/ko.po +++ b/WPrefs.app/po/ko.po @@ -1,1439 +1,1466 @@ -# WPrefs.app po file for Korean. -# Copyright (C) 1998 Free Software Foundation, Inc. -# Byeong-Chan Kim , 1998. -# Update: CHOI Junho , 1998/12. -# -msgid "" -msgstr "" -"Project-Id-Version: 0.10\n" -"POT-Creation-Date: 1999-01-11 06:34+0900\n" -"PO-Revision-Date: 1999-01-11 06:20+0900\n" -"Last-Translator: Byeong-Chan Kim \n" -"Language-Team: Korean\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=EUC-KR\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148 -#: ../../WPrefs.app/MouseSettings.c:510 ../../WPrefs.app/WindowHandling.c:274 -#: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71 -#: ../../WPrefs.app/Workspace.c:77 -#, c-format -msgid "could not load icon %s" -msgstr "¾ÆÀÌÄÜ %s¸¦ ÀоîµéÀÏ ¼ö ¾øÀ½" - -#: ../../WPrefs.app/Configurations.c:156 ../../WPrefs.app/Workspace.c:85 -#, c-format -msgid "could not process icon %s:" -msgstr "¾ÆÀÌÄÜ %s¸¦ ó¸®ÇÒ ¼ö ¾øÀ½:" - -#: ../../WPrefs.app/Configurations.c:181 ../../WPrefs.app/Workspace.c:124 -#, c-format -msgid "could not load image file %s" -msgstr "À̹ÌÁö ÆÄÀÏ %s¸¦ ÀÐÀ» ¼ö ¾øÀ½" - -#: ../../WPrefs.app/Configurations.c:195 -msgid "Icon Slide Speed" -msgstr "¾ÆÀÌÄÜ ½½¶óÀÌµå ¼Óµµ" - -#: ../../WPrefs.app/Configurations.c:201 -msgid "Shade Animation Speed" -msgstr "½¦ÀÌµå ¾Ö´Ï¸ÞÀÌ¼Ç ¼Óµµ" - -#: ../../WPrefs.app/Configurations.c:234 ../../WPrefs.app/Configurations.c:246 -#: ../../WPrefs.app/Focus.c:310 ../../WPrefs.app/Focus.c:321 -#: ../../WPrefs.app/MenuPreferences.c:135 -#: ../../WPrefs.app/MenuPreferences.c:146 -#: ../../WPrefs.app/MenuPreferences.c:174 -#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:538 -#: ../../WPrefs.app/MouseSettings.c:549 ../../WPrefs.app/MouseSettings.c:604 -#: ../../WPrefs.app/MouseSettings.c:615 ../../WPrefs.app/MouseSettings.c:651 -#: ../../WPrefs.app/MouseSettings.c:666 ../../WPrefs.app/MouseSettings.c:682 -#: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421 -#, c-format -msgid "could not load icon file %s" -msgstr "¾ÆÀÌÄÜ ÆÄÀÏ %s¸¦ ÀÐÀ» ¼ö ¾øÀ½" - -#: ../../WPrefs.app/Configurations.c:262 -msgid "Titlebar Style" -msgstr "ŸÀÌƲ¹Ù ½ºÅ¸ÀÏ" - -#: ../../WPrefs.app/Configurations.c:299 -msgid "Animations and Sound" -msgstr "¾Ö´Ï¸ÞÀ̼ǰú À½ÇâÈ¿°ú" - -#: ../../WPrefs.app/Configurations.c:305 -msgid "Animations" -msgstr "¾Ö´Ï¸ÞÀ̼Ç" - -#: ../../WPrefs.app/Configurations.c:321 -msgid "Superfluous" -msgstr "Superfluous" - -#: ../../WPrefs.app/Configurations.c:337 -msgid "Sounds" -msgstr "À½ÇâÈ¿°ú" - -#: ../../WPrefs.app/Configurations.c:354 -msgid "Note: sound requires a module distributed separately" -msgstr "ÁÖÀÇ: À½ÇâÈ¿°ú´Â µû·ÎÀÌ ¹èÆ÷µÇ´Â ¸ðµâÀÌ ÇÊ¿äÇÕ´Ï´Ù" - -#: ../../WPrefs.app/Configurations.c:364 -msgid "Dithering colormap for 8bpp" -msgstr "256»ö¿ë Ä÷¯¸Ê µð´õ¸µ" - -#: ../../WPrefs.app/Configurations.c:369 -msgid "Disable dithering in any visual/depth" -msgstr "¸ðµç ºñÁÖ¾ó/»ö»ó ±íÀÌ¿¡¼­ µð´õ¸µ »ç¿ëÇÏÁö ¾ÊÀ½" - -#: ../../WPrefs.app/Configurations.c:390 -msgid "More colors for applications" -msgstr "¾ÖÇø®ÄÉÀ̼ǿ¡ ´õ ¸¹Àº Ä÷¯ ºÎ¿©" - -#: ../../WPrefs.app/Configurations.c:397 -msgid "More colors for WindowMaker" -msgstr "Window Maker¿¡ ´õ ¸¹Àº Ä÷¯ ºÎ¿©" - -#: ../../WPrefs.app/Configurations.c:450 -msgid "Other Configurations" -msgstr "±× ¿Ü ¼³Á¤" - -#: ../../WPrefs.app/Expert.c:70 -msgid "Do not set non-WindowMaker specific parameters (do not use xset)" -msgstr "Window MakerÀÇ ±â´ÉÀÌ ¾Æ´Ñ °ÍÀº ¼³Á¤ÇÏÁö ¾ÊÀ½(xsetÀ» »ç¿ëÇÏÁö ¾ÊÀ½)" - -#: ../../WPrefs.app/Expert.c:71 -msgid "Automatically save session when exiting WindowMaker" -msgstr "Window Maker Á¾·á½Ã ¼¼¼Ç ÀÚµ¿ ÀúÀå" - -#: ../../WPrefs.app/Expert.c:72 -msgid "Use SaveUnder in window frames, icons, menus and other objects" -msgstr "â ÇÁ·¹ÀÓ, ¾ÆÀÌÄÜ, ¸Þ´º µî¿¡¼­ SaveUnder »ç¿ëÇÔ" - -#: ../../WPrefs.app/Expert.c:73 -msgid "Disable cycling color highlighting of icons." -msgstr "¾ÆÀÌÄÜ¿¡ »ö»ó ÇÏÀ̶óÀÌÆà ¼øȯ »ç¿ë ¾ÊÀ½." - -#: ../../WPrefs.app/Expert.c:103 -msgid "Expert User Preferences" -msgstr "°í±Þ »ç¿ëÀÚ¿ë ¼³Á¤" - -#: ../../WPrefs.app/Focus.c:79 -#, c-format -msgid "bad option value %s for option FocusMode. Using default Manual" -msgstr "FocusMode ¿É¼Ç¿¡ À߸øµÈ °ª %s. ±âº»°ªÀÎ ManualÀ» »ç¿ë" - -#: ../../WPrefs.app/Focus.c:92 -#, c-format -msgid "bad option value %s for option ColormapMode. Using default Manual" -msgstr "ColormapMode ¿É¼Ç¿¡ À߸øµÈ °ª %s. ±âº»°ªÀÎ ManualÀ» »ç¿ë" - -#: ../../WPrefs.app/Focus.c:190 -msgid "" -"Click on the window to set\n" -"keyboard input focus." -msgstr "" -"âÀ» Ŭ¸¯ÇÏ¸é ±× Ã¢ÀÌ È°¼ºÈ­\n" -"µË´Ï´Ù." - -#: ../../WPrefs.app/Focus.c:194 -msgid "" -"Set keyboard input focus to\n" -"the window under the mouse pointer,\n" -"including the root window." -msgstr "" -"¸¶¿ì½º Æ÷ÀÎÅ͸¦ ·çÆ® âÀ»\n" -"Æ÷ÇÔÇÑ ¸ðµç ⠾Ʒ¡¿¡ ³õÀ¸¸é\n" -"±× âÀÌ È°¼ºÈ­µË´Ï´Ù." - -#: ../../WPrefs.app/Focus.c:199 -msgid "" -"Set keyboard input focus to\n" -"the window under the mouse pointer,\n" -"except the root window." -msgstr "" -"¸¶¿ì½º Æ÷ÀÎÅ͸¦ ·çÆ® âÀ»\n" -"Á¦¿ÜÇÑ ¸ðµç ⠾Ʒ¡¿¡ ³õÀ¸¸é\n" -"±× âÀÌ È°¼ºÈ­µË´Ï´Ù." - -#: ../../WPrefs.app/Focus.c:243 -msgid "Input Focus Mode" -msgstr "ÀÔ·Â È°¼ºÈ­ ¸ðµå" - -#: ../../WPrefs.app/Focus.c:248 -msgid "Click window to focus" -msgstr "È°¼ºÈ­Çϱâ À§ÇØ Ã¢À» Ŭ¸¯" - -#: ../../WPrefs.app/Focus.c:249 -msgid "Focus follows mouse" -msgstr "¸¶¿ì½º¸¦ µû¸£´Â È°¼ºÈ­ ¸ðµå" - -#: ../../WPrefs.app/Focus.c:250 -msgid "\"Sloppy\" focus" -msgstr "\"´À½¼ÇÑ\" È°¼ºÈ­ ¸ðµå" - -#: ../../WPrefs.app/Focus.c:265 -msgid "Install colormap in the window..." -msgstr "Ä÷¯¸ÊÀÇ ¼³Ä¡´Â..." - -#: ../../WPrefs.app/Focus.c:270 -msgid "...that has the input focus." -msgstr "...ÀÔ·Â È°¼ºÈ­°¡ µÈ â." - -#: ../../WPrefs.app/Focus.c:275 -msgid "...that is under the mouse pointer." -msgstr "...¸¶¿ì½º Æ÷ÀÎÅÍ ¾Æ·¡ÀÇ Ã¢." - -#: ../../WPrefs.app/Focus.c:284 -msgid "Automatic Window Raise Delay" -msgstr "ÀÚµ¿ ⠿ø®±â Áö¿¬ ½Ã°£" - -#: ../../WPrefs.app/Focus.c:341 -msgid "msec" -msgstr "msec" - -#: ../../WPrefs.app/Focus.c:358 -msgid "Do not let applications receive the click used to focus windows." -msgstr "¾îÇø®ÄÉÀ̼ÇÀÌ Ã¢À» È°¼ºÈ­Çϴ Ŭ¸¯À» ¹ÞÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù." - -#: ../../WPrefs.app/Focus.c:364 -msgid "Automatically focus new windows." -msgstr "»õ·Î¿î âÀ» ÀÚµ¿ È°¼ºÈ­ÇÕ´Ï´Ù." - -#: ../../WPrefs.app/Focus.c:385 -msgid "Window Focus Preferences" -msgstr "â È°¼ºÈ­ ¼³Á¤" - -#: ../../WPrefs.app/Icons.c:178 -msgid "Icon Positioning" -msgstr "¾ÆÀÌÄÜ À§Ä¡" - -#: ../../WPrefs.app/Icons.c:225 -msgid "Iconification Animation" -msgstr "¾ÆÀÌÄÜÈ­½Ã ¾Ö´Ï¸ÞÀ̼Ç" - -#: ../../WPrefs.app/Icons.c:236 -msgid "Shrinking/Zooming" -msgstr "Ãà¼Ò/È®´ë" - -#: ../../WPrefs.app/Icons.c:237 -msgid "Spinning/Twisting" -msgstr "ȸÀü/Æ®À§½ºÆ®" - -#: ../../WPrefs.app/Icons.c:238 -msgid "3D-flipping" -msgstr "3Â÷¿ø ȸÀü" - -#: ../../WPrefs.app/Icons.c:239 -msgid "None" -msgstr "¾øÀ½" - -#: ../../WPrefs.app/Icons.c:247 -msgid "Icon Display" -msgstr "¾ÆÀÌÄÜ Ç¥½Ã ¹æ¹ý" - -#: ../../WPrefs.app/Icons.c:252 -msgid "Auto-arrange icons" -msgstr "¾ÆÀÌÄÜ ÀÚµ¿ Á¤·Ä" - -#: ../../WPrefs.app/Icons.c:257 -msgid "Omnipresent miniwindows" -msgstr "¾ÆÀÌÄÜ Ç×»ó º¸ÀÓ" - -#: ../../WPrefs.app/Icons.c:265 -msgid "Icon Size" -msgstr "¾ÆÀÌÄÜ Å©±â" - -#: ../../WPrefs.app/Icons.c:335 -msgid "Icon Preferences" -msgstr "¾ÆÀÌÄÜ ¼³Á¤" - -#: ../../WPrefs.app/KeyboardSettings.c:72 -msgid "Initial Key Repeat" -msgstr "Ãʱâ Å° ¹Ýº¹ ¼Óµµ" - -#: ../../WPrefs.app/KeyboardSettings.c:113 -msgid "Key Repeat Rate" -msgstr "Å° ¹Ýº¹À²" - -#: ../../WPrefs.app/KeyboardSettings.c:153 -msgid "Type here to test" -msgstr "¿©±â¼­ ½ÃÇèÇϼ¼¿ä" - -#: ../../WPrefs.app/KeyboardSettings.c:172 -msgid "Keyboard Preferences" -msgstr "Å°º¸µå ¼³Á¤" - -#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:932 -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/MenuGuru.c:263 -msgid "Cancel" -msgstr "Ãë¼Ò" - -#: ../../WPrefs.app/KeyboardShortcuts.c:184 -msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." -msgstr "¿øÇÏ´Â ´ÜÃàÅ°¸¦ ´©¸£½Ê½Ã¿À. Ãë¼Ò¸¦ ´©¸£¸é ĸÃÄ°¡ Áߴܵ˴ϴÙ." - -#: ../../WPrefs.app/KeyboardShortcuts.c:204 -#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:944 -#: ../../WPrefs.app/Menu.c:1166 -msgid "Capture" -msgstr "ĸÃÄ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:205 -#: ../../WPrefs.app/KeyboardShortcuts.c:451 -msgid "Click Capture to interactively define the shortcut key." -msgstr "ĸÃÄ ¹öÆ°À» ´­·¯ ´ÜÃàÅ°¸¦ ½±°Ô ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù." - -#: ../../WPrefs.app/KeyboardShortcuts.c:359 -msgid "Actions" -msgstr "µ¿ÀÛ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:375 -msgid "Open applications menu" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º ¿­±â" - -#: ../../WPrefs.app/KeyboardShortcuts.c:376 -msgid "Open window list menu" -msgstr "â ¸ñ·Ï ¸Þ´º ¿­±â" - -#: ../../WPrefs.app/KeyboardShortcuts.c:377 -msgid "Open window commands menu" -msgstr "â ¸í·É ¸Þ´º ¿­±â" - -#: ../../WPrefs.app/KeyboardShortcuts.c:378 -msgid "Hide active application" -msgstr "È°¼ºÈ­µÈ ¾ÖÇø®ÄÉÀÌ¼Ç ¼û±è" - -#: ../../WPrefs.app/KeyboardShortcuts.c:379 -msgid "Miniaturize active window" -msgstr "È°¼ºÈ­µÈ â ÃÖ¼ÒÈ­" - -#: ../../WPrefs.app/KeyboardShortcuts.c:380 -msgid "Close active window" -msgstr "È°¼ºÈ­µÈ ⠴ݱâ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:381 -msgid "Maximize active window" -msgstr "È°¼ºÈ­µÈ â ÃÖ´ëÈ­" - -#: ../../WPrefs.app/KeyboardShortcuts.c:382 -msgid "Maximize active window vertically" -msgstr "âÀ» ¼¼·Î·Î ÃÖ´ëÈ­" - -#: ../../WPrefs.app/KeyboardShortcuts.c:383 -msgid "Raise active window" -msgstr "È°¼ºÈ­µÈ âÀ» À§·Î" - -#: ../../WPrefs.app/KeyboardShortcuts.c:384 -msgid "Lower active window" -msgstr "È°¼ºÈ­µÈ âÀ» ¾Æ·¡·Î" - -#: ../../WPrefs.app/KeyboardShortcuts.c:385 -msgid "Raise/Lower window under mouse pointer" -msgstr "¸¶¿ì½º°¡ À§Ä¡ÇÑ Ã¢ ¿Ã¸²/³»¸²" - -#: ../../WPrefs.app/KeyboardShortcuts.c:386 -msgid "Shade active window" -msgstr "È°¼ºÈ­µÈ â ½¦À̵ùÇϱâ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:387 -msgid "Move/Resize active window" -msgstr "È°¼ºÈ­µÈ â À̵¿/Å©±â¹Ù²Þ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:388 -msgid "Select active window" -msgstr "È°¼ºÈ­ â ¼±ÅÃ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:389 -msgid "Focus next window" -msgstr "´ÙÀ½ â È°¼ºÈ­" - -#: ../../WPrefs.app/KeyboardShortcuts.c:390 -msgid "Focus previous window" -msgstr "ÀÌÀü â È°¼ºÈ­" - -#: ../../WPrefs.app/KeyboardShortcuts.c:391 -msgid "Switch to next workspace" -msgstr "´ÙÀ½ ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:392 -msgid "Switch to previous workspace" -msgstr "ÀÌÀü ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:393 -msgid "Switch to next ten workspaces" -msgstr "10°³ ´ÙÀ½ ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:394 -msgid "Switch to previous ten workspaces" -msgstr "10°³ ÀÌÀü ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:395 -msgid "Switch to workspace 1" -msgstr "1¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:396 -msgid "Switch to workspace 2" -msgstr "2¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:397 -msgid "Switch to workspace 3" -msgstr "3¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:398 -msgid "Switch to workspace 4" -msgstr "4¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:399 -msgid "Switch to workspace 5" -msgstr "5¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:400 -msgid "Switch to workspace 6" -msgstr "6¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:401 -msgid "Switch to workspace 7" -msgstr "7¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:402 -msgid "Switch to workspace 8" -msgstr "8¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:403 -msgid "Switch to workspace 9" -msgstr "9¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:404 -msgid "Switch to workspace 10" -msgstr "10¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:405 -msgid "Shortcut for window 1" -msgstr "1¹ø â ´ÜÃàÅ°" - -#: ../../WPrefs.app/KeyboardShortcuts.c:406 -msgid "Shortcut for window 2" -msgstr "2¹ø â ´ÜÃàÅ°" - -#: ../../WPrefs.app/KeyboardShortcuts.c:407 -msgid "Shortcut for window 3" -msgstr "3¹ø â ´ÜÃàÅ°" - -#: ../../WPrefs.app/KeyboardShortcuts.c:408 -msgid "Shortcut for window 4" -msgstr "4¹ø â ´ÜÃàÅ°" - -#: ../../WPrefs.app/KeyboardShortcuts.c:409 -msgid "Raise Clip" -msgstr "Ŭ¸³ ¿Ã¸²" - -#: ../../WPrefs.app/KeyboardShortcuts.c:410 -msgid "Lower Clip" -msgstr "Ŭ¸³ ³»¸²" - -#: ../../WPrefs.app/KeyboardShortcuts.c:411 -msgid "Raise/Lower Clip" -msgstr "Ŭ¸³ ¿Ã¸²/³»¸²" - -#: ../../WPrefs.app/KeyboardShortcuts.c:413 -msgid "Toggle keyboard language" -msgstr "Å°º¸µå ¾ð¾î ¼±ÅÃ" - -#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1155 -msgid "Shortcut" -msgstr "´ÜÃàÅ°" - -#: ../../WPrefs.app/KeyboardShortcuts.c:438 -msgid "Clear" -msgstr "Áö¿ò" - -#: ../../WPrefs.app/KeyboardShortcuts.c:499 -msgid "Keyboard Shortcut Preferences" -msgstr "Å°º¸µå ´ÜÃàÅ° ¼³Á¤" - -#: ../../WPrefs.app/Menu.c:373 -msgid "Window Manager" -msgstr "â °ü¸®ÀÚ" - -#: ../../WPrefs.app/Menu.c:375 -msgid "Program to open files" -msgstr "ÆÄÀÏÀ» ¿­ ÇÁ·Î±×·¥" - -#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1142 -msgid "Program to Run" -msgstr "½ÇÇàÇÒ ÇÁ·Î±×·¥" - -#: ../../WPrefs.app/Menu.c:427 ../../WPrefs.app/Menu.c:428 -#, c-format -msgid "New Command %i" -msgstr "»õ ¸í·É %i" - -#: ../../WPrefs.app/Menu.c:435 -msgid "New Submenu" -msgstr "»õ ÇϺθ޴º" - -#: ../../WPrefs.app/Menu.c:440 -msgid "External Menu" -msgstr "¿ÜºÎ ¸Þ´º" - -#: ../../WPrefs.app/Menu.c:447 -msgid "Workspaces" -msgstr "ÀÛ¾÷ °ø°£" - -#: ../../WPrefs.app/Menu.c:1026 ../../WPrefs.app/Menu.c:1041 -msgid "Commands" -msgstr "¸í·É" - -#: ../../WPrefs.app/Menu.c:1027 ../../WPrefs.app/Menu.c:1042 -msgid "Add Command" -msgstr "¸í·É Ãß°¡" - -#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 -msgid "Add Submenu" -msgstr "ÇϺθ޴º Ãß°¡" - -#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 -msgid "Add External Menu" -msgstr "¿ÜºÎ ¸Þ´º Ãß°¡" - -#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 -msgid "Add Workspace Menu" -msgstr "ÀÛ¾÷°ø°£ ¸Þ´º Ãß°¡" - -#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046 -msgid "Remove Item" -msgstr "Ç׸ñ »èÁ¦" - -#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047 -msgid "Cut Item" -msgstr "Ç׸ñ À߶󳻱â" - -#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 -msgid "Copy Item" -msgstr "Ç׸ñ º¹»ç" - -#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 -msgid "Paste Item" -msgstr "Ç׸ñ ºÙÀ̱â" - -#: ../../WPrefs.app/Menu.c:1078 -msgid "Label" -msgstr "·¹À̺í" - -#: ../../WPrefs.app/Menu.c:1091 -msgid "Command" -msgstr "¸í·É" - -#: ../../WPrefs.app/Menu.c:1096 -msgid "Run Program" -msgstr "ÇÁ·Î±×·¥ ½ÇÇà" - -#: ../../WPrefs.app/Menu.c:1097 -msgid "Arrange Icons" -msgstr "¾ÆÀÌÄÜ Á¤·Ä" - -#: ../../WPrefs.app/Menu.c:1098 -msgid "Hide Others" -msgstr "´Ù¸¥ â ¼û±â±â" - -#: ../../WPrefs.app/Menu.c:1099 -msgid "Show All Windows" -msgstr "¸ðµç â º¸À̱â" - -#: ../../WPrefs.app/Menu.c:1100 -msgid "Exit WindowMaker" -msgstr "Window Maker Á¾·á" - -#: ../../WPrefs.app/Menu.c:1101 -msgid "Exit X Session" -msgstr "X ¼¼¼Ç Á¾·á" - -#: ../../WPrefs.app/Menu.c:1102 -msgid "Start window manager" -msgstr "â °ü¸®ÀÚ ½ÃÀÛ " - -#: ../../WPrefs.app/Menu.c:1103 -msgid "Restart WindowMaker" -msgstr "Window Maker Àç½ÃÀÛ" - -#: ../../WPrefs.app/Menu.c:1104 -msgid "Save Session" -msgstr "¼¼¼Ç ÀúÀå" - -#: ../../WPrefs.app/Menu.c:1105 -msgid "Clear Session" -msgstr "¼¼¼Ç Áö¿ì±â" - -#: ../../WPrefs.app/Menu.c:1106 -msgid "Refresh Screen" -msgstr "´Ù½Ã ±×¸®±â" - -#: ../../WPrefs.app/Menu.c:1107 -msgid "Info Panel" -msgstr "Á¤º¸ ÆгÎ" - -#: ../../WPrefs.app/Menu.c:1108 -msgid "Legal Panel" -msgstr "¹ýÀû Á¤º¸ ÆгÎ" - -#: ../../WPrefs.app/Menu.c:1116 -msgid "Open workspace menu" -msgstr "ÀÛ¾÷°ø°£ ¸Þ´º ¿­±â" - -#: ../../WPrefs.app/Menu.c:1123 -msgid "No confirmation panel" -msgstr "È®ÀÎ ÆгΠ¾øÀ½" - -#: ../../WPrefs.app/Menu.c:1129 -msgid "Menu Path/Directory List" -msgstr "¸Þ´º °æ·Î/µð·ºÅ丮 ¸ñ·Ï" - -#: ../../WPrefs.app/Menu.c:1174 -msgid "Ask help to the Guru" -msgstr "Guru¿¡°Ô µµ¿ò ¿äû" - -#: ../../WPrefs.app/Menu.c:1294 -msgid "" -"The format of the current menu in ~/G/D/WMRootMenu is not supported by " -"WPrefs. A new menu will be created.\n" -"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu to get the default " -"menu." -msgstr "" -"~/Gnustep/Defaults/WMRootMenÀÇ ¸Þ´º´Â WPrefs°¡ Áö¿øÇÏ´Â Çü½ÄÀÌ ¾Æ´Õ´Ï´Ù. " -"»õ·Î¿î ¸Þ´º¸¦ ¸¸µì´Ï´Ù.\n" -"±âº» ¸Þ´º·Î »ç¿ëÇÏ·Á¸é ~/G/D/WMRootMenu¸¦ ~/G/L/W/plmenu.ko·Î ¹Ù²Ù¸é µË´Ï´Ù." - -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1304 -#: ../../WPrefs.app/WPrefs.c:597 -msgid "Warning" -msgstr "°æ°í" - -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1305 -#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 -#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:156 -#: ../../WPrefs.app/Text.c:181 ../../WPrefs.app/Themes.c:98 -#: ../../WPrefs.app/WPrefs.c:558 ../../WPrefs.app/WPrefs.c:563 -#: ../../WPrefs.app/WPrefs.c:574 ../../WPrefs.app/WPrefs.c:584 -#: ../../WPrefs.app/WPrefs.c:590 ../../WPrefs.app/WPrefs.c:597 -#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 -msgid "OK" -msgstr "È®ÀÎ" - -#: ../../WPrefs.app/Menu.c:1304 -msgid "Any changes made in this section will not be saved" -msgstr "ÀÌ ¼½¼Ç¿¡¼­ ¼öÁ¤ÇÑ ³»¿ëÀº ÀúÀåµÇÁö ¾Ê½À´Ï´Ù" - -#: ../../WPrefs.app/Menu.c:1369 -msgid "Applications Menu Definition" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º Á¤ÀÇ" - -#: ../../WPrefs.app/MenuGuru.c:106 -msgid "Menu Guru - Select Type" -msgstr "¸Þ´º Guru - ÇüŸ¦ ¼±ÅÃÇϼ¼¿ä" - -#: ../../WPrefs.app/MenuGuru.c:111 ../../WPrefs.app/MenuGuru.c:133 -#: ../../WPrefs.app/MenuGuru.c:251 -msgid "Next" -msgstr "´ÙÀ½" - -#: ../../WPrefs.app/MenuGuru.c:114 -msgid "Menu Guru - Select Menu File" -msgstr "¸Þ´º Guru - ¸Þ´º ÆÄÀÏÀ» ¼±ÅÃÇϼ¼¿ä" - -#: ../../WPrefs.app/MenuGuru.c:122 -msgid "Menu Guru - Select Pipe Command" -msgstr "¸Þ´º Guru - ÆÄÀÌÇÁ ¸í·ÉÀ» ¼±ÅÃÇϼ¼¿ä" - -#: ../../WPrefs.app/MenuGuru.c:129 -msgid "Menu Guru - Select Directories" -msgstr "¸Þ´º Guru - µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä" - -#: ../../WPrefs.app/MenuGuru.c:136 -msgid "Menu Guru - Select Command" -msgstr "¸Þ´º Guru - ¸í·ÉÀ» ¼±ÅÃÇϼ¼¿ä" - -#: ../../WPrefs.app/MenuGuru.c:257 -msgid "Back" -msgstr "¾ÕÀ¸·Î" - -#: ../../WPrefs.app/MenuGuru.c:271 -msgid "" -"This process will help you create a submenu which definition is located in " -"another file or is created dynamically.\n" -"What do you want to use as the contents of the submenu?" -msgstr "" -"ÀÌ °úÁ¤Àº ´Ù¸¥ ÆÄÀÏ¿¡ Á¤ÀÇ°¡ Àְųª ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÇ´Â ÇϺθ޴º¸¦ ¸¸µå´Â µ¥ " -"µµ¿òÀ» ÁÝ´Ï´Ù.\n" -"ºÎ¸Þ´ºÀÇ ³»¿ëÀ¸·Î ¾î¶² °ÍÀ» »ç¿ëÇÏ°í ½Í½À´Ï±î?" - -#: ../../WPrefs.app/MenuGuru.c:279 -msgid "" -"A file containing the menu definition in the plain text (non-property list) " -"menu format." -msgstr "¸Þ´º Á¤ÀǸ¦ º¸Åë ÅؽºÆ®·Î(Ư¼º ¾ø´Â ¸ñ·Ï) ¾´ ÆÄÀÏ." - -#: ../../WPrefs.app/MenuGuru.c:285 -msgid "The menu definition generated by a script/program read through a pipe." -msgstr "½ºÅ©¸³Æ®/ÇÁ·Î±×·¥À¸·Î »ý¼ºÇÏ¿© ÆÄÀÌÇÁ·Î ÀоîµéÀÌ´Â ¸Þ´º Á¤ÀÇ." - -#: ../../WPrefs.app/MenuGuru.c:291 -msgid "The files in one or more directories." -msgstr "Çϳª ÀÌ»óÀÇ µð·ºÅ丮ÀÇ ÆÄÀÏ." - -#: ../../WPrefs.app/MenuGuru.c:303 -msgid "Type the path for the menu file:" -msgstr "¸Þ´º ÆÄÀÏÀÇ °æ·Î¸¦ ÀûÀ¸¼¼¿ä:" - -#: ../../WPrefs.app/MenuGuru.c:318 -msgid "" -"The menu file must contain a menu in the plain text menu file format. This " -"format is described in the menu files included with WindowMaker, probably at " -"~/GNUstep/Library/WindowMaker/menu" -msgstr "" -"¸Þ´º ÆÄÀÏÀÇ ³»¿ëÀº º¸Åë ÅؽºÆ®·Î µÈ ¸Þ´º ÆÄÀÏ Çü½ÄÀÇ ¸Þ´ºÀÔ´Ï´Ù. ÀÌ Çü½ÄÀº " -"WindowMaker¿¡ Æ÷ÇÔµÈ ¸Þ´º ÆÄÀÏÀ» º¸¸é µÇ¸ç, º¸Åë " -"~/GNUstep/Library/WindowMaker/menu.koÀÔ´Ï´Ù." - -#: ../../WPrefs.app/MenuGuru.c:328 -msgid "Type the command that will generate the menu definition:" -msgstr "¸Þ´º Á¤ÀǸ¦ ¸¸µé¾î³¾ ¸í·ÉÀ» ÀÔ·ÂÇϼ¼¿ä:" - -#: ../../WPrefs.app/MenuGuru.c:338 -msgid "" -"The command supplied must generate and output a valid menu definition to " -"stdout. This definition should be in the plain text menu file format, " -"described in the menu files included with WindowMaker, usually at " -"~/GNUstep/Library/WindowMaker/menu" -msgstr "" -"ÀÌ ¸í·ÉÀº À¯È¿ÇÑ ¸Þ´º Á¤ÀǸ¦ ¸¸µé¾î¼­ Ç¥ÁØ Ãâ·ÂÀ¸·Î ³»º¸³»¾ß ÇÕ´Ï´Ù. ÀÌ " -"Á¤ÀÇ´Â º¸Åë ÅؽºÆ®·Î µÈ ¸Þ´º ÆÄÀÏ Çü½ÄÀ̾î¾ß Çϸç, WindowMaker¿¡ Æ÷ÇÔµÈ ¸Þ´º " -"ÆÄÀÏ¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù. º¸Åë ~/GNUstep/Library/WindowMaker/menu.ko ÀÔ´Ï´Ù" - -#: ../../WPrefs.app/MenuGuru.c:350 ../../WPrefs.app/MenuGuru.c:372 -#: ../../WPrefs.app/MenuGuru.c:394 -msgid "" -"Type the path for the directory. You can type more than one path by " -"separating them with spaces." -msgstr "" -"µð·ºÅ丮ÀÇ °æ·Î¸¦ ÀÔ·ÂÇϼ¼¿ä. ºóÄ­À¸·Î ºÐ¸®Çؼ­ Çϳª ÀÌ»óÀÇ °æ·Î¸¦ ¾µ ¼ö " -"ÀÖ½À´Ï´Ù." - -#: ../../WPrefs.app/MenuGuru.c:361 ../../WPrefs.app/MenuGuru.c:383 -#: ../../WPrefs.app/MenuGuru.c:405 -msgid "" -"The menu generated will have an item for each file in the directory. The " -"directories can contain program executables or data files (such as jpeg " -"images)." -msgstr "" -"»ý¼ºµÇ´Â ¸Þ´º´Â µð·ºÅ丮ÀÇ °¢ ÆÄÀÏ¿¡ ´ëÇØ Ç׸ñÀ» °®½À´Ï´Ù. µð·ºÅ丮¿¡´Â " -"ÇÁ·Î±×·¥ ½ÇÇà ÆÄÀÏÀ̳ª µ¥ÀÌÅÍ ÆÄÀÏÀ» ³ÖÀ¸¸é µË´Ï´Ù.(jpeg À̹ÌÁö °°Àº °Íµé)" - -#: ../../WPrefs.app/MenuGuru.c:415 -msgid "" -"If the directory contain data files, type the command used to open these " -"files. Otherwise, leave it in blank." -msgstr "" -"µð·ºÅ丮¿¡ µ¥ÀÌÅÍ ÆÄÀÏÀÌ ÀÖ´Â °æ¿ì, ÀÌ ÆÄÀÏÀ» ¿­±â À§ÇØ »ç¿ëÇÒ ¸í·ÉÀ» " -"ÀÔ·ÂÇϼ¼¿ä. ±×·¸Áö ¾ÊÀ¸¸é ºóÄ­À¸·Î µÎ¼¼¿ä." - -#: ../../WPrefs.app/MenuGuru.c:426 -msgid "" -"Each file in the directory will have an item and they will be opened with " -"the supplied command.For example, if the directory contains image files and " -"the command is \"xv -root\", each file in the directory will have a menu " -"item like \"xv -root imagefile\"." -msgstr "" -"µð·ºÅ丮ÀÇ °¢ ÆÄÀÏ¿¡´Â Ç׸ñÀÌ ÀÖÀ¸¸ç Á¦°øµÈ ¸í·ÉÀ¸·Î ¿­ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ " -"µé¸é, ÀÌ µð·ºÅ丮¿¡ À̹ÌÁö ÆÄÀÏÀÌ ÀÖ°í ¸í·ÉÀÌ \"xv -root\"À̸é, µð·ºÅ丮ÀÇ " -"°¢ ÆÄÀÏÀº \"xv -root À̹ÌÁöÆÄÀÏ\"°ú °°Àº ¸Þ´º Ç׸ñÀ» °®½À´Ï´Ù." - -#: ../../WPrefs.app/MenuPreferences.c:112 -msgid "Menu Scrolling Speed" -msgstr "¸Þ´º ½ºÅ©·Ñ ¼Óµµ" - -#: ../../WPrefs.app/MenuPreferences.c:161 -msgid "Submenu Alignment" -msgstr "ºÎ¸Þ´º Á¤·Ä" - -#: ../../WPrefs.app/MenuPreferences.c:204 -msgid "" -"Always open submenus inside the screen, instead of scrolling.\n" -"Note: this can be an annoyance at some circumstances." -msgstr "" -"½ºÅ©·ÑÇÏ´Â ´ë½Å Ç×»ó È­¸é ³»¿¡ ºÎ¸Þ´º¸¦ ¿±´Ï´Ù.\n" -"ÁÖÀÇ: ¾î¶² ȯ°æ¿¡¼­´Â ±ÍÂúÀ»Áöµµ ¸ð¸¨´Ï´Ù." - -#: ../../WPrefs.app/MenuPreferences.c:209 -msgid "Scroll off-screen menus when pointer is moved over them." -msgstr "È­¸é ¹ÛÀ¸·Î ³ª°£ ¸Þ´º ÂÊÀ¸·Î ¸¶¿ì½º¸¦ ¿òÁ÷ÀÌ¸é ½ºÅ©·ÑÇÕ´Ï´Ù." - -#: ../../WPrefs.app/MenuPreferences.c:229 -msgid "Menu Preferences" -msgstr "¸Þ´º ¼³Á¤" - -#: ../../WPrefs.app/MouseSettings.c:148 -#, c-format -msgid "Accel.: %.2f" -msgstr "°¡¼Ó.: %.2f" - -#: ../../WPrefs.app/MouseSettings.c:154 ../../WPrefs.app/Text.c:181 -#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558 -#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572 -#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590 -#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 -msgid "Error" -msgstr "¿¡·¯" - -#: ../../WPrefs.app/MouseSettings.c:155 -msgid "" -"Invalid mouse acceleration threshold value. Must be the number of pixels to " -"travel before accelerating." -msgstr "" -"À߸øµÈ ¸¶¿ì½º °¡¼Ó ÀÓ°èÄ¡ °ªÀÔ´Ï´Ù. °¡¼Ó Àü¿¡ ¿òÁ÷ÀÏ Çȼ¿ÀÇ ¼ö°¡ µÇ¾î¾ß " -"ÇÕ´Ï´Ù." - -#: ../../WPrefs.app/MouseSettings.c:209 -#, c-format -msgid "mouse button %s not supported by WPrefs." -msgstr "¸¶¿ì½º ¹öÆ° %s ´Â WPrefs¿¡¼­ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù." - -#: ../../WPrefs.app/MouseSettings.c:243 ../../WPrefs.app/MouseSettings.c:254 -#: ../../WPrefs.app/MouseSettings.c:265 -#, c-format -msgid "bad value %s for option %s" -msgstr "%s ¿É¼Ç¿¡ À߸øµÈ °ª %s" - -#: ../../WPrefs.app/MouseSettings.c:325 -#, c-format -msgid "" -"modifier key %s for option ModifierKey was not recognized. Using %s as " -"default" -msgstr "" -"ModifierKey ÀÇ ¼öÁ¤ÀÚ Å° °ª %s ¸¦ ÀνÄÇÒ ¼ö ¾ø½À´Ï´Ù. ±âº»°ªÀÎ %s ¸¦ " -"»ç¿ëÇÕ´Ï´Ù." - -#: ../../WPrefs.app/MouseSettings.c:350 -msgid "could not retrieve keyboard modifier mapping" -msgstr "Å°º¸µå ¼öÁ¤ÀÚ ¸ÅÇÎÀ» ¾òÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../../WPrefs.app/MouseSettings.c:497 -msgid "Mouse Speed" -msgstr "¸¶¿ì½º ¼Óµµ" - -#: ../../WPrefs.app/MouseSettings.c:564 -msgid "Threshold:" -msgstr "ÀÓ°èÄ¡:" - -#: ../../WPrefs.app/MouseSettings.c:579 -msgid "Double-Click Delay" -msgstr "´õºí Ŭ¸¯ Áö¿¬" - -#: ../../WPrefs.app/MouseSettings.c:623 -msgid "Test" -msgstr "½ÃÇè" - -#: ../../WPrefs.app/MouseSettings.c:633 -msgid "Workspace Mouse Actions" -msgstr "ÀÛ¾÷°ø°£ ¸¶¿ì½º µ¿ÀÛ" - -#: ../../WPrefs.app/MouseSettings.c:638 -msgid "Disable mouse actions" -msgstr "¸¶¿ì½º µ¿ÀÛ »ç¿ë ¾ÊÀ½" - -#: ../../WPrefs.app/MouseSettings.c:691 -msgid "Applications menu" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º" - -#: ../../WPrefs.app/MouseSettings.c:697 -msgid "Window list menu" -msgstr "â ¸ñ·Ï ¸Þ´º" - -#: ../../WPrefs.app/MouseSettings.c:703 -msgid "Select windows" -msgstr "â ¼±ÅÃ" - -#: ../../WPrefs.app/MouseSettings.c:738 -msgid "Mouse Grab Modifier" -msgstr "¸¶¿ì½º Àâ±â ¼öÁ¤ÀÚ(Modifier)" - -#: ../../WPrefs.app/MouseSettings.c:772 -#, c-format -msgid "could not create %s" -msgstr "%s ¸¦ ¸¸µé ¼ö ¾øÀ½" - -#: ../../WPrefs.app/MouseSettings.c:788 -#, c-format -msgid "could not create temporary file %s" -msgstr "Àӽà ÆÄÀÏ %s ¸¦ ¸¸µé ¼ö ¾øÀ½" - -#: ../../WPrefs.app/MouseSettings.c:813 -#, c-format -msgid "could not rename file %s to %s\n" -msgstr "%s ÆÄÀϸíÀ» %s ·Î ¹Ù²Ü ¼ö ¾øÀ½\n" - -#: ../../WPrefs.app/MouseSettings.c:896 -msgid "Mouse Preferences" -msgstr "¸¶¿ì½º ¼³Á¤" - -#: ../../WPrefs.app/Paths.c:82 -msgid "bad value in option IconPath. Using default path list" -msgstr "IconPath ¿¡ À߸øµÈ °ª. ±âº» °æ·Î ¸ñ·Ï »ç¿ë" - -#: ../../WPrefs.app/Paths.c:99 -msgid "bad value in option PixmapPath. Using default path list" -msgstr "PixmapPath ¿¡ À߸øµÈ °ª. ±âº» °æ·Î ¸ñ·Ï »ç¿ë" - -#: ../../WPrefs.app/Paths.c:302 -msgid "Icon Search Paths" -msgstr "¾ÆÀÌÄÜ °Ë»ö °æ·Î" - -#: ../../WPrefs.app/Paths.c:314 ../../WPrefs.app/Paths.c:350 -msgid "Add" -msgstr "Ãß°¡" - -#: ../../WPrefs.app/Paths.c:321 ../../WPrefs.app/Paths.c:357 -msgid "Remove" -msgstr "»èÁ¦" - -#: ../../WPrefs.app/Paths.c:338 -msgid "Pixmap Search Paths" -msgstr "Pixmap °Ë»ö °æ·Î" - -#: ../../WPrefs.app/Paths.c:386 -msgid "Search Path Configuration" -msgstr "°Ë»ö °æ·Î ¼³Á¤" - -#: ../../WPrefs.app/Preferences.c:151 -msgid "Size Display" -msgstr "Å©±â Á¶Á¤ Ç¥½Ã ¹æ¹ý" - -#: ../../WPrefs.app/Preferences.c:156 ../../WPrefs.app/Preferences.c:172 -msgid "Corner of screen" -msgstr "È­¸é ±¸¼®" - -#: ../../WPrefs.app/Preferences.c:157 ../../WPrefs.app/Preferences.c:173 -msgid "Center of screen" -msgstr "È­¸é °¡¿îµ¥" - -#: ../../WPrefs.app/Preferences.c:158 ../../WPrefs.app/Preferences.c:174 -msgid "Center of resized window" -msgstr "ÇöÀç â °¡¿îµ¥" - -#: ../../WPrefs.app/Preferences.c:159 -msgid "Technical drawing-like" -msgstr "Á¦µµ Å©±â Ç¥½Ã ¹æ¹ýó·³" - -#: ../../WPrefs.app/Preferences.c:167 -msgid "Position Display" -msgstr "â À§Ä¡ Ç¥½Ã ¹æ¹ý" - -#: ../../WPrefs.app/Preferences.c:182 -msgid "Show balloon text for..." -msgstr "dz¼± µµ¿ò¸»Àº..." - -#: ../../WPrefs.app/Preferences.c:189 -msgid "incomplete window titles" -msgstr "ºÒ¿ÏÀüÇÑ Ã¢ ŸÀÌƲ¿¡ Ç¥½Ã" - -#: ../../WPrefs.app/Preferences.c:190 -msgid "miniwindow titles" -msgstr "¾ÆÀÌÄÜ Å¸ÀÌƲ¿¡ Ç¥½Ã" - -#: ../../WPrefs.app/Preferences.c:191 -msgid "application/dock icons" -msgstr "¾ÖÇø®ÄÉÀ̼Ç/dock ¾ÆÀÌÄÜ" - -#: ../../WPrefs.app/Preferences.c:204 -msgid "Raise window when switching focus with keyboard (CirculateRaise)." -msgstr "Å°º¸µå·Î Æ÷Ä¿½º Àüȯ½Ã ⠿ø²(CirculateRaise)." - -#: ../../WPrefs.app/Preferences.c:210 -msgid "Keep keyboard language status for each window." -msgstr "ÇöÀç âÀÇ Å°º¸µå ¾ð¾î »óÅ À¯Áö." - -#: ../../WPrefs.app/Preferences.c:231 -msgid "Miscellaneous Ergonomic Preferences" -msgstr "±âŸ Àΰ£ ȯ°æ °øÇÐÀû ¼³Á¤" - -#: ../../WPrefs.app/Text.c:179 -#, c-format -msgid "Invalid font %s." -msgstr "À߸øµÈ ±Û²Ã %s" - -#: ../../WPrefs.app/Text.c:256 -msgid "Set Font..." -msgstr "±Û²Ã ÁöÁ¤" - -#: ../../WPrefs.app/Text.c:262 -msgid "Window Title Font" -msgstr "â Á¦¸ñ ±Û²Ã" - -#: ../../WPrefs.app/Text.c:263 -msgid "Menu Title Font" -msgstr "¸Þ´º Á¦¸ñ ±Û²Ã" - -#: ../../WPrefs.app/Text.c:264 -msgid "Menu Item Font" -msgstr "¸Þ´º Ç׸ñ ±Û²Ã" - -#: ../../WPrefs.app/Text.c:265 -msgid "Icon Title Font" -msgstr "¾ÆÀÌÄÜ Á¦¸ñ ±Û²Ã" - -#: ../../WPrefs.app/Text.c:266 -msgid "Clip Title Font" -msgstr "Ŭ¸³ Á¦¸ñ ±Û²Ã" - -#: ../../WPrefs.app/Text.c:267 -msgid "Geometry Display Font" -msgstr "À§Ä¡/Å©±â Ç¥½Ã ±Û²Ã" - -#: ../../WPrefs.app/Text.c:280 -msgid "" -"Sample Text\n" -"abcdefghijklmnopqrstuvxywz\n" -"ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" -"0123456789" -msgstr "" -"Sample Text\n" -"abcdefghijklmnopqrstuvxywz\n" -"ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" -"°¡³ª´Ù¶ó¸¶¹Ù»ç\n" -"0123456789" - -#: ../../WPrefs.app/Text.c:285 -msgid "Alignment" -msgstr "Á¤·Ä" - -#: ../../WPrefs.app/Text.c:290 -msgid "Left" -msgstr "¿ÞÂÊ" - -#: ../../WPrefs.app/Text.c:296 -msgid "Center" -msgstr "Áß¾Ó" - -#: ../../WPrefs.app/Text.c:303 -msgid "Right" -msgstr "¿À¸¥ÂÊ" - -#: ../../WPrefs.app/Text.c:325 -msgid "Text Preferences" -msgstr "ÅؽºÆ® ¼³Á¤" - -#: ../../WPrefs.app/TextureAndColor.c:384 -msgid "Window Title Bar" -msgstr "â Á¦¸ñ ¹Ù" - -#: ../../WPrefs.app/TextureAndColor.c:385 -msgid "Menu Title Bar" -msgstr "¸Þ´º Á¦¸ñ ¹Ù" - -#: ../../WPrefs.app/TextureAndColor.c:386 -msgid "Menu Items" -msgstr "¸Þ´º Ç׸ñ" - -#: ../../WPrefs.app/TextureAndColor.c:387 -msgid "Workspace/Clip" -msgstr "ÀÛ¾÷°ø°£/Ŭ¸³" - -#: ../../WPrefs.app/TextureAndColor.c:388 -msgid "Icons" -msgstr "¾ÆÀÌÄÜ" - -#: ../../WPrefs.app/TextureAndColor.c:399 -msgid "Focused Window" -msgstr "È°¼º â" - -#: ../../WPrefs.app/TextureAndColor.c:412 -#: ../../WPrefs.app/TextureAndColor.c:443 -#: ../../WPrefs.app/TextureAndColor.c:474 -msgid "Texture" -msgstr "ÅؽºÃ³" - -#: ../../WPrefs.app/TextureAndColor.c:418 -#: ../../WPrefs.app/TextureAndColor.c:449 -#: ../../WPrefs.app/TextureAndColor.c:480 -msgid "Text Color" -msgstr "ÅؽºÆ® »ö" - -#: ../../WPrefs.app/TextureAndColor.c:423 -#: ../../WPrefs.app/TextureAndColor.c:454 -#: ../../WPrefs.app/TextureAndColor.c:485 -#: ../../WPrefs.app/TextureAndColor.c:509 -#: ../../WPrefs.app/TextureAndColor.c:575 -#: ../../WPrefs.app/TextureAndColor.c:652 -msgid "Set..." -msgstr "ÁöÁ¤..." - -#: ../../WPrefs.app/TextureAndColor.c:430 -msgid "Unfocused Window" -msgstr "ºñÈ°¼º â" - -#: ../../WPrefs.app/TextureAndColor.c:461 -msgid "Owner of Focused Window" -msgstr "È°¼º âÀÇ ¼ÒÀ¯ÀÚ" - -#: ../../WPrefs.app/TextureAndColor.c:494 -msgid "Unselected Items" -msgstr "¼±ÅõÇÁö ¾ÊÀº Ç׸ñ" - -#: ../../WPrefs.app/TextureAndColor.c:504 -#: ../../WPrefs.app/TextureAndColor.c:558 -msgid "Background" -msgstr "¹è°æ" - -#: ../../WPrefs.app/TextureAndColor.c:519 -msgid "Normal Text" -msgstr "º¸Åë ÅؽºÆ®" - -#: ../../WPrefs.app/TextureAndColor.c:529 -msgid "Disabled Text" -msgstr "»ç¿ë ºÒ°¡´ÉÇÑ ÅؽºÆ®" - -#: ../../WPrefs.app/TextureAndColor.c:538 -msgid "Selected Items" -msgstr "¼±ÅÃµÈ Ç׸ñ" - -#: ../../WPrefs.app/TextureAndColor.c:548 -msgid "Text" -msgstr "ÅؽºÆ®" - -#: ../../WPrefs.app/TextureAndColor.c:566 -msgid "Menu Title Background" -msgstr "¸Þ´º Á¦¸ñ ¹è°æ" - -#: ../../WPrefs.app/TextureAndColor.c:584 -msgid "Menu Title Text" -msgstr "¸Þ´º Á¦¸ñ ÅؽºÆ®" - -#: ../../WPrefs.app/TextureAndColor.c:596 -msgid "Workspace Background" -msgstr "ÀÛ¾÷°ø°£ ¹è°æ" - -#: ../../WPrefs.app/TextureAndColor.c:605 -msgid "Change" -msgstr "º¯°æ" - -#: ../../WPrefs.app/TextureAndColor.c:611 -msgid "Clip Title Text" -msgstr "Ŭ¸³ Á¦¸ñ ÅؽºÆ®" - -#: ../../WPrefs.app/TextureAndColor.c:621 -msgid "Normal" -msgstr "º¸Åë" - -#: ../../WPrefs.app/TextureAndColor.c:631 -msgid "Collapsed" -msgstr "Á¢Èû" - -#: ../../WPrefs.app/TextureAndColor.c:643 -msgid "Icon Background" -msgstr "¾ÆÀÌÄÜ ¹è°æ" - -#: ../../WPrefs.app/TextureAndColor.c:677 -msgid "Texture and Color Preferences" -msgstr "ÅؽºÃ³¿Í »ö»ó ¼³Á¤" - -#: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 -msgid "Set" -msgstr "ÁöÁ¤" - -#: ../../WPrefs.app/Themes.c:132 -msgid "Stop" -msgstr "ÁßÁö" - -#: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:205 -#: ../../WPrefs.app/Themes.c:225 -msgid "Download" -msgstr "´Ù¿î·Îµå" - -#: ../../WPrefs.app/Themes.c:173 -msgid "Save Current Theme" -msgstr "ÇöÀç Å׸¶ ÀúÀå" - -#: ../../WPrefs.app/Themes.c:182 -msgid "Load" -msgstr "ºÒ·¯¿À±â" - -#: ../../WPrefs.app/Themes.c:187 -msgid "Install" -msgstr "¼³Ä¡" - -#: ../../WPrefs.app/Themes.c:195 -msgid "Tile of The Day" -msgstr "¿À´ÃÀÇ Å¸ÀÏ(Tile)" - -#: ../../WPrefs.app/Themes.c:215 -msgid "Bar of The Day" -msgstr "¿À´ÃÀÇ ¹Ù(Bar)" - -#: ../../WPrefs.app/Themes.c:252 -msgid "Themes" -msgstr "Å׸¶" - -#: ../../WPrefs.app/WPrefs.c:201 -msgid "Window Maker Preferences" -msgstr "Window Maker ¼³Á¤" - -#: ../../WPrefs.app/WPrefs.c:225 -msgid "Revert Page" -msgstr "ÆäÀÌÁö º¹±¸" - -#: ../../WPrefs.app/WPrefs.c:231 -msgid "Revert All" -msgstr "¸ðµÎ º¹±¸" - -#: ../../WPrefs.app/WPrefs.c:237 -msgid "Save" -msgstr "ÀúÀå" - -#: ../../WPrefs.app/WPrefs.c:243 -msgid "Close" -msgstr "´Ý±â" - -#: ../../WPrefs.app/WPrefs.c:260 -msgid "Window Maker Preferences Utility" -msgstr "Window Maker ¼³Á¤ À¯Æ¿¸®Æ¼" - -#: ../../WPrefs.app/WPrefs.c:267 -#, c-format -msgid "Version %s for Window Maker %s" -msgstr "¹öÀü %s - Window Maker %s" - -#: ../../WPrefs.app/WPrefs.c:274 -msgid "Starting..." -msgstr "½ÃÀÛÇÕ´Ï´Ù..." - -#: ../../WPrefs.app/WPrefs.c:280 -msgid "" -"Programming/Design: Alfredo K. Kojima\n" -"Artwork: Marco van Hylckama Vlieg\n" -"More Programming: James Thompson" -msgstr "" -"ÇÁ·Î±×·¡¹Ö/µðÀÚÀÎ: Alfredo K. Kojima\n" -"¾ÆÆ®¿÷: Macro van Hylckama Vlieg\n" -"Ãß°¡ ÇÁ·Î±×·¡¹Ö: James Thompson" - -#: ../../WPrefs.app/WPrefs.c:368 -#, c-format -msgid "could not locate image file %s\n" -msgstr "À̹ÌÁö ÆÄÀÏ %s¸¦ ãÀ» ¼ö ¾øÀ½\n" - -#: ../../WPrefs.app/WPrefs.c:474 -#, c-format -msgid "could not load image file %s:%s" -msgstr "À̹ÌÁö ÆÄÀÏ %s¸¦ ÀÐÀ» ¼ö ¾øÀ½" - -#: ../../WPrefs.app/WPrefs.c:493 -msgid "Loading Window Maker configuration files..." -msgstr "Window Maker ¼³Á¤ ÆÄÀÏÀ» Àд Áß..." - -#: ../../WPrefs.app/WPrefs.c:497 -msgid "Initializing configuration panels..." -msgstr "¼³Á¤ ÆгΠÃʱâÈ­ Áß..." - -#: ../../WPrefs.app/WPrefs.c:525 -msgid "" -"WPrefs is free software and is distributed WITHOUT ANY WARRANTY under the " -"terms of the GNU General Public License. Redistribution of the icons in this " -"program without the program is prohibited." -msgstr "" -"WPrefs´Â °ø°³ ¼ÒÇÁÆ®¿þ¾îÀ̸ç GNU General Public License¸¦ µû¸£¸ç ¹èÆ÷¿¡ µû¸¥ " -"¾î¶°ÇÑ Ã¥ÀÓµµ ÁöÁö ¾Ê½À´Ï´Ù. ¾ÆÀÌÄÜÀÇ °æ¿ì WPrefs¿Í ÇÔ²²°¡ ¾Æ´Ï¸é ¹èÆ÷ÇÒ ¼ö " -"¾ø½À´Ï´Ù." - -#: ../../WPrefs.app/WPrefs.c:557 ../../WPrefs.app/WPrefs.c:613 -#, c-format -msgid "Window Maker domain (%s) is corrupted!" -msgstr "Window Maker µµ¸ÞÀÎ(%s)ÀÌ ±úÁ³½À´Ï´Ù!" - -#: ../../WPrefs.app/WPrefs.c:561 -#, c-format -msgid "Could not load Window Maker domain (%s) from defaults database." -msgstr "±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ Window Maker µµ¸ÞÀÎ(%s)À» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù." - -#: ../../WPrefs.app/WPrefs.c:569 -msgid "could not extract version information from Window Maker" -msgstr "Window Maker¿¡¼­ ¹öÀü Á¤º¸¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../../WPrefs.app/WPrefs.c:570 -msgid "Make sure wmaker is in your search path." -msgstr "wmaker°¡ °Ë»ö °æ·Î¿¡ ÀÖ´ÂÁö È®ÀÎÇϼ¼¿ä." - -#: ../../WPrefs.app/WPrefs.c:573 -msgid "" -"Could not extract version from Window Maker. Make sure it is correctly " -"installed and is in your PATH environment variable." -msgstr "" -"Window Maker¿¡¼­ ¹öÀü Á¤º¸¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù. PATH ȯ°æ º¯¼ö¿¡ ÁöÁ¤µÈ °÷¿¡ " -"Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö È®ÀÎÇϼ¼¿ä." - -#: ../../WPrefs.app/WPrefs.c:583 -msgid "" -"Could not extract version from Window Maker. Make sure it is correctly " -"installed." -msgstr "" -"Window Maker¿¡¼­ ¹öÀü Á¤º¸¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù. Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö " -"È®ÀÎÇϼ¼¿ä." - -#: ../../WPrefs.app/WPrefs.c:588 -#, c-format -msgid "" -"WPrefs only supports Window Maker 0.18.0 or newer.\n" -"The version installed is %i.%i.%i\n" -msgstr "" -"WPrefs ´Â Window Maker 0.18.0 ÀÌ»ó¸¸À» Áö¿øÇÕ´Ï´Ù.\n" -"¼³Ä¡µÈ ¹öÁ¯Àº %i.%i.%i ÀÔ´Ï´Ù.\n" - -#: ../../WPrefs.app/WPrefs.c:595 -#, c-format -msgid "" -"Window Maker %i.%i.%i, which is installed in your system, is not fully " -"supported by this version of WPrefs." -msgstr "" -"½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ Window Maker %i.%i.%i´Â WPrefs¿¡¼­ Á¦´ë·Î Áö¿øÇÏ´Â ¹öÀüÀÌ " -"¾Æ´Õ´Ï´Ù." - -#: ../../WPrefs.app/WPrefs.c:602 -msgid "could not run \"wmaker -global_defaults_path\"." -msgstr "\"wmaker -global_defaults_path\"¸¦ ¼öÇàÇÒ ¼ö ¾ø½À´Ï´Ù." - -#: ../../WPrefs.app/WPrefs.c:617 -#, c-format -msgid "Could not load global Window Maker domain (%s)." -msgstr "Àü¿ª Window Maker µµ¸ÞÀÎ (%s)¸¦ ÀоîµéÀÏ ¼ö ¾ø½À´Ï´Ù." - -#: ../../WPrefs.app/WPrefs.c:863 -#, c-format -msgid "" -"bad speed value for option %s\n" -". Using default Medium" -msgstr "" -"¿É¼Ç %s¿¡ À߸øµÈ ¼Óµµ °ªÀ» ÁÖ¾ú½À´Ï´Ù.\n" -"±âº»°ª MediumÀ» »ç¿ëÇÕ´Ï´Ù" - -#: ../../WPrefs.app/WindowHandling.c:108 -#, c-format -msgid "bad option value %s in WindowPlacement. Using default value" -msgstr "WindowPlacement¿¡ À߸øµÈ ¿É¼Ç °ª %sÀÔ´Ï´Ù. ±âº»°ªÀ» »ç¿ëÇÕ´Ï´Ù" - -#: ../../WPrefs.app/WindowHandling.c:130 -msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" -msgstr "" -"WindowPlaceOrigin ¿É¼Ç¿¡ À߸øµÈ µ¥ÀÌÅÍÀÔ´Ï´Ù. ±âº»°ª (0,0)À» »ç¿ëÇÕ´Ï´Ù" - -#: ../../WPrefs.app/WindowHandling.c:192 -msgid "Window Placement" -msgstr "â ¹èÄ¡" - -#: ../../WPrefs.app/WindowHandling.c:197 -msgid "Automatic" -msgstr "ÀÚµ¿" - -#: ../../WPrefs.app/WindowHandling.c:198 -msgid "Random" -msgstr "ÀÓÀÇ" - -#: ../../WPrefs.app/WindowHandling.c:199 -msgid "Manual" -msgstr "¼öµ¿" - -#: ../../WPrefs.app/WindowHandling.c:200 -msgid "Cascade" -msgstr "°è´Ü½Ä" - -#: ../../WPrefs.app/WindowHandling.c:206 -msgid "Placement Origin" -msgstr "±âº» À§Ä¡" - -#: ../../WPrefs.app/WindowHandling.c:260 -msgid "Opaque Move" -msgstr "À̵¿½Ã â ³»¿ë º¸À̱â" - -#: ../../WPrefs.app/WindowHandling.c:296 -msgid "When maximizing..." -msgstr "ÃÖ´ëÈ­½Ã¿¡´Â..." - -#: ../../WPrefs.app/WindowHandling.c:301 -msgid "...do not resize over icons" -msgstr "¾ÆÀÌÄÜÀ» µ¤Áö ¾ÊÀ½" - -#: ../../WPrefs.app/WindowHandling.c:307 -msgid "...do not resize over dock" -msgstr "DockÀ» µ¤Áö ¾ÊÀ½" - -#: ../../WPrefs.app/WindowHandling.c:320 -msgid "Keep transients above their owners" -msgstr "¼ÒÀ¯ÀÚ À§¿¡¼­´Â ÀϽÃÀûÀ¸·Î âÀ» À¯Áö" - -#: ../../WPrefs.app/WindowHandling.c:347 -msgid "Window Handling Preferences" -msgstr "â ó¸® ¼³Á¤" - -#: ../../WPrefs.app/Workspace.c:137 -msgid "Workspace Navigation" -msgstr "ÀÛ¾÷°ø°£ Àüȯ" - -#: ../../WPrefs.app/Workspace.c:161 -msgid "drag windows between workspaces." -msgstr "ÀÛ¾÷°ø°£°£¿¡ â ²ø±â" - -#: ../../WPrefs.app/Workspace.c:186 -msgid "" -"switch to first workspace when switching past the last workspace and " -"vice-versa" -msgstr "" -"¸¶Áö¸· ÀÛ¾÷°ø°£ ´ÙÀ½À¸·Î ÀüȯÇÒ¶§¿¡ óÀ½ ÀÛ¾÷°ø°£À¸·Î À̵¿ (¹Ý´ëµµ ¸¶Âù°¡Áö)" - -#: ../../WPrefs.app/Workspace.c:210 -msgid "create a new workspace when switching past the last workspace." -msgstr "¸¶Áö¸· ÀÛ¾÷°ø°£ ´ÙÀ½À¸·Î Àüȯ½Ã »õ·Î¿î ÀÛ¾÷°ø°£ »ý¼º" - -#: ../../WPrefs.app/Workspace.c:218 -msgid "Dock/Clip" -msgstr "Dock/Ŭ¸³" - -#: ../../WPrefs.app/Workspace.c:287 -msgid "Workspace Preferences" -msgstr "ÀÛ¾÷°ø°£ ¼³Á¤" - -#: ../../WPrefs.app/main.c:72 -#, c-format -msgid "usage: %s [options]\n" -msgstr "»ç¿ë¹ý: %s [¿É¼Ç]\n" - -#: ../../WPrefs.app/main.c:73 -msgid "options:" -msgstr "¿É¼Ç:" - -#: ../../WPrefs.app/main.c:74 -msgid " -display \tdisplay to be used" -msgstr "-display \t»ç¿ëÇÒ µð½ºÇ÷¹ÀÌ" - -#: ../../WPrefs.app/main.c:75 -msgid " -version\t\tprint version number and exit" -msgstr "-version\t\t¹öÁ¯ Ãâ·ÂÈÄ Á¾·á" - -#: ../../WPrefs.app/main.c:132 -#, c-format -msgid "too few arguments for %s" -msgstr "%s ÀÇ Àμö°¡ ³Ê¹« ÀûÀ½" - -#: ../../WPrefs.app/main.c:154 -msgid "X server does not support locale" -msgstr "X ¼­¹ö°¡ ·ÎÄÉÀÏÀ» Áö¿øÇÏÁö ¾ÊÀ½" - -#: ../../WPrefs.app/main.c:157 -msgid "cannot set locale modifiers" -msgstr "·ÎÄÉÀÏ ¼öÁ¤ÀÚ(modifier)¸¦ ¼³Á¤ÇÒ ¼ö ¾øÀ½" - -#: ../../WPrefs.app/main.c:163 -#, c-format -msgid "could not open display %s" -msgstr "µð½ºÇ÷¹ÀÌ %s¸¦ ¿­ ¼ö ¾øÀ½" - -#: ../../WPrefs.app/main.c:171 -msgid "could not initialize application" -msgstr "¾ÖÇø®ÄÉÀ̼ÇÀ» ÃʱâÈ­ ÇÒ ¼ö ¾øÀ½" +# WPrefs.app po file for Korean. +# Copyright (C) 1998 Free Software Foundation, Inc. +# Byeong-Chan Kim , 1998. +# Update: CHOI Junho , 1998/12. +# +msgid "" +msgstr "" +"Project-Id-Version: 0.10\n" +"POT-Creation-Date: 1999-01-29 08:50+0900\n" +"PO-Revision-Date: 1999-01-29 08:55+0900\n" +"Last-Translator: Byeong-Chan Kim \n" +"Language-Team: Korean\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-KR\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148 +#: ../../WPrefs.app/MouseSettings.c:526 ../../WPrefs.app/WindowHandling.c:274 +#: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71 +#: ../../WPrefs.app/Workspace.c:77 +#, c-format +msgid "could not load icon %s" +msgstr "¾ÆÀÌÄÜ %s¸¦ ÀоîµéÀÏ ¼ö ¾øÀ½" + +#: ../../WPrefs.app/Configurations.c:156 ../../WPrefs.app/Workspace.c:85 +#, c-format +msgid "could not process icon %s:" +msgstr "¾ÆÀÌÄÜ %s¸¦ ó¸®ÇÒ ¼ö ¾øÀ½:" + +#: ../../WPrefs.app/Configurations.c:181 ../../WPrefs.app/Workspace.c:124 +#, c-format +msgid "could not load image file %s" +msgstr "À̹ÌÁö ÆÄÀÏ %s¸¦ ÀÐÀ» ¼ö ¾øÀ½" + +#: ../../WPrefs.app/Configurations.c:195 +msgid "Icon Slide Speed" +msgstr "¾ÆÀÌÄÜ ½½¶óÀÌµå ¼Óµµ" + +#: ../../WPrefs.app/Configurations.c:201 +msgid "Shade Animation Speed" +msgstr "½¦ÀÌµå ¾Ö´Ï¸ÞÀÌ¼Ç ¼Óµµ" + +#: ../../WPrefs.app/Configurations.c:234 ../../WPrefs.app/Configurations.c:246 +#: ../../WPrefs.app/Focus.c:310 ../../WPrefs.app/Focus.c:321 +#: ../../WPrefs.app/MenuPreferences.c:135 +#: ../../WPrefs.app/MenuPreferences.c:146 +#: ../../WPrefs.app/MenuPreferences.c:174 +#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:554 +#: ../../WPrefs.app/MouseSettings.c:565 ../../WPrefs.app/MouseSettings.c:627 +#: ../../WPrefs.app/MouseSettings.c:638 ../../WPrefs.app/MouseSettings.c:674 +#: ../../WPrefs.app/MouseSettings.c:689 ../../WPrefs.app/MouseSettings.c:705 +#: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421 +#, c-format +msgid "could not load icon file %s" +msgstr "¾ÆÀÌÄÜ ÆÄÀÏ %s¸¦ ÀÐÀ» ¼ö ¾øÀ½" + +#: ../../WPrefs.app/Configurations.c:262 +msgid "Titlebar Style" +msgstr "ŸÀÌƲ¹Ù ½ºÅ¸ÀÏ" + +#: ../../WPrefs.app/Configurations.c:299 +msgid "Animations and Sound" +msgstr "¾Ö´Ï¸ÞÀ̼ǰú À½ÇâÈ¿°ú" + +#: ../../WPrefs.app/Configurations.c:305 +msgid "Animations" +msgstr "¾Ö´Ï¸ÞÀ̼Ç" + +#: ../../WPrefs.app/Configurations.c:321 +msgid "Superfluous" +msgstr "Superfluous" + +#: ../../WPrefs.app/Configurations.c:337 +msgid "Sounds" +msgstr "À½ÇâÈ¿°ú" + +#: ../../WPrefs.app/Configurations.c:354 +msgid "Note: sound requires a module distributed separately" +msgstr "ÁÖÀÇ: À½ÇâÈ¿°ú´Â µû·ÎÀÌ ¹èÆ÷µÇ´Â ¸ðµâÀÌ ÇÊ¿äÇÕ´Ï´Ù" + +#: ../../WPrefs.app/Configurations.c:364 +msgid "Dithering colormap for 8bpp" +msgstr "256»ö¿ë Ä÷¯¸Ê µð´õ¸µ" + +#: ../../WPrefs.app/Configurations.c:369 +msgid "Disable dithering in any visual/depth" +msgstr "¸ðµç ºñÁÖ¾ó/»ö»ó ±íÀÌ¿¡¼­ µð´õ¸µ »ç¿ëÇÏÁö ¾ÊÀ½" + +#: ../../WPrefs.app/Configurations.c:390 +msgid "More colors for applications" +msgstr "¾ÖÇø®ÄÉÀ̼ǿ¡ ´õ ¸¹Àº Ä÷¯ ºÎ¿©" + +#: ../../WPrefs.app/Configurations.c:397 +msgid "More colors for WindowMaker" +msgstr "Window Maker¿¡ ´õ ¸¹Àº Ä÷¯ ºÎ¿©" + +#: ../../WPrefs.app/Configurations.c:450 +msgid "Other Configurations" +msgstr "±× ¿Ü ¼³Á¤" + +#: ../../WPrefs.app/Expert.c:70 +msgid "Do not set non-WindowMaker specific parameters (do not use xset)" +msgstr "Window MakerÀÇ ±â´ÉÀÌ ¾Æ´Ñ °ÍÀº ¼³Á¤ÇÏÁö ¾ÊÀ½(xsetÀ» »ç¿ëÇÏÁö ¾ÊÀ½)" + +#: ../../WPrefs.app/Expert.c:71 +msgid "Automatically save session when exiting WindowMaker" +msgstr "Window Maker Á¾·á½Ã ¼¼¼Ç ÀÚµ¿ ÀúÀå" + +#: ../../WPrefs.app/Expert.c:72 +msgid "Use SaveUnder in window frames, icons, menus and other objects" +msgstr "â ÇÁ·¹ÀÓ, ¾ÆÀÌÄÜ, ¸Þ´º µî¿¡¼­ SaveUnder »ç¿ëÇÔ" + +#: ../../WPrefs.app/Expert.c:73 +msgid "Disable cycling color highlighting of icons." +msgstr "¾ÆÀÌÄÜ¿¡ »ö»ó ÇÏÀ̶óÀÌÆà ¼øȯ »ç¿ë ¾ÊÀ½." + +#: ../../WPrefs.app/Expert.c:103 +msgid "Expert User Preferences" +msgstr "°í±Þ »ç¿ëÀÚ¿ë ¼³Á¤" + +#: ../../WPrefs.app/Focus.c:79 +#, c-format +msgid "bad option value %s for option FocusMode. Using default Manual" +msgstr "FocusMode ¿É¼Ç¿¡ À߸øµÈ °ª %s. ±âº»°ªÀÎ ManualÀ» »ç¿ë" + +#: ../../WPrefs.app/Focus.c:92 +#, c-format +msgid "bad option value %s for option ColormapMode. Using default Manual" +msgstr "ColormapMode ¿É¼Ç¿¡ À߸øµÈ °ª %s. ±âº»°ªÀÎ ManualÀ» »ç¿ë" + +#: ../../WPrefs.app/Focus.c:190 +msgid "" +"Click on the window to set\n" +"keyboard input focus." +msgstr "" +"âÀ» Ŭ¸¯ÇÏ¸é ±× Ã¢ÀÌ È°¼ºÈ­\n" +"µË´Ï´Ù." + +#: ../../WPrefs.app/Focus.c:194 +msgid "" +"Set keyboard input focus to\n" +"the window under the mouse pointer,\n" +"including the root window." +msgstr "" +"¸¶¿ì½º Æ÷ÀÎÅ͸¦ ·çÆ® âÀ»\n" +"Æ÷ÇÔÇÑ ¸ðµç ⠾Ʒ¡¿¡ ³õÀ¸¸é\n" +"±× âÀÌ È°¼ºÈ­µË´Ï´Ù." + +#: ../../WPrefs.app/Focus.c:199 +msgid "" +"Set keyboard input focus to\n" +"the window under the mouse pointer,\n" +"except the root window." +msgstr "" +"¸¶¿ì½º Æ÷ÀÎÅ͸¦ ·çÆ® âÀ»\n" +"Á¦¿ÜÇÑ ¸ðµç ⠾Ʒ¡¿¡ ³õÀ¸¸é\n" +"±× âÀÌ È°¼ºÈ­µË´Ï´Ù." + +#: ../../WPrefs.app/Focus.c:243 +msgid "Input Focus Mode" +msgstr "ÀÔ·Â È°¼ºÈ­ ¸ðµå" + +#: ../../WPrefs.app/Focus.c:248 +msgid "Click window to focus" +msgstr "È°¼ºÈ­Çϱâ À§ÇØ Ã¢À» Ŭ¸¯" + +#: ../../WPrefs.app/Focus.c:249 +msgid "Focus follows mouse" +msgstr "¸¶¿ì½º¸¦ µû¸£´Â È°¼ºÈ­ ¸ðµå" + +#: ../../WPrefs.app/Focus.c:250 +msgid "\"Sloppy\" focus" +msgstr "\"´À½¼ÇÑ\" È°¼ºÈ­ ¸ðµå" + +#: ../../WPrefs.app/Focus.c:265 +msgid "Install colormap in the window..." +msgstr "Ä÷¯¸ÊÀÇ ¼³Ä¡´Â..." + +#: ../../WPrefs.app/Focus.c:270 +msgid "...that has the input focus." +msgstr "...ÀÔ·Â È°¼ºÈ­°¡ µÈ â." + +#: ../../WPrefs.app/Focus.c:275 +msgid "...that is under the mouse pointer." +msgstr "...¸¶¿ì½º Æ÷ÀÎÅÍ ¾Æ·¡ÀÇ Ã¢." + +#: ../../WPrefs.app/Focus.c:284 +msgid "Automatic Window Raise Delay" +msgstr "ÀÚµ¿ ⠿ø®±â Áö¿¬ ½Ã°£" + +#: ../../WPrefs.app/Focus.c:341 +msgid "msec" +msgstr "msec" + +#: ../../WPrefs.app/Focus.c:358 +msgid "Do not let applications receive the click used to focus windows." +msgstr "¾îÇø®ÄÉÀ̼ÇÀÌ Ã¢À» È°¼ºÈ­Çϴ Ŭ¸¯À» ¹ÞÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù." + +#: ../../WPrefs.app/Focus.c:364 +msgid "Automatically focus new windows." +msgstr "»õ·Î¿î âÀ» ÀÚµ¿ È°¼ºÈ­ÇÕ´Ï´Ù." + +#: ../../WPrefs.app/Focus.c:385 +msgid "Window Focus Preferences" +msgstr "â È°¼ºÈ­ ¼³Á¤" + +#: ../../WPrefs.app/Icons.c:178 +msgid "Icon Positioning" +msgstr "¾ÆÀÌÄÜ À§Ä¡" + +#: ../../WPrefs.app/Icons.c:225 +msgid "Iconification Animation" +msgstr "¾ÆÀÌÄÜÈ­½Ã ¾Ö´Ï¸ÞÀ̼Ç" + +#: ../../WPrefs.app/Icons.c:236 +msgid "Shrinking/Zooming" +msgstr "Ãà¼Ò/È®´ë" + +#: ../../WPrefs.app/Icons.c:237 +msgid "Spinning/Twisting" +msgstr "ȸÀü/Æ®À§½ºÆ®" + +#: ../../WPrefs.app/Icons.c:238 +msgid "3D-flipping" +msgstr "3Â÷¿ø ȸÀü" + +#: ../../WPrefs.app/Icons.c:239 +msgid "None" +msgstr "¾øÀ½" + +#: ../../WPrefs.app/Icons.c:247 +msgid "Icon Display" +msgstr "¾ÆÀÌÄÜ Ç¥½Ã ¹æ¹ý" + +#: ../../WPrefs.app/Icons.c:252 +msgid "Auto-arrange icons" +msgstr "¾ÆÀÌÄÜ ÀÚµ¿ Á¤·Ä" + +#: ../../WPrefs.app/Icons.c:257 +msgid "Omnipresent miniwindows" +msgstr "¾ÆÀÌÄÜ Ç×»ó º¸ÀÓ" + +#: ../../WPrefs.app/Icons.c:265 +msgid "Icon Size" +msgstr "¾ÆÀÌÄÜ Å©±â" + +#: ../../WPrefs.app/Icons.c:335 +msgid "Icon Preferences" +msgstr "¾ÆÀÌÄÜ ¼³Á¤" + +#: ../../WPrefs.app/KeyboardSettings.c:72 +msgid "Initial Key Repeat" +msgstr "Ãʱâ Å° ¹Ýº¹ ¼Óµµ" + +#: ../../WPrefs.app/KeyboardSettings.c:113 +msgid "Key Repeat Rate" +msgstr "Å° ¹Ýº¹À²" + +#: ../../WPrefs.app/KeyboardSettings.c:153 +msgid "Type here to test" +msgstr "¿©±â¼­ ½ÃÇèÇϼ¼¿ä" + +#: ../../WPrefs.app/KeyboardSettings.c:172 +msgid "Keyboard Preferences" +msgstr "Å°º¸µå ¼³Á¤" + +#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:934 +#: ../../WPrefs.app/MenuGuru.c:263 +msgid "Cancel" +msgstr "Ãë¼Ò" + +#: ../../WPrefs.app/KeyboardShortcuts.c:184 +msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." +msgstr "¿øÇÏ´Â ´ÜÃàÅ°¸¦ ´©¸£½Ê½Ã¿À. Ãë¼Ò¸¦ ´©¸£¸é ĸÃÄ°¡ Áߴܵ˴ϴÙ." + +#: ../../WPrefs.app/KeyboardShortcuts.c:204 +#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:946 +#: ../../WPrefs.app/Menu.c:1168 +msgid "Capture" +msgstr "ĸÃÄ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:205 +#: ../../WPrefs.app/KeyboardShortcuts.c:451 +msgid "Click Capture to interactively define the shortcut key." +msgstr "ĸÃÄ ¹öÆ°À» ´­·¯ ´ÜÃàÅ°¸¦ ½±°Ô ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù." + +#: ../../WPrefs.app/KeyboardShortcuts.c:359 +msgid "Actions" +msgstr "µ¿ÀÛ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:375 +msgid "Open applications menu" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º ¿­±â" + +#: ../../WPrefs.app/KeyboardShortcuts.c:376 +msgid "Open window list menu" +msgstr "â ¸ñ·Ï ¸Þ´º ¿­±â" + +#: ../../WPrefs.app/KeyboardShortcuts.c:377 +msgid "Open window commands menu" +msgstr "â ¸í·É ¸Þ´º ¿­±â" + +#: ../../WPrefs.app/KeyboardShortcuts.c:378 +msgid "Hide active application" +msgstr "È°¼ºÈ­µÈ ¾ÖÇø®ÄÉÀÌ¼Ç ¼û±è" + +#: ../../WPrefs.app/KeyboardShortcuts.c:379 +msgid "Miniaturize active window" +msgstr "È°¼ºÈ­µÈ â ÃÖ¼ÒÈ­" + +#: ../../WPrefs.app/KeyboardShortcuts.c:380 +msgid "Close active window" +msgstr "È°¼ºÈ­µÈ ⠴ݱâ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:381 +msgid "Maximize active window" +msgstr "È°¼ºÈ­µÈ â ÃÖ´ëÈ­" + +#: ../../WPrefs.app/KeyboardShortcuts.c:382 +msgid "Maximize active window vertically" +msgstr "âÀ» ¼¼·Î·Î ÃÖ´ëÈ­" + +#: ../../WPrefs.app/KeyboardShortcuts.c:383 +msgid "Raise active window" +msgstr "È°¼ºÈ­µÈ âÀ» À§·Î" + +#: ../../WPrefs.app/KeyboardShortcuts.c:384 +msgid "Lower active window" +msgstr "È°¼ºÈ­µÈ âÀ» ¾Æ·¡·Î" + +#: ../../WPrefs.app/KeyboardShortcuts.c:385 +msgid "Raise/Lower window under mouse pointer" +msgstr "¸¶¿ì½º°¡ À§Ä¡ÇÑ Ã¢ ¿Ã¸²/³»¸²" + +#: ../../WPrefs.app/KeyboardShortcuts.c:386 +msgid "Shade active window" +msgstr "È°¼ºÈ­µÈ â ½¦À̵ùÇϱâ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:387 +msgid "Move/Resize active window" +msgstr "È°¼ºÈ­µÈ â À̵¿/Å©±â¹Ù²Þ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:388 +msgid "Select active window" +msgstr "È°¼ºÈ­ â ¼±ÅÃ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:389 +msgid "Focus next window" +msgstr "´ÙÀ½ â È°¼ºÈ­" + +#: ../../WPrefs.app/KeyboardShortcuts.c:390 +msgid "Focus previous window" +msgstr "ÀÌÀü â È°¼ºÈ­" + +#: ../../WPrefs.app/KeyboardShortcuts.c:391 +msgid "Switch to next workspace" +msgstr "´ÙÀ½ ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:392 +msgid "Switch to previous workspace" +msgstr "ÀÌÀü ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:393 +msgid "Switch to next ten workspaces" +msgstr "10°³ ´ÙÀ½ ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:394 +msgid "Switch to previous ten workspaces" +msgstr "10°³ ÀÌÀü ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:395 +msgid "Switch to workspace 1" +msgstr "1¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:396 +msgid "Switch to workspace 2" +msgstr "2¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:397 +msgid "Switch to workspace 3" +msgstr "3¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:398 +msgid "Switch to workspace 4" +msgstr "4¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:399 +msgid "Switch to workspace 5" +msgstr "5¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:400 +msgid "Switch to workspace 6" +msgstr "6¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:401 +msgid "Switch to workspace 7" +msgstr "7¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:402 +msgid "Switch to workspace 8" +msgstr "8¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:403 +msgid "Switch to workspace 9" +msgstr "9¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:404 +msgid "Switch to workspace 10" +msgstr "10¹ø ÀÛ¾÷°ø°£À¸·Î Àüȯ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:405 +msgid "Shortcut for window 1" +msgstr "1¹ø â ´ÜÃàÅ°" + +#: ../../WPrefs.app/KeyboardShortcuts.c:406 +msgid "Shortcut for window 2" +msgstr "2¹ø â ´ÜÃàÅ°" + +#: ../../WPrefs.app/KeyboardShortcuts.c:407 +msgid "Shortcut for window 3" +msgstr "3¹ø â ´ÜÃàÅ°" + +#: ../../WPrefs.app/KeyboardShortcuts.c:408 +msgid "Shortcut for window 4" +msgstr "4¹ø â ´ÜÃàÅ°" + +#: ../../WPrefs.app/KeyboardShortcuts.c:409 +msgid "Raise Clip" +msgstr "Ŭ¸³ ¿Ã¸²" + +#: ../../WPrefs.app/KeyboardShortcuts.c:410 +msgid "Lower Clip" +msgstr "Ŭ¸³ ³»¸²" + +#: ../../WPrefs.app/KeyboardShortcuts.c:411 +msgid "Raise/Lower Clip" +msgstr "Ŭ¸³ ¿Ã¸²/³»¸²" + +#: ../../WPrefs.app/KeyboardShortcuts.c:413 +msgid "Toggle keyboard language" +msgstr "Å°º¸µå ¾ð¾î ¼±ÅÃ" + +#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1157 +msgid "Shortcut" +msgstr "´ÜÃàÅ°" + +#: ../../WPrefs.app/KeyboardShortcuts.c:438 +msgid "Clear" +msgstr "Áö¿ò" + +#: ../../WPrefs.app/KeyboardShortcuts.c:499 +msgid "Keyboard Shortcut Preferences" +msgstr "Å°º¸µå ´ÜÃàÅ° ¼³Á¤" + +#: ../../WPrefs.app/Menu.c:373 +msgid "Window Manager" +msgstr "â °ü¸®ÀÚ" + +#: ../../WPrefs.app/Menu.c:375 +msgid "Program to open files" +msgstr "ÆÄÀÏÀ» ¿­ ÇÁ·Î±×·¥" + +#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1144 +msgid "Program to Run" +msgstr "½ÇÇàÇÒ ÇÁ·Î±×·¥" + +#: ../../WPrefs.app/Menu.c:427 ../../WPrefs.app/Menu.c:428 +#, c-format +msgid "New Command %i" +msgstr "»õ ¸í·É %i" + +#: ../../WPrefs.app/Menu.c:435 +msgid "New Submenu" +msgstr "»õ ÇϺθ޴º" + +#: ../../WPrefs.app/Menu.c:440 +msgid "External Menu" +msgstr "¿ÜºÎ ¸Þ´º" + +#: ../../WPrefs.app/Menu.c:447 +msgid "Workspaces" +msgstr "ÀÛ¾÷ °ø°£" + +#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 +msgid "Commands" +msgstr "¸í·É" + +#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 +msgid "Add Command" +msgstr "¸í·É Ãß°¡" + +#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 +msgid "Add Submenu" +msgstr "ÇϺθ޴º Ãß°¡" + +#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046 +msgid "Add External Menu" +msgstr "¿ÜºÎ ¸Þ´º Ãß°¡" + +#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047 +msgid "Add Workspace Menu" +msgstr "ÀÛ¾÷°ø°£ ¸Þ´º Ãß°¡" + +#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 +msgid "Remove Item" +msgstr "Ç׸ñ »èÁ¦" + +#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 +msgid "Cut Item" +msgstr "Ç׸ñ À߶󳻱â" + +#: ../../WPrefs.app/Menu.c:1035 ../../WPrefs.app/Menu.c:1050 +msgid "Copy Item" +msgstr "Ç׸ñ º¹»ç" + +#: ../../WPrefs.app/Menu.c:1036 ../../WPrefs.app/Menu.c:1051 +msgid "Paste Item" +msgstr "Ç׸ñ ºÙÀ̱â" + +#: ../../WPrefs.app/Menu.c:1080 +msgid "Label" +msgstr "·¹À̺í" + +#: ../../WPrefs.app/Menu.c:1093 +msgid "Command" +msgstr "¸í·É" + +#: ../../WPrefs.app/Menu.c:1098 +msgid "Run Program" +msgstr "ÇÁ·Î±×·¥ ½ÇÇà" + +#: ../../WPrefs.app/Menu.c:1099 +msgid "Arrange Icons" +msgstr "¾ÆÀÌÄÜ Á¤·Ä" + +#: ../../WPrefs.app/Menu.c:1100 +msgid "Hide Others" +msgstr "´Ù¸¥ â ¼û±â±â" + +#: ../../WPrefs.app/Menu.c:1101 +msgid "Show All Windows" +msgstr "¸ðµç â º¸À̱â" + +#: ../../WPrefs.app/Menu.c:1102 +msgid "Exit WindowMaker" +msgstr "Window Maker Á¾·á" + +#: ../../WPrefs.app/Menu.c:1103 +msgid "Exit X Session" +msgstr "X ¼¼¼Ç Á¾·á" + +#: ../../WPrefs.app/Menu.c:1104 +msgid "Start window manager" +msgstr "â °ü¸®ÀÚ ½ÃÀÛ " + +#: ../../WPrefs.app/Menu.c:1105 +msgid "Restart WindowMaker" +msgstr "Window Maker Àç½ÃÀÛ" + +#: ../../WPrefs.app/Menu.c:1106 +msgid "Save Session" +msgstr "¼¼¼Ç ÀúÀå" + +#: ../../WPrefs.app/Menu.c:1107 +msgid "Clear Session" +msgstr "¼¼¼Ç Áö¿ì±â" + +#: ../../WPrefs.app/Menu.c:1108 +msgid "Refresh Screen" +msgstr "´Ù½Ã ±×¸®±â" + +#: ../../WPrefs.app/Menu.c:1109 +msgid "Info Panel" +msgstr "Á¤º¸ ÆгÎ" + +#: ../../WPrefs.app/Menu.c:1110 +msgid "Legal Panel" +msgstr "¹ýÀû Á¤º¸ ÆгÎ" + +#: ../../WPrefs.app/Menu.c:1118 +msgid "Open workspace menu" +msgstr "ÀÛ¾÷°ø°£ ¸Þ´º ¿­±â" + +#: ../../WPrefs.app/Menu.c:1125 +msgid "No confirmation panel" +msgstr "È®ÀÎ ÆгΠ¾øÀ½" + +#: ../../WPrefs.app/Menu.c:1131 +msgid "Menu Path/Directory List" +msgstr "¸Þ´º °æ·Î/µð·ºÅ丮 ¸ñ·Ï" + +#: ../../WPrefs.app/Menu.c:1176 +msgid "Ask help to the Guru" +msgstr "Guru¿¡°Ô µµ¿ò ¿äû" + +#. if there is a localized plmenu for the tongue put it's filename here +#: ../../WPrefs.app/Menu.c:1287 ../../WPrefs.app/Menu.c:1294 +#, c-format +msgid "%s/Library/WindowMaker/plmenu" +msgstr "%s/Library/WindowMaker/plmenu.ko" + +#: ../../WPrefs.app/Menu.c:1302 ../../WPrefs.app/MouseSettings.c:146 +#: ../../WPrefs.app/MouseSettings.c:169 ../../WPrefs.app/Text.c:181 +#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558 +#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572 +#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590 +#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 +msgid "Error" +msgstr "¿¡·¯" + +#: ../../WPrefs.app/Menu.c:1302 +msgid "Could not copy default plmenu file from ~/GNUstep/Library/WindowMaker" +msgstr "±âº» plmenu ÆÄÀÏÀ» ~/GNUstep/Library/WindowMAker¿¡¼­ º¹»çÇÒ ¼ö ¾øÀ½" + +#: ../../WPrefs.app/Menu.c:1304 ../../WPrefs.app/Menu.c:1354 +#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 +#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:148 +#: ../../WPrefs.app/MouseSettings.c:171 ../../WPrefs.app/Text.c:181 +#: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:558 +#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:574 +#: ../../WPrefs.app/WPrefs.c:584 ../../WPrefs.app/WPrefs.c:590 +#: ../../WPrefs.app/WPrefs.c:597 ../../WPrefs.app/WPrefs.c:614 +#: ../../WPrefs.app/WPrefs.c:619 +msgid "OK" +msgstr "È®ÀÎ" + +#: ../../WPrefs.app/Menu.c:1339 +msgid "" +"The format of the menu in ~/G/D/WMRootMenu is not recognized by WPrefs. It " +"might be in a format different than the one supported by WPrefs or contain a " +"syntax error. Do you want to continue using the current menu to edit it by " +"hand later or replace it with a default menu in the new format?" +msgstr "" +"~/G/D/WMRootMenuÀÇ ¸Þ´º´Â WPrefs°¡ ÀνÄÇÒ ¼ö ÀÖ´Â Çü½ÄÀÌ ¾Æ´Õ´Ï´Ù. WPrefs°¡ " +"Áö¿øÇÏ´Â Çü½Ä°ú ´Ù¸£°Å³ª ±¸¹® ¿¡·¯ÀÎ °Í °°½À´Ï´Ù. ÇöÀç »õ·ÎÀÌ ÆíÁýÇÏ´Â " +"¸Þ´º¸¦ ±âº» ¸Þ´º·Î »ç¿ëÇϽðڽÀ´Ï±î?" + +#: ../../WPrefs.app/Menu.c:1346 ../../WPrefs.app/Menu.c:1353 +#: ../../WPrefs.app/WPrefs.c:597 +msgid "Warning" +msgstr "°æ°í" + +#: ../../WPrefs.app/Menu.c:1346 +msgid "Keep current menu" +msgstr "ÇöÀç ¸Þ´º À¯Áö" + +#: ../../WPrefs.app/Menu.c:1347 +msgid "Install default menu" +msgstr "±âº» ¸Þ´º ¼³Ä¡" + +#: ../../WPrefs.app/Menu.c:1353 +msgid "Any changes made in this section will not be saved" +msgstr "ÀÌ ¼½¼Ç¿¡¼­ ¼öÁ¤ÇÑ ³»¿ëÀº ÀúÀåµÇÁö ¾Ê½À´Ï´Ù" + +#: ../../WPrefs.app/Menu.c:1419 +msgid "Applications Menu Definition" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º Á¤ÀÇ" + +#: ../../WPrefs.app/MenuGuru.c:106 +msgid "Menu Guru - Select Type" +msgstr "¸Þ´º Guru - ÇüŸ¦ ¼±ÅÃÇϼ¼¿ä" + +#: ../../WPrefs.app/MenuGuru.c:111 ../../WPrefs.app/MenuGuru.c:133 +#: ../../WPrefs.app/MenuGuru.c:251 +msgid "Next" +msgstr "´ÙÀ½" + +#: ../../WPrefs.app/MenuGuru.c:114 +msgid "Menu Guru - Select Menu File" +msgstr "¸Þ´º Guru - ¸Þ´º ÆÄÀÏÀ» ¼±ÅÃÇϼ¼¿ä" + +#: ../../WPrefs.app/MenuGuru.c:122 +msgid "Menu Guru - Select Pipe Command" +msgstr "¸Þ´º Guru - ÆÄÀÌÇÁ ¸í·ÉÀ» ¼±ÅÃÇϼ¼¿ä" + +#: ../../WPrefs.app/MenuGuru.c:129 +msgid "Menu Guru - Select Directories" +msgstr "¸Þ´º Guru - µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä" + +#: ../../WPrefs.app/MenuGuru.c:136 +msgid "Menu Guru - Select Command" +msgstr "¸Þ´º Guru - ¸í·ÉÀ» ¼±ÅÃÇϼ¼¿ä" + +#: ../../WPrefs.app/MenuGuru.c:257 +msgid "Back" +msgstr "¾ÕÀ¸·Î" + +#: ../../WPrefs.app/MenuGuru.c:271 +msgid "" +"This process will help you create a submenu which definition is located in " +"another file or is created dynamically.\n" +"What do you want to use as the contents of the submenu?" +msgstr "" +"ÀÌ °úÁ¤Àº ´Ù¸¥ ÆÄÀÏ¿¡ Á¤ÀÇ°¡ Àְųª ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÇ´Â ÇϺθ޴º¸¦ ¸¸µå´Â µ¥ " +"µµ¿òÀ» ÁÝ´Ï´Ù.\n" +"ºÎ¸Þ´ºÀÇ ³»¿ëÀ¸·Î ¾î¶² °ÍÀ» »ç¿ëÇÏ°í ½Í½À´Ï±î?" + +#: ../../WPrefs.app/MenuGuru.c:279 +msgid "" +"A file containing the menu definition in the plain text (non-property list) " +"menu format." +msgstr "¸Þ´º Á¤ÀǸ¦ º¸Åë ÅؽºÆ®·Î(Ư¼º ¾ø´Â ¸ñ·Ï) ¾´ ÆÄÀÏ." + +#: ../../WPrefs.app/MenuGuru.c:285 +msgid "The menu definition generated by a script/program read through a pipe." +msgstr "½ºÅ©¸³Æ®/ÇÁ·Î±×·¥À¸·Î »ý¼ºÇÏ¿© ÆÄÀÌÇÁ·Î ÀоîµéÀÌ´Â ¸Þ´º Á¤ÀÇ." + +#: ../../WPrefs.app/MenuGuru.c:291 +msgid "The files in one or more directories." +msgstr "Çϳª ÀÌ»óÀÇ µð·ºÅ丮ÀÇ ÆÄÀÏ." + +#: ../../WPrefs.app/MenuGuru.c:303 +msgid "Type the path for the menu file:" +msgstr "¸Þ´º ÆÄÀÏÀÇ °æ·Î¸¦ ÀûÀ¸¼¼¿ä:" + +#: ../../WPrefs.app/MenuGuru.c:318 +msgid "" +"The menu file must contain a menu in the plain text menu file format. This " +"format is described in the menu files included with WindowMaker, probably at " +"~/GNUstep/Library/WindowMaker/menu" +msgstr "" +"¸Þ´º ÆÄÀÏÀÇ ³»¿ëÀº º¸Åë ÅؽºÆ®·Î µÈ ¸Þ´º ÆÄÀÏ Çü½ÄÀÇ ¸Þ´ºÀÔ´Ï´Ù. ÀÌ Çü½ÄÀº " +"WindowMaker¿¡ Æ÷ÇÔµÈ ¸Þ´º ÆÄÀÏÀ» º¸¸é µÇ¸ç, º¸Åë " +"~/GNUstep/Library/WindowMaker/menu.koÀÔ´Ï´Ù." + +#: ../../WPrefs.app/MenuGuru.c:328 +msgid "Type the command that will generate the menu definition:" +msgstr "¸Þ´º Á¤ÀǸ¦ ¸¸µé¾î³¾ ¸í·ÉÀ» ÀÔ·ÂÇϼ¼¿ä:" + +#: ../../WPrefs.app/MenuGuru.c:338 +msgid "" +"The command supplied must generate and output a valid menu definition to " +"stdout. This definition should be in the plain text menu file format, " +"described in the menu files included with WindowMaker, usually at " +"~/GNUstep/Library/WindowMaker/menu" +msgstr "" +"ÀÌ ¸í·ÉÀº À¯È¿ÇÑ ¸Þ´º Á¤ÀǸ¦ ¸¸µé¾î¼­ Ç¥ÁØ Ãâ·ÂÀ¸·Î ³»º¸³»¾ß ÇÕ´Ï´Ù. ÀÌ " +"Á¤ÀÇ´Â º¸Åë ÅؽºÆ®·Î µÈ ¸Þ´º ÆÄÀÏ Çü½ÄÀ̾î¾ß Çϸç, WindowMaker¿¡ Æ÷ÇÔµÈ ¸Þ´º " +"ÆÄÀÏ¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù. º¸Åë ~/GNUstep/Library/WindowMaker/menu.ko ÀÔ´Ï´Ù" + +#: ../../WPrefs.app/MenuGuru.c:350 ../../WPrefs.app/MenuGuru.c:372 +#: ../../WPrefs.app/MenuGuru.c:394 +msgid "" +"Type the path for the directory. You can type more than one path by " +"separating them with spaces." +msgstr "" +"µð·ºÅ丮ÀÇ °æ·Î¸¦ ÀÔ·ÂÇϼ¼¿ä. ºóÄ­À¸·Î ºÐ¸®Çؼ­ Çϳª ÀÌ»óÀÇ °æ·Î¸¦ ¾µ ¼ö " +"ÀÖ½À´Ï´Ù." + +#: ../../WPrefs.app/MenuGuru.c:361 ../../WPrefs.app/MenuGuru.c:383 +#: ../../WPrefs.app/MenuGuru.c:405 +msgid "" +"The menu generated will have an item for each file in the directory. The " +"directories can contain program executables or data files (such as jpeg " +"images)." +msgstr "" +"»ý¼ºµÇ´Â ¸Þ´º´Â µð·ºÅ丮ÀÇ °¢ ÆÄÀÏ¿¡ ´ëÇØ Ç׸ñÀ» °®½À´Ï´Ù. µð·ºÅ丮¿¡´Â " +"ÇÁ·Î±×·¥ ½ÇÇà ÆÄÀÏÀ̳ª µ¥ÀÌÅÍ ÆÄÀÏÀ» ³ÖÀ¸¸é µË´Ï´Ù.(jpeg À̹ÌÁö °°Àº °Íµé)" + +#: ../../WPrefs.app/MenuGuru.c:415 +msgid "" +"If the directory contain data files, type the command used to open these " +"files. Otherwise, leave it in blank." +msgstr "" +"µð·ºÅ丮¿¡ µ¥ÀÌÅÍ ÆÄÀÏÀÌ ÀÖ´Â °æ¿ì, ÀÌ ÆÄÀÏÀ» ¿­±â À§ÇØ »ç¿ëÇÒ ¸í·ÉÀ» " +"ÀÔ·ÂÇϼ¼¿ä. ±×·¸Áö ¾ÊÀ¸¸é ºóÄ­À¸·Î µÎ¼¼¿ä." + +#: ../../WPrefs.app/MenuGuru.c:426 +msgid "" +"Each file in the directory will have an item and they will be opened with " +"the supplied command.For example, if the directory contains image files and " +"the command is \"xv -root\", each file in the directory will have a menu " +"item like \"xv -root imagefile\"." +msgstr "" +"µð·ºÅ丮ÀÇ °¢ ÆÄÀÏ¿¡´Â Ç׸ñÀÌ ÀÖÀ¸¸ç Á¦°øµÈ ¸í·ÉÀ¸·Î ¿­ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ " +"µé¸é, ÀÌ µð·ºÅ丮¿¡ À̹ÌÁö ÆÄÀÏÀÌ ÀÖ°í ¸í·ÉÀÌ \"xv -root\"À̸é, µð·ºÅ丮ÀÇ " +"°¢ ÆÄÀÏÀº \"xv -root À̹ÌÁöÆÄÀÏ\"°ú °°Àº ¸Þ´º Ç׸ñÀ» °®½À´Ï´Ù." + +#: ../../WPrefs.app/MenuPreferences.c:112 +msgid "Menu Scrolling Speed" +msgstr "¸Þ´º ½ºÅ©·Ñ ¼Óµµ" + +#: ../../WPrefs.app/MenuPreferences.c:161 +msgid "Submenu Alignment" +msgstr "ºÎ¸Þ´º Á¤·Ä" + +#: ../../WPrefs.app/MenuPreferences.c:204 +msgid "" +"Always open submenus inside the screen, instead of scrolling.\n" +"Note: this can be an annoyance at some circumstances." +msgstr "" +"½ºÅ©·ÑÇÏ´Â ´ë½Å Ç×»ó È­¸é ³»¿¡ ºÎ¸Þ´º¸¦ ¿±´Ï´Ù.\n" +"ÁÖÀÇ: ¾î¶² ȯ°æ¿¡¼­´Â ±ÍÂúÀ»Áöµµ ¸ð¸¨´Ï´Ù." + +#: ../../WPrefs.app/MenuPreferences.c:209 +msgid "Scroll off-screen menus when pointer is moved over them." +msgstr "È­¸é ¹ÛÀ¸·Î ³ª°£ ¸Þ´º ÂÊÀ¸·Î ¸¶¿ì½º¸¦ ¿òÁ÷ÀÌ¸é ½ºÅ©·ÑÇÕ´Ï´Ù." + +#: ../../WPrefs.app/MenuPreferences.c:229 +msgid "Menu Preferences" +msgstr "¸Þ´º ¼³Á¤" + +#: ../../WPrefs.app/MouseSettings.c:147 +msgid "Invalid mouse acceleration value. Must be a positive real value." +msgstr "À߸øµÈ ¸¶¿ì½º °¡¼Ó ÀÓ°èÄ¡ °ª. °¡¼Ó Àü¿¡ ¿òÁ÷ÀÏ Çȼ¿ÀÇ ¼ö¿©¾ß ÇÔ." + +#: ../../WPrefs.app/MouseSettings.c:170 +msgid "" +"Invalid mouse acceleration threshold value. Must be the number of pixels to " +"travel before accelerating." +msgstr "" +"À߸øµÈ ¸¶¿ì½º °¡¼Ó ÀÓ°èÄ¡ °ªÀÔ´Ï´Ù. °¡¼Ó Àü¿¡ ¿òÁ÷ÀÏ Çȼ¿ÀÇ ¼ö°¡ µÇ¾î¾ß " +"ÇÕ´Ï´Ù." + +#: ../../WPrefs.app/MouseSettings.c:225 +#, c-format +msgid "mouse button %s not supported by WPrefs." +msgstr "¸¶¿ì½º ¹öÆ° %s ´Â WPrefs¿¡¼­ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù." + +#: ../../WPrefs.app/MouseSettings.c:259 ../../WPrefs.app/MouseSettings.c:270 +#: ../../WPrefs.app/MouseSettings.c:281 +#, c-format +msgid "bad value %s for option %s" +msgstr "%s ¿É¼Ç¿¡ À߸øµÈ °ª %s" + +#: ../../WPrefs.app/MouseSettings.c:341 +#, c-format +msgid "" +"modifier key %s for option ModifierKey was not recognized. Using %s as " +"default" +msgstr "" +"ModifierKey ÀÇ ¼öÁ¤ÀÚ Å° °ª %s ¸¦ ÀνÄÇÒ ¼ö ¾ø½À´Ï´Ù. ±âº»°ªÀÎ %s ¸¦ " +"»ç¿ëÇÕ´Ï´Ù." + +#: ../../WPrefs.app/MouseSettings.c:366 +msgid "could not retrieve keyboard modifier mapping" +msgstr "Å°º¸µå ¼öÁ¤ÀÚ ¸ÅÇÎÀ» ¾òÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../../WPrefs.app/MouseSettings.c:513 +msgid "Mouse Speed" +msgstr "¸¶¿ì½º ¼Óµµ" + +#: ../../WPrefs.app/MouseSettings.c:575 +msgid "Acceler.:" +msgstr "°¡¼Ó.:" + +#: ../../WPrefs.app/MouseSettings.c:587 +msgid "Threshold:" +msgstr "ÀÓ°èÄ¡:" + +#: ../../WPrefs.app/MouseSettings.c:602 +msgid "Double-Click Delay" +msgstr "´õºí Ŭ¸¯ Áö¿¬" + +#: ../../WPrefs.app/MouseSettings.c:646 +msgid "Test" +msgstr "½ÃÇè" + +#: ../../WPrefs.app/MouseSettings.c:656 +msgid "Workspace Mouse Actions" +msgstr "ÀÛ¾÷°ø°£ ¸¶¿ì½º µ¿ÀÛ" + +#: ../../WPrefs.app/MouseSettings.c:661 +msgid "Disable mouse actions" +msgstr "¸¶¿ì½º µ¿ÀÛ »ç¿ë ¾ÊÀ½" + +#: ../../WPrefs.app/MouseSettings.c:714 +msgid "Applications menu" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º" + +#: ../../WPrefs.app/MouseSettings.c:720 +msgid "Window list menu" +msgstr "â ¸ñ·Ï ¸Þ´º" + +#: ../../WPrefs.app/MouseSettings.c:726 +msgid "Select windows" +msgstr "â ¼±ÅÃ" + +#: ../../WPrefs.app/MouseSettings.c:761 +msgid "Mouse Grab Modifier" +msgstr "¸¶¿ì½º Àâ±â ¼öÁ¤ÀÚ(Modifier)" + +#: ../../WPrefs.app/MouseSettings.c:795 +#, c-format +msgid "could not create %s" +msgstr "%s ¸¦ ¸¸µé ¼ö ¾øÀ½" + +#: ../../WPrefs.app/MouseSettings.c:811 +#, c-format +msgid "could not create temporary file %s" +msgstr "Àӽà ÆÄÀÏ %s ¸¦ ¸¸µé ¼ö ¾øÀ½" + +#: ../../WPrefs.app/MouseSettings.c:836 +#, c-format +msgid "could not rename file %s to %s\n" +msgstr "%s ÆÄÀϸíÀ» %s ·Î ¹Ù²Ü ¼ö ¾øÀ½\n" + +#: ../../WPrefs.app/MouseSettings.c:919 +msgid "Mouse Preferences" +msgstr "¸¶¿ì½º ¼³Á¤" + +#: ../../WPrefs.app/Paths.c:82 +msgid "bad value in option IconPath. Using default path list" +msgstr "IconPath ¿¡ À߸øµÈ °ª. ±âº» °æ·Î ¸ñ·Ï »ç¿ë" + +#: ../../WPrefs.app/Paths.c:99 +msgid "bad value in option PixmapPath. Using default path list" +msgstr "PixmapPath ¿¡ À߸øµÈ °ª. ±âº» °æ·Î ¸ñ·Ï »ç¿ë" + +#: ../../WPrefs.app/Paths.c:302 +msgid "Icon Search Paths" +msgstr "¾ÆÀÌÄÜ °Ë»ö °æ·Î" + +#: ../../WPrefs.app/Paths.c:314 ../../WPrefs.app/Paths.c:350 +msgid "Add" +msgstr "Ãß°¡" + +#: ../../WPrefs.app/Paths.c:321 ../../WPrefs.app/Paths.c:357 +msgid "Remove" +msgstr "»èÁ¦" + +#: ../../WPrefs.app/Paths.c:338 +msgid "Pixmap Search Paths" +msgstr "Pixmap °Ë»ö °æ·Î" + +#: ../../WPrefs.app/Paths.c:386 +msgid "Search Path Configuration" +msgstr "°Ë»ö °æ·Î ¼³Á¤" + +#: ../../WPrefs.app/Preferences.c:151 +msgid "Size Display" +msgstr "Å©±â Á¶Á¤ Ç¥½Ã ¹æ¹ý" + +#: ../../WPrefs.app/Preferences.c:156 ../../WPrefs.app/Preferences.c:172 +msgid "Corner of screen" +msgstr "È­¸é ±¸¼®" + +#: ../../WPrefs.app/Preferences.c:157 ../../WPrefs.app/Preferences.c:173 +msgid "Center of screen" +msgstr "È­¸é °¡¿îµ¥" + +#: ../../WPrefs.app/Preferences.c:158 ../../WPrefs.app/Preferences.c:174 +msgid "Center of resized window" +msgstr "ÇöÀç â °¡¿îµ¥" + +#: ../../WPrefs.app/Preferences.c:159 +msgid "Technical drawing-like" +msgstr "Á¦µµ Å©±â Ç¥½Ã ¹æ¹ýó·³" + +#: ../../WPrefs.app/Preferences.c:167 +msgid "Position Display" +msgstr "â À§Ä¡ Ç¥½Ã ¹æ¹ý" + +#: ../../WPrefs.app/Preferences.c:182 +msgid "Show balloon text for..." +msgstr "dz¼± µµ¿ò¸»Àº..." + +#: ../../WPrefs.app/Preferences.c:189 +msgid "incomplete window titles" +msgstr "ºÒ¿ÏÀüÇÑ Ã¢ ŸÀÌƲ¿¡ Ç¥½Ã" + +#: ../../WPrefs.app/Preferences.c:190 +msgid "miniwindow titles" +msgstr "¾ÆÀÌÄÜ Å¸ÀÌƲ¿¡ Ç¥½Ã" + +#: ../../WPrefs.app/Preferences.c:191 +msgid "application/dock icons" +msgstr "¾ÖÇø®ÄÉÀ̼Ç/dock ¾ÆÀÌÄÜ" + +#: ../../WPrefs.app/Preferences.c:204 +msgid "Raise window when switching focus with keyboard (CirculateRaise)." +msgstr "Å°º¸µå·Î Æ÷Ä¿½º Àüȯ½Ã ⠿ø²(CirculateRaise)." + +#: ../../WPrefs.app/Preferences.c:210 +msgid "Keep keyboard language status for each window." +msgstr "ÇöÀç âÀÇ Å°º¸µå ¾ð¾î »óÅ À¯Áö." + +#: ../../WPrefs.app/Preferences.c:231 +msgid "Miscellaneous Ergonomic Preferences" +msgstr "±âŸ Àΰ£ ȯ°æ °øÇÐÀû ¼³Á¤" + +#: ../../WPrefs.app/Text.c:179 +#, c-format +msgid "Invalid font %s." +msgstr "À߸øµÈ ±Û²Ã %s" + +#: ../../WPrefs.app/Text.c:256 +msgid "Set Font..." +msgstr "±Û²Ã ÁöÁ¤" + +#: ../../WPrefs.app/Text.c:262 +msgid "Window Title Font" +msgstr "â Á¦¸ñ ±Û²Ã" + +#: ../../WPrefs.app/Text.c:263 +msgid "Menu Title Font" +msgstr "¸Þ´º Á¦¸ñ ±Û²Ã" + +#: ../../WPrefs.app/Text.c:264 +msgid "Menu Item Font" +msgstr "¸Þ´º Ç׸ñ ±Û²Ã" + +#: ../../WPrefs.app/Text.c:265 +msgid "Icon Title Font" +msgstr "¾ÆÀÌÄÜ Á¦¸ñ ±Û²Ã" + +#: ../../WPrefs.app/Text.c:266 +msgid "Clip Title Font" +msgstr "Ŭ¸³ Á¦¸ñ ±Û²Ã" + +#: ../../WPrefs.app/Text.c:267 +msgid "Geometry Display Font" +msgstr "À§Ä¡/Å©±â Ç¥½Ã ±Û²Ã" + +#: ../../WPrefs.app/Text.c:280 +msgid "" +"Sample Text\n" +"abcdefghijklmnopqrstuvxywz\n" +"ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" +"0123456789" +msgstr "" +"Sample Text\n" +"abcdefghijklmnopqrstuvxywz\n" +"ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" +"°¡³ª´Ù¶ó¸¶¹Ù»ç\n" +"0123456789" + +#: ../../WPrefs.app/Text.c:285 +msgid "Alignment" +msgstr "Á¤·Ä" + +#: ../../WPrefs.app/Text.c:290 +msgid "Left" +msgstr "¿ÞÂÊ" + +#: ../../WPrefs.app/Text.c:296 +msgid "Center" +msgstr "Áß¾Ó" + +#: ../../WPrefs.app/Text.c:303 +msgid "Right" +msgstr "¿À¸¥ÂÊ" + +#: ../../WPrefs.app/Text.c:325 +msgid "Text Preferences" +msgstr "ÅؽºÆ® ¼³Á¤" + +#: ../../WPrefs.app/TextureAndColor.c:384 +msgid "Window Title Bar" +msgstr "â Á¦¸ñ ¹Ù" + +#: ../../WPrefs.app/TextureAndColor.c:385 +msgid "Menu Title Bar" +msgstr "¸Þ´º Á¦¸ñ ¹Ù" + +#: ../../WPrefs.app/TextureAndColor.c:386 +msgid "Menu Items" +msgstr "¸Þ´º Ç׸ñ" + +#: ../../WPrefs.app/TextureAndColor.c:387 +msgid "Workspace/Clip" +msgstr "ÀÛ¾÷°ø°£/Ŭ¸³" + +#: ../../WPrefs.app/TextureAndColor.c:388 +msgid "Icons" +msgstr "¾ÆÀÌÄÜ" + +#: ../../WPrefs.app/TextureAndColor.c:399 +msgid "Focused Window" +msgstr "È°¼º â" + +#: ../../WPrefs.app/TextureAndColor.c:412 +#: ../../WPrefs.app/TextureAndColor.c:443 +#: ../../WPrefs.app/TextureAndColor.c:474 +msgid "Texture" +msgstr "ÅؽºÃ³" + +#: ../../WPrefs.app/TextureAndColor.c:418 +#: ../../WPrefs.app/TextureAndColor.c:449 +#: ../../WPrefs.app/TextureAndColor.c:480 +msgid "Text Color" +msgstr "ÅؽºÆ® »ö" + +#: ../../WPrefs.app/TextureAndColor.c:423 +#: ../../WPrefs.app/TextureAndColor.c:454 +#: ../../WPrefs.app/TextureAndColor.c:485 +#: ../../WPrefs.app/TextureAndColor.c:509 +#: ../../WPrefs.app/TextureAndColor.c:575 +#: ../../WPrefs.app/TextureAndColor.c:652 +msgid "Set..." +msgstr "ÁöÁ¤..." + +#: ../../WPrefs.app/TextureAndColor.c:430 +msgid "Unfocused Window" +msgstr "ºñÈ°¼º â" + +#: ../../WPrefs.app/TextureAndColor.c:461 +msgid "Owner of Focused Window" +msgstr "È°¼º âÀÇ ¼ÒÀ¯ÀÚ" + +#: ../../WPrefs.app/TextureAndColor.c:494 +msgid "Unselected Items" +msgstr "¼±ÅõÇÁö ¾ÊÀº Ç׸ñ" + +#: ../../WPrefs.app/TextureAndColor.c:504 +#: ../../WPrefs.app/TextureAndColor.c:558 +msgid "Background" +msgstr "¹è°æ" + +#: ../../WPrefs.app/TextureAndColor.c:519 +msgid "Normal Text" +msgstr "º¸Åë ÅؽºÆ®" + +#: ../../WPrefs.app/TextureAndColor.c:529 +msgid "Disabled Text" +msgstr "»ç¿ë ºÒ°¡´ÉÇÑ ÅؽºÆ®" + +#: ../../WPrefs.app/TextureAndColor.c:538 +msgid "Selected Items" +msgstr "¼±ÅÃµÈ Ç׸ñ" + +#: ../../WPrefs.app/TextureAndColor.c:548 +msgid "Text" +msgstr "ÅؽºÆ®" + +#: ../../WPrefs.app/TextureAndColor.c:566 +msgid "Menu Title Background" +msgstr "¸Þ´º Á¦¸ñ ¹è°æ" + +#: ../../WPrefs.app/TextureAndColor.c:584 +msgid "Menu Title Text" +msgstr "¸Þ´º Á¦¸ñ ÅؽºÆ®" + +#: ../../WPrefs.app/TextureAndColor.c:596 +msgid "Workspace Background" +msgstr "ÀÛ¾÷°ø°£ ¹è°æ" + +#: ../../WPrefs.app/TextureAndColor.c:605 +msgid "Change" +msgstr "º¯°æ" + +#: ../../WPrefs.app/TextureAndColor.c:611 +msgid "Clip Title Text" +msgstr "Ŭ¸³ Á¦¸ñ ÅؽºÆ®" + +#: ../../WPrefs.app/TextureAndColor.c:621 +msgid "Normal" +msgstr "º¸Åë" + +#: ../../WPrefs.app/TextureAndColor.c:631 +msgid "Collapsed" +msgstr "Á¢Èû" + +#: ../../WPrefs.app/TextureAndColor.c:643 +msgid "Icon Background" +msgstr "¾ÆÀÌÄÜ ¹è°æ" + +#: ../../WPrefs.app/TextureAndColor.c:677 +msgid "Texture and Color Preferences" +msgstr "ÅؽºÃ³¿Í »ö»ó ¼³Á¤" + +#: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 +msgid "Set" +msgstr "ÁöÁ¤" + +#: ../../WPrefs.app/Themes.c:132 +msgid "Stop" +msgstr "ÁßÁö" + +#: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:205 +#: ../../WPrefs.app/Themes.c:225 +msgid "Download" +msgstr "´Ù¿î·Îµå" + +#: ../../WPrefs.app/Themes.c:173 +msgid "Save Current Theme" +msgstr "ÇöÀç Å׸¶ ÀúÀå" + +#: ../../WPrefs.app/Themes.c:182 +msgid "Load" +msgstr "ºÒ·¯¿À±â" + +#: ../../WPrefs.app/Themes.c:187 +msgid "Install" +msgstr "¼³Ä¡" + +#: ../../WPrefs.app/Themes.c:195 +msgid "Tile of The Day" +msgstr "¿À´ÃÀÇ Å¸ÀÏ(Tile)" + +#: ../../WPrefs.app/Themes.c:215 +msgid "Bar of The Day" +msgstr "¿À´ÃÀÇ ¹Ù(Bar)" + +#: ../../WPrefs.app/Themes.c:252 +msgid "Themes" +msgstr "Å׸¶" + +#: ../../WPrefs.app/WPrefs.c:201 +msgid "Window Maker Preferences" +msgstr "Window Maker ¼³Á¤" + +#: ../../WPrefs.app/WPrefs.c:225 +msgid "Revert Page" +msgstr "ÆäÀÌÁö º¹±¸" + +#: ../../WPrefs.app/WPrefs.c:231 +msgid "Revert All" +msgstr "¸ðµÎ º¹±¸" + +#: ../../WPrefs.app/WPrefs.c:237 +msgid "Save" +msgstr "ÀúÀå" + +#: ../../WPrefs.app/WPrefs.c:243 +msgid "Close" +msgstr "´Ý±â" + +#: ../../WPrefs.app/WPrefs.c:260 +msgid "Window Maker Preferences Utility" +msgstr "Window Maker ¼³Á¤ À¯Æ¿¸®Æ¼" + +#: ../../WPrefs.app/WPrefs.c:267 +#, c-format +msgid "Version %s for Window Maker %s" +msgstr "¹öÀü %s - Window Maker %s" + +#: ../../WPrefs.app/WPrefs.c:274 +msgid "Starting..." +msgstr "½ÃÀÛÇÕ´Ï´Ù..." + +#: ../../WPrefs.app/WPrefs.c:280 +msgid "" +"Programming/Design: Alfredo K. Kojima\n" +"Artwork: Marco van Hylckama Vlieg\n" +"More Programming: James Thompson" +msgstr "" +"ÇÁ·Î±×·¡¹Ö/µðÀÚÀÎ: Alfredo K. Kojima\n" +"¾ÆÆ®¿÷: Macro van Hylckama Vlieg\n" +"Ãß°¡ ÇÁ·Î±×·¡¹Ö: James Thompson" + +#: ../../WPrefs.app/WPrefs.c:368 +#, c-format +msgid "could not locate image file %s\n" +msgstr "À̹ÌÁö ÆÄÀÏ %s¸¦ ãÀ» ¼ö ¾øÀ½\n" + +#: ../../WPrefs.app/WPrefs.c:474 +#, c-format +msgid "could not load image file %s:%s" +msgstr "À̹ÌÁö ÆÄÀÏ %s¸¦ ÀÐÀ» ¼ö ¾øÀ½" + +#: ../../WPrefs.app/WPrefs.c:493 +msgid "Loading Window Maker configuration files..." +msgstr "Window Maker ¼³Á¤ ÆÄÀÏÀ» Àд Áß..." + +#: ../../WPrefs.app/WPrefs.c:497 +msgid "Initializing configuration panels..." +msgstr "¼³Á¤ ÆгΠÃʱâÈ­ Áß..." + +#: ../../WPrefs.app/WPrefs.c:525 +msgid "" +"WPrefs is free software and is distributed WITHOUT ANY WARRANTY under the " +"terms of the GNU General Public License. Redistribution of the icons in this " +"program separately from the program is prohibited." +msgstr "" +"WPrefs´Â °ø°³ ¼ÒÇÁÆ®¿þ¾îÀ̸ç GNU General Public License¸¦ µû¸£¸ç ¹èÆ÷¿¡ µû¸¥ " +"¾î¶°ÇÑ Ã¥ÀÓµµ ÁöÁö ¾Ê½À´Ï´Ù. ¾ÆÀÌÄÜÀÇ °æ¿ì WPrefs¿Í ÇÔ²²°¡ ¾Æ´Ï¸é ¹èÆ÷ÇÒ ¼ö " +"¾ø½À´Ï´Ù." + +#: ../../WPrefs.app/WPrefs.c:557 ../../WPrefs.app/WPrefs.c:613 +#, c-format +msgid "Window Maker domain (%s) is corrupted!" +msgstr "Window Maker µµ¸ÞÀÎ(%s)ÀÌ ±úÁ³½À´Ï´Ù!" + +#: ../../WPrefs.app/WPrefs.c:561 +#, c-format +msgid "Could not load Window Maker domain (%s) from defaults database." +msgstr "±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ Window Maker µµ¸ÞÀÎ(%s)À» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù." + +#: ../../WPrefs.app/WPrefs.c:569 +msgid "could not extract version information from Window Maker" +msgstr "Window Maker¿¡¼­ ¹öÀü Á¤º¸¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../../WPrefs.app/WPrefs.c:570 +msgid "Make sure wmaker is in your search path." +msgstr "wmaker°¡ °Ë»ö °æ·Î¿¡ ÀÖ´ÂÁö È®ÀÎÇϼ¼¿ä." + +#: ../../WPrefs.app/WPrefs.c:573 +msgid "" +"Could not extract version from Window Maker. Make sure it is correctly " +"installed and is in your PATH environment variable." +msgstr "" +"Window Maker¿¡¼­ ¹öÀü Á¤º¸¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù. PATH ȯ°æ º¯¼ö¿¡ ÁöÁ¤µÈ °÷¿¡ " +"Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö È®ÀÎÇϼ¼¿ä." + +#: ../../WPrefs.app/WPrefs.c:583 +msgid "" +"Could not extract version from Window Maker. Make sure it is correctly " +"installed." +msgstr "" +"Window Maker¿¡¼­ ¹öÀü Á¤º¸¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù. Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö " +"È®ÀÎÇϼ¼¿ä." + +#: ../../WPrefs.app/WPrefs.c:588 +#, c-format +msgid "" +"WPrefs only supports Window Maker 0.18.0 or newer.\n" +"The version installed is %i.%i.%i\n" +msgstr "" +"WPrefs ´Â Window Maker 0.18.0 ÀÌ»ó¸¸À» Áö¿øÇÕ´Ï´Ù.\n" +"¼³Ä¡µÈ ¹öÁ¯Àº %i.%i.%i ÀÔ´Ï´Ù.\n" + +#: ../../WPrefs.app/WPrefs.c:595 +#, c-format +msgid "" +"Window Maker %i.%i.%i, which is installed in your system, is not fully " +"supported by this version of WPrefs." +msgstr "" +"½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ Window Maker %i.%i.%i´Â WPrefs¿¡¼­ Á¦´ë·Î Áö¿øÇÏ´Â ¹öÀüÀÌ " +"¾Æ´Õ´Ï´Ù." + +#: ../../WPrefs.app/WPrefs.c:602 +msgid "could not run \"wmaker --global_defaults_path\"." +msgstr "\"wmaker --global_defaults_path\"¸¦ ¼öÇàÇÒ ¼ö ¾ø½À´Ï´Ù." + +#: ../../WPrefs.app/WPrefs.c:617 +#, c-format +msgid "Could not load global Window Maker domain (%s)." +msgstr "Àü¿ª Window Maker µµ¸ÞÀÎ (%s)¸¦ ÀоîµéÀÏ ¼ö ¾ø½À´Ï´Ù." + +#: ../../WPrefs.app/WPrefs.c:863 +#, c-format +msgid "" +"bad speed value for option %s\n" +". Using default Medium" +msgstr "" +"¿É¼Ç %s¿¡ À߸øµÈ ¼Óµµ °ªÀ» ÁÖ¾ú½À´Ï´Ù.\n" +"±âº»°ª MediumÀ» »ç¿ëÇÕ´Ï´Ù" + +#: ../../WPrefs.app/WindowHandling.c:108 +#, c-format +msgid "bad option value %s in WindowPlacement. Using default value" +msgstr "WindowPlacement¿¡ À߸øµÈ ¿É¼Ç °ª %sÀÔ´Ï´Ù. ±âº»°ªÀ» »ç¿ëÇÕ´Ï´Ù" + +#: ../../WPrefs.app/WindowHandling.c:130 +msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" +msgstr "" +"WindowPlaceOrigin ¿É¼Ç¿¡ À߸øµÈ µ¥ÀÌÅÍÀÔ´Ï´Ù. ±âº»°ª (0,0)À» »ç¿ëÇÕ´Ï´Ù" + +#: ../../WPrefs.app/WindowHandling.c:192 +msgid "Window Placement" +msgstr "â ¹èÄ¡" + +#: ../../WPrefs.app/WindowHandling.c:197 +msgid "Automatic" +msgstr "ÀÚµ¿" + +#: ../../WPrefs.app/WindowHandling.c:198 +msgid "Random" +msgstr "ÀÓÀÇ" + +#: ../../WPrefs.app/WindowHandling.c:199 +msgid "Manual" +msgstr "¼öµ¿" + +#: ../../WPrefs.app/WindowHandling.c:200 +msgid "Cascade" +msgstr "°è´Ü½Ä" + +#: ../../WPrefs.app/WindowHandling.c:206 +msgid "Placement Origin" +msgstr "±âº» À§Ä¡" + +#: ../../WPrefs.app/WindowHandling.c:260 +msgid "Opaque Move" +msgstr "À̵¿½Ã â ³»¿ë º¸À̱â" + +#: ../../WPrefs.app/WindowHandling.c:296 +msgid "When maximizing..." +msgstr "ÃÖ´ëÈ­½Ã¿¡´Â..." + +#: ../../WPrefs.app/WindowHandling.c:301 +msgid "...do not resize over icons" +msgstr "¾ÆÀÌÄÜÀ» µ¤Áö ¾ÊÀ½" + +#: ../../WPrefs.app/WindowHandling.c:307 +msgid "...do not resize over dock" +msgstr "DockÀ» µ¤Áö ¾ÊÀ½" + +#: ../../WPrefs.app/WindowHandling.c:320 +msgid "Open transients in same workspace as their owners" +msgstr "¼ÒÀ¯ÀÚ À§¿¡¼­´Â ÀϽÃÀûÀ¸·Î âÀ» À¯Áö" + +#: ../../WPrefs.app/WindowHandling.c:347 +msgid "Window Handling Preferences" +msgstr "â ó¸® ¼³Á¤" + +#: ../../WPrefs.app/Workspace.c:137 +msgid "Workspace Navigation" +msgstr "ÀÛ¾÷°ø°£ Àüȯ" + +#: ../../WPrefs.app/Workspace.c:161 +msgid "drag windows between workspaces." +msgstr "ÀÛ¾÷°ø°£°£¿¡ â ²ø±â" + +#: ../../WPrefs.app/Workspace.c:186 +msgid "" +"switch to first workspace when switching past the last workspace and " +"vice-versa" +msgstr "" +"¸¶Áö¸· ÀÛ¾÷°ø°£ ´ÙÀ½À¸·Î ÀüȯÇÒ¶§¿¡ óÀ½ ÀÛ¾÷°ø°£À¸·Î À̵¿ (¹Ý´ëµµ ¸¶Âù°¡Áö)" + +#: ../../WPrefs.app/Workspace.c:210 +msgid "create a new workspace when switching past the last workspace." +msgstr "¸¶Áö¸· ÀÛ¾÷°ø°£ ´ÙÀ½À¸·Î Àüȯ½Ã »õ·Î¿î ÀÛ¾÷°ø°£ »ý¼º" + +#: ../../WPrefs.app/Workspace.c:218 +msgid "Dock/Clip" +msgstr "Dock/Ŭ¸³" + +#: ../../WPrefs.app/Workspace.c:287 +msgid "Workspace Preferences" +msgstr "ÀÛ¾÷°ø°£ ¼³Á¤" + +#: ../../WPrefs.app/main.c:71 +#, c-format +msgid "usage: %s [options]\n" +msgstr "»ç¿ë¹ý: %s [¿É¼Ç]\n" + +#: ../../WPrefs.app/main.c:72 +msgid "options:" +msgstr "¿É¼Ç:" + +#: ../../WPrefs.app/main.c:73 +msgid " -display \tdisplay to be used" +msgstr "-display \t»ç¿ëÇÒ µð½ºÇ÷¹ÀÌ" + +#: ../../WPrefs.app/main.c:74 +msgid " --version\t\tprint version number and exit" +msgstr "--version\t\t¹öÁ¯ Ãâ·ÂÈÄ Á¾·á" + +#: ../../WPrefs.app/main.c:75 +msgid " --help\t\tprint this message and exit" +msgstr "--help\t\tÇöÀç ¸Þ½ÃÁö Ãâ·Â ÈÄ Á¾·á" + +#: ../../WPrefs.app/main.c:134 +#, c-format +msgid "too few arguments for %s" +msgstr "%s ÀÇ Àμö°¡ ³Ê¹« ÀûÀ½" + +#: ../../WPrefs.app/main.c:156 +msgid "X server does not support locale" +msgstr "X ¼­¹ö°¡ ·ÎÄÉÀÏÀ» Áö¿øÇÏÁö ¾ÊÀ½" + +#: ../../WPrefs.app/main.c:159 +msgid "cannot set locale modifiers" +msgstr "·ÎÄÉÀÏ ¼öÁ¤ÀÚ(modifier)¸¦ ¼³Á¤ÇÒ ¼ö ¾øÀ½" + +#: ../../WPrefs.app/main.c:165 +#, c-format +msgid "could not open display %s" +msgstr "µð½ºÇ÷¹ÀÌ %s¸¦ ¿­ ¼ö ¾øÀ½" + +#: ../../WPrefs.app/main.c:173 +msgid "could not initialize application" +msgstr "¾ÖÇø®ÄÉÀ̼ÇÀ» ÃʱâÈ­ ÇÒ ¼ö ¾øÀ½" diff --git a/WPrefs.app/po/cs.po b/WPrefs.app/po/zh_TW.Big5.po similarity index 62% copy from WPrefs.app/po/cs.po copy to WPrefs.app/po/zh_TW.Big5.po index b9003332..03311b68 100644 --- a/WPrefs.app/po/cs.po +++ b/WPrefs.app/po/zh_TW.Big5.po @@ -1,140 +1,141 @@ -# Message catalog for WindowMaker -# Copyright (C) 1998 Free Software Foundation, Inc. -# David Sauer , 1998. -# WPrefs 0.8 for WindowMaker 0.20.x -# Èt pro 3 20:38:36 CET 1998 David Sauer +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 1999 Free Software Foundation, Inc. +# Li Wei Jih , 1999. +# msgid "" msgstr "" -"Project-Id-Version: WPrefs 0.9 (WindowMaker 0.50.x)\n" -"POT-Creation-Date: 1999-01-11 07:20+0100\n" -"PO-Revision-Date: 1999-01-11 07:37+01:00\n" -"Last-Translator: David Sauer \n" -"Language-Team: czech \n" +"Project-Id-Version: Window Maker-0.51.0\n" +"POT-Creation-Date: 1999-02-09 13:00+0800\n" +"PO-Revision-Date: 1999-02-09 13:00+0800\n" +"Last-Translator: Li Wei Jih \n" +"Language-Team: chinese \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: unknown\n" +"Content-Type: text/plain; charset=big5\n" +"Content-Transfer-Encoding: 8-bit\n" #: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148 -#: ../../WPrefs.app/MouseSettings.c:510 ../../WPrefs.app/WindowHandling.c:274 +#: ../../WPrefs.app/MouseSettings.c:526 ../../WPrefs.app/WindowHandling.c:274 #: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71 #: ../../WPrefs.app/Workspace.c:77 #, c-format msgid "could not load icon %s" -msgstr "nelze naèíst ikonu %s" +msgstr "µLªk¸ü¤J¹Ï¥Ü %s" #: ../../WPrefs.app/Configurations.c:156 ../../WPrefs.app/Workspace.c:85 #, c-format msgid "could not process icon %s:" -msgstr "nelze zpracovat ikonu %s:" +msgstr "µLªk³B²z¹Ï¥Ü %s:" #: ../../WPrefs.app/Configurations.c:181 ../../WPrefs.app/Workspace.c:124 #, c-format msgid "could not load image file %s" -msgstr "ze souboru %s nelze naèíst obrázek" +msgstr "µLªk¸ü¤J¼v¹³ÀÉ %s" #: ../../WPrefs.app/Configurations.c:195 msgid "Icon Slide Speed" -msgstr "Rychlost klouzání ikony" +msgstr "¹Ï¥Ü²¾°Ê³t«×" #: ../../WPrefs.app/Configurations.c:201 msgid "Shade Animation Speed" -msgstr "Rychlost zmìny okna na titulek" +msgstr "¾B½ª°Êµe³t«×" #: ../../WPrefs.app/Configurations.c:234 ../../WPrefs.app/Configurations.c:246 #: ../../WPrefs.app/Focus.c:310 ../../WPrefs.app/Focus.c:321 #: ../../WPrefs.app/MenuPreferences.c:135 #: ../../WPrefs.app/MenuPreferences.c:146 #: ../../WPrefs.app/MenuPreferences.c:174 -#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:538 -#: ../../WPrefs.app/MouseSettings.c:549 ../../WPrefs.app/MouseSettings.c:604 -#: ../../WPrefs.app/MouseSettings.c:615 ../../WPrefs.app/MouseSettings.c:651 -#: ../../WPrefs.app/MouseSettings.c:666 ../../WPrefs.app/MouseSettings.c:682 +#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:554 +#: ../../WPrefs.app/MouseSettings.c:565 ../../WPrefs.app/MouseSettings.c:627 +#: ../../WPrefs.app/MouseSettings.c:638 ../../WPrefs.app/MouseSettings.c:674 +#: ../../WPrefs.app/MouseSettings.c:689 ../../WPrefs.app/MouseSettings.c:705 #: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421 #, c-format msgid "could not load icon file %s" -msgstr "nelze naèíst soubor s ikonou %s" +msgstr "µLªk¸ü¤J¹Ï¥ÜÀÉ %s" #: ../../WPrefs.app/Configurations.c:262 msgid "Titlebar Style" -msgstr "Styl titulku" +msgstr "¼ÐÃD¦C­·®æ" #: ../../WPrefs.app/Configurations.c:299 msgid "Animations and Sound" -msgstr "Animace a Zvuky" +msgstr "°Êµe»P­µ®Ä" #: ../../WPrefs.app/Configurations.c:305 msgid "Animations" -msgstr "Animace" +msgstr "°Êµe" #: ../../WPrefs.app/Configurations.c:321 msgid "Superfluous" -msgstr "Animace++" +msgstr "¦h¾lªº" #: ../../WPrefs.app/Configurations.c:337 msgid "Sounds" -msgstr "Zvuky" +msgstr "­µ®Ä" #: ../../WPrefs.app/Configurations.c:354 msgid "Note: sound requires a module distributed separately" -msgstr "Poznámka: zvuk vy¾aduje samostatný modul" +msgstr "µù¡G­µ®Ä»Ý­n³æ¿Wµo°eªº¼Ò²Õ" #: ../../WPrefs.app/Configurations.c:364 msgid "Dithering colormap for 8bpp" -msgstr "Ditherovat na 8bpp" +msgstr "¬° 8bpp ¦â½L´î¦â" #: ../../WPrefs.app/Configurations.c:369 msgid "Disable dithering in any visual/depth" -msgstr "Zaka¾ jakékoli ditherování" +msgstr "¨Ï¥ô¦óµøı/²`«×¤¤ªº´î¦â¥¢®Ä" #: ../../WPrefs.app/Configurations.c:390 msgid "More colors for applications" -msgstr "Barvy aplikacím" +msgstr "" +"À³¥Îµ{¦¡\n" +"¨Ï¥Î§ó¦h¦â±m" #: ../../WPrefs.app/Configurations.c:397 msgid "More colors for WindowMaker" -msgstr "Barvy WindowMakeru" +msgstr "" +"WindowMaker\n" +"¨Ï¥Î§ó¦h¦â±m" #: ../../WPrefs.app/Configurations.c:450 msgid "Other Configurations" -msgstr "Dal¹í konfigurace" +msgstr "¨ä¥L³]©w" #: ../../WPrefs.app/Expert.c:70 msgid "Do not set non-WindowMaker specific parameters (do not use xset)" -msgstr "Nenastavovat parametry mimo WindowMaker (nepou¾ívat xset)" +msgstr "¤£­n³]«D WindowMaker «ü©w°Ñ¼Æ¡]¤£­n¨Ï¥Î xset¡^" #: ../../WPrefs.app/Expert.c:71 msgid "Automatically save session when exiting WindowMaker" -msgstr "Pøi ukonèení Window Makeru automaticky ulo¾it sezení" +msgstr "Â÷¶} WindowMaker ®É¦Û°ÊÀx¦s¶¥¬qª¬ºA" #: ../../WPrefs.app/Expert.c:72 msgid "Use SaveUnder in window frames, icons, menus and other objects" -msgstr "Pou¾ívat SaveUnder pøi vykreslení rámeèkù, menu, ikon apod." +msgstr "¦bµøµ¡®Ø¬[¡A¹Ï¥Ü¡A¿ï³æ»P¨ä¥Lª«¥ó¨Ï¥Î SaveUnder" #: ../../WPrefs.app/Expert.c:73 msgid "Disable cycling color highlighting of icons." -msgstr "Zaka¾ rotaci barev pøi zvýraznìní ikon" +msgstr "¨Ï¹Ï¥Üªº´`Àô¦â±m±j½Õ¥¢®Ä" #: ../../WPrefs.app/Expert.c:103 msgid "Expert User Preferences" -msgstr "Nastavení pro experty" +msgstr "¼ô½m¨Ï¥ÎªÌ³]©w" #: ../../WPrefs.app/Focus.c:79 #, c-format msgid "bad option value %s for option FocusMode. Using default Manual" -msgstr "chybná hodnota %s pro FocusMode. Pou¾ívám Manual" +msgstr "FocusMode ¿ï¶µ­È %s ¿ù»~¡C¨Ï¥Î¹w³]­È" #: ../../WPrefs.app/Focus.c:92 #, c-format msgid "bad option value %s for option ColormapMode. Using default Manual" -msgstr "chybná hodnota %s pro ColormapMode. Pou¾ívám Manual" +msgstr "ColormapMode ¿ï¶µ­È %s ¿ù»~¡C¨Ï¥Î¹w³]­È" #: ../../WPrefs.app/Focus.c:190 msgid "" "Click on the window to set\n" "keyboard input focus." -msgstr "" -"Click on the window to set\n" -"keyboard input focus." +msgstr "¦bµøµ¡¤W«ö¤@¤U³]©wÁä½L¿é¤JµJÂI¡C" #: ../../WPrefs.app/Focus.c:194 msgid "" @@ -142,9 +143,9 @@ msgid "" "the window under the mouse pointer,\n" "including the root window." msgstr "" -"Nastav zamìøení vstupu\n" -"na okno pod ukazatelem my¹i.\n" -"(vèetnì hlavního okna)" +"³]©wÁä½L¿é¤JµJÂI¦Ü\n" +"·Æ¹««ü¼Ð¤U­±ªºµøµ¡¡A\n" +"¥]§t®Úµøµ¡¡C" #: ../../WPrefs.app/Focus.c:199 msgid "" @@ -152,510 +153,537 @@ msgid "" "the window under the mouse pointer,\n" "except the root window." msgstr "" -"Nastav zamìøení vstupu\n" -"na okno pod ukazatelem my¹i.\n" -"(mimo hlavního okna)" +"³]©wÁä½L¿é¤JµJÂI¦Ü\n" +"·Æ¹««ü¼Ð¤U­±ªºµøµ¡¡A\n" +"®Úµøµ¡°£¥~¡C" #: ../../WPrefs.app/Focus.c:243 msgid "Input Focus Mode" -msgstr "Zpùsob zamìøení okna" +msgstr "¿é¤JµJÂI¼Ò¦¡" #: ../../WPrefs.app/Focus.c:248 msgid "Click window to focus" -msgstr "«uk my¹í zamìøí" +msgstr "«öµøµ¡¨ú±oµJÂI" #: ../../WPrefs.app/Focus.c:249 msgid "Focus follows mouse" -msgstr "Pohyb my¹í zamìøí" +msgstr "µJÂI¸òµÛ·Æ¹«" #: ../../WPrefs.app/Focus.c:250 msgid "\"Sloppy\" focus" -msgstr "Re¾im \"Sloopy\"" +msgstr "\"Sloppy\" µJÂI" #: ../../WPrefs.app/Focus.c:265 msgid "Install colormap in the window..." -msgstr "Nastavit mapu barev v oknì.." +msgstr "¦w¸Ë¦â½L..." #: ../../WPrefs.app/Focus.c:270 msgid "...that has the input focus." -msgstr "... které má zamìøení." +msgstr "...¿é¤JµJÂI©Ò¦bµøµ¡¡C" #: ../../WPrefs.app/Focus.c:275 msgid "...that is under the mouse pointer." -msgstr "... které je pod my¹í." +msgstr "...·Æ¹««ü¼Ð¤U­±ªºµøµ¡¡C" #: ../../WPrefs.app/Focus.c:284 msgid "Automatic Window Raise Delay" -msgstr "Prodleva pøi vyzdvihnutí oken" +msgstr "¦Û°Ê¤É°_µøµ¡©µ¿ð" #: ../../WPrefs.app/Focus.c:341 msgid "msec" -msgstr "ms" +msgstr "²@¬í" #: ../../WPrefs.app/Focus.c:358 msgid "Do not let applications receive the click used to focus windows." -msgstr "Nenechat aplikaci pøijmout »uk my¹í k zamìøení oken." +msgstr "" +"¤£­nÅýÀ³¥Îµ{¦¡±o¨ì¥Î¨Ó³]©w\n" +"µøµ¡µJÂIªº·Æ¹««öÁä°Ê§@¡C" #: ../../WPrefs.app/Focus.c:364 msgid "Automatically focus new windows." -msgstr "Automaticky zamìøit nová okna." +msgstr "·sµøµ¡¦Û°Ê±o¨ìµJÂI¡C" #: ../../WPrefs.app/Focus.c:385 msgid "Window Focus Preferences" -msgstr "Nastavení zamìøení oken" +msgstr "µøµ¡µJÂI³]©w" #: ../../WPrefs.app/Icons.c:178 msgid "Icon Positioning" -msgstr "Umis»ování ikon" +msgstr "¹Ï¥Ü¦ì¸m" #: ../../WPrefs.app/Icons.c:225 msgid "Iconification Animation" -msgstr "Animace ikonifikace" +msgstr "ÁY¦¨¹Ï¥Ü°Êµe" #: ../../WPrefs.app/Icons.c:236 msgid "Shrinking/Zooming" -msgstr "Zmen¹ení/Zvìt¹ení" +msgstr "ÁY¤p/©ñ¤j" #: ../../WPrefs.app/Icons.c:237 msgid "Spinning/Twisting" -msgstr "Víøení/Kroucení" +msgstr "°jÂà/Âà¦V" #: ../../WPrefs.app/Icons.c:238 msgid "3D-flipping" -msgstr "3D-salta" +msgstr "¥ßÅé½Âà" #: ../../WPrefs.app/Icons.c:239 msgid "None" -msgstr "®ádná" +msgstr "µL" #: ../../WPrefs.app/Icons.c:247 msgid "Icon Display" -msgstr "Zobrazení Ikony" +msgstr "¹Ï¥ÜÅã¥Ü" #: ../../WPrefs.app/Icons.c:252 msgid "Auto-arrange icons" -msgstr "Automaticky rovnat ikony" +msgstr "¦Û°Ê±Æ¦C¹Ï¥Ü" #: ../../WPrefs.app/Icons.c:257 msgid "Omnipresent miniwindows" -msgstr "Miniokna na v¹ech plochách" +msgstr "³Ì¤pµøµ¡µL©Ò¤£¦b" #: ../../WPrefs.app/Icons.c:265 msgid "Icon Size" -msgstr "Velikost ikony" +msgstr "¹Ï¥Ü¤j¤p" #: ../../WPrefs.app/Icons.c:335 msgid "Icon Preferences" -msgstr "Nastavení ikon" +msgstr "¹Ï¥Ü³]©w" #: ../../WPrefs.app/KeyboardSettings.c:72 msgid "Initial Key Repeat" -msgstr "Zaèít opakovat po ..." +msgstr "±Ò©l«öÁä­«½Æ" #: ../../WPrefs.app/KeyboardSettings.c:113 msgid "Key Repeat Rate" -msgstr "Rychlost opakování kláves" +msgstr "«öÁä­«½Æ³t²v" #: ../../WPrefs.app/KeyboardSettings.c:153 msgid "Type here to test" -msgstr "Zkuste klávesnici zde" +msgstr "¦b¦¹¥´¦r´ú¸Õ" #: ../../WPrefs.app/KeyboardSettings.c:172 msgid "Keyboard Preferences" -msgstr "Nastavení klávesnice" +msgstr "Áä½L³]©w" -#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:932 -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/MenuGuru.c:263 +#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:934 +#: ../../WPrefs.app/MenuGuru.c:263 msgid "Cancel" -msgstr "Nic" +msgstr "¨ú®ø" #: ../../WPrefs.app/KeyboardShortcuts.c:184 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." -msgstr "Stisknìte po¾adované klávesy nebo pou¾ijete \"Nic\"." +msgstr "«ö¤U·Q­nªº±¶®|Áä©Î«ö¤U¨ú®ø°±¤î§ì¨ú¡C" #: ../../WPrefs.app/KeyboardShortcuts.c:204 -#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:944 -#: ../../WPrefs.app/Menu.c:1166 +#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:946 +#: ../../WPrefs.app/Menu.c:1168 msgid "Capture" -msgstr "Snímat" +msgstr "§ì¨ú" #: ../../WPrefs.app/KeyboardShortcuts.c:205 #: ../../WPrefs.app/KeyboardShortcuts.c:451 msgid "Click Capture to interactively define the shortcut key." -msgstr "Pou¾ijte \"Snímat\" k definici klávesy." +msgstr "«ö¤U§ì¨ú¥i¤¬°Ê¦¡©w¸q±¶®|Áä¡C" #: ../../WPrefs.app/KeyboardShortcuts.c:359 msgid "Actions" -msgstr "Akce" +msgstr "°Ê§@" #: ../../WPrefs.app/KeyboardShortcuts.c:375 msgid "Open applications menu" -msgstr "Otevøít menu aplikací" +msgstr "¶}±ÒÀ³¥Îµ{¦¡¿ï³æ" #: ../../WPrefs.app/KeyboardShortcuts.c:376 msgid "Open window list menu" -msgstr "Otevøít menu s okny" +msgstr "¶}±Òµøµ¡²M³æ¿ï³æ" #: ../../WPrefs.app/KeyboardShortcuts.c:377 msgid "Open window commands menu" -msgstr "Otevøít menu s pøikazy pro okno" +msgstr "¶}±Òµøµ¡©R¥O¿ï³æ" #: ../../WPrefs.app/KeyboardShortcuts.c:378 msgid "Hide active application" -msgstr "Skrýt aplikaci" +msgstr "ÁôÂ조ʤ¤ªºÀ³¥Îµ{¦¡" #: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Miniaturize active window" -msgstr "Miniaturizace" +msgstr "³Ì¤p¤Æ¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Close active window" -msgstr "Uzavøít okno" +msgstr "Ãö³¬¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Maximize active window" -msgstr "Maximalizace okna" +msgstr "³Ì¤j¤Æ¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Maximize active window vertically" -msgstr "Vertikální maximalizace" +msgstr "««ª½³Ì¤j¤Æ¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Raise active window" -msgstr "Aktivní okno vý¹e" +msgstr "¤É°_¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Lower active window" -msgstr "Aktivní okno ní¾e" +msgstr "­°¤U¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Raise/Lower window under mouse pointer" -msgstr "Okno pod ukazatelem my¹i vý¹e/ní¾e" +msgstr "¤É°_/­°¤U·Æ¹««ü¼Ð¤U­±ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Shade active window" -msgstr "Z okna jen titulek" +msgstr "¾B½ª¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:387 msgid "Move/Resize active window" -msgstr "Pøesunou/zvìt¹it aktivní okno" +msgstr "¬¡°Ê¤¤ªºµøµ¡²¾°Ê/¤j¤pÅܧó" #: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Select active window" -msgstr "Vyber okno" +msgstr "¿ï¨ú¬¡°Ê¤¤ªºµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Focus next window" -msgstr "Zamìøit dal¹í okno" +msgstr "µJÂI²¾¦Ü¤U¤@­Óµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Focus previous window" -msgstr "Zamìøit pøedchozí okno" +msgstr "µJÂI²¾¦Ü¤W¤@­Óµøµ¡" #: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Switch to next workspace" -msgstr "Dal¹í plocha" +msgstr "¤Á´«¦Ü¤U¤@­Ó¤u§@°Ï" #: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Switch to previous workspace" -msgstr "Pøedchozí plocha" +msgstr "¤Á´«¦Ü¤W¤@­Ó¤u§@°Ï" #: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Switch to next ten workspaces" -msgstr "Dal¹ích 10 ploch" +msgstr "¤Á´«¦Ü«á¤Q­Ó¤u§@°Ï" #: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Switch to previous ten workspaces" -msgstr "Pøedchozích 10 ploch" +msgstr "¤Á´«¦Ü«e¤Q­Ó¤u§@°Ï" #: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Switch to workspace 1" -msgstr "Pøepni na plochu 1" +msgstr "¤Á´«¦Ü¤u§@°Ï 1" #: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to workspace 2" -msgstr "Pøepni na plochu 2" +msgstr "¤Á´«¦Ü¤u§@°Ï 2" #: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to workspace 3" -msgstr "Pøepni na plochu 3" +msgstr "¤Á´«¦Ü¤u§@°Ï 3" #: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to workspace 4" -msgstr "Pøepni na plochu 4" +msgstr "¤Á´«¦Ü¤u§@°Ï 4" #: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to workspace 5" -msgstr "Pøepni na plochu 5" +msgstr "¤Á´«¦Ü¤u§@°Ï 5" #: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 6" -msgstr "Pøepni na plochu 6" +msgstr "¤Á´«¦Ü¤u§@°Ï 6" #: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 7" -msgstr "Pøepni na plochu 7" +msgstr "¤Á´«¦Ü¤u§@°Ï 7" #: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 8" -msgstr "Pøepni na plochu 8" +msgstr "¤Á´«¦Ü¤u§@°Ï 8" #: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 9" -msgstr "Pøepni na plochu 9" +msgstr "¤Á´«¦Ü¤u§@°Ï 9" #: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 10" -msgstr "Pøepni na plochu 10" +msgstr "¤Á´«¦Ü¤u§@°Ï 10" #: ../../WPrefs.app/KeyboardShortcuts.c:405 msgid "Shortcut for window 1" -msgstr "Zkratka pro okno 1" +msgstr "µøµ¡ 1 ªº±¶®|" #: ../../WPrefs.app/KeyboardShortcuts.c:406 msgid "Shortcut for window 2" -msgstr "Zkratka pro okno 2" +msgstr "µøµ¡ 2 ªº±¶®|" #: ../../WPrefs.app/KeyboardShortcuts.c:407 msgid "Shortcut for window 3" -msgstr "Zkratka pro okno 3" +msgstr "µøµ¡ 3 ªº±¶®|" #: ../../WPrefs.app/KeyboardShortcuts.c:408 msgid "Shortcut for window 4" -msgstr "Zkratka pro okno 4" +msgstr "µøµ¡ 4 ªº±¶®|" #: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Raise Clip" -msgstr "Sponku vý¹e" +msgstr "¤É°_°j¯¾°w" #: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Lower Clip" -msgstr "Sponku ní¾e" +msgstr "­°¤U°j¯¾°w" #: ../../WPrefs.app/KeyboardShortcuts.c:411 msgid "Raise/Lower Clip" -msgstr "Sponku vý¹e/ní¾e" +msgstr "¤É°_/­°¤U°j¯¾°w" #: ../../WPrefs.app/KeyboardShortcuts.c:413 msgid "Toggle keyboard language" -msgstr "Nastavit jazyk pro klávesnici" +msgstr "¤Á´«Áä½L»y¨¥" -#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1155 +#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1157 msgid "Shortcut" -msgstr "Zkratka" +msgstr "±¶®|" #: ../../WPrefs.app/KeyboardShortcuts.c:438 msgid "Clear" -msgstr "Vyma¾" +msgstr "²M°£" #: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Keyboard Shortcut Preferences" -msgstr "Nastavení klávesových zkratek" +msgstr "Áä½L±¶®|³]©w" #: ../../WPrefs.app/Menu.c:373 msgid "Window Manager" -msgstr "Mana¾er oken" +msgstr "µøµ¡ºÞ²z­û" #: ../../WPrefs.app/Menu.c:375 msgid "Program to open files" -msgstr "Program na otvírání souborù" +msgstr "¶}±ÒÀɮפ§µ{¦¡" -#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1142 +#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1144 msgid "Program to Run" -msgstr "Spustit program" +msgstr "°õ¦æ¤§µ{¦¡" #: ../../WPrefs.app/Menu.c:427 ../../WPrefs.app/Menu.c:428 #, c-format msgid "New Command %i" -msgstr "Nový pøíkaz %i" +msgstr "·s¼W©R¥O %i" #: ../../WPrefs.app/Menu.c:435 msgid "New Submenu" -msgstr "Nové podmenu" +msgstr "·s¼W°Æ¿ï³æ" #: ../../WPrefs.app/Menu.c:440 msgid "External Menu" -msgstr "Externí menu" +msgstr "¥~³¡¿ï³æ" #: ../../WPrefs.app/Menu.c:447 msgid "Workspaces" -msgstr "Pracovní plochy" +msgstr "¤u§@°Ï" -#: ../../WPrefs.app/Menu.c:1026 ../../WPrefs.app/Menu.c:1041 +#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 msgid "Commands" -msgstr "Pøíkazy" +msgstr "©R¥O" -#: ../../WPrefs.app/Menu.c:1027 ../../WPrefs.app/Menu.c:1042 +#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 msgid "Add Command" -msgstr "Pøidat pøíkaz" +msgstr "·s¼W©R¥O" -#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 +#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 msgid "Add Submenu" -msgstr "Pøidat podmenu" +msgstr "¼W¥[°Æ¿ï³æ" -#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 +#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046 msgid "Add External Menu" -msgstr "Pøidat externí menu" +msgstr "¼W¥[¥~³¡¿ï³æ" -#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 +#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047 msgid "Add Workspace Menu" -msgstr "Pøidat menu ploch" +msgstr "¼W¥[¤u§@°Ï" -#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046 +#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 msgid "Remove Item" -msgstr "Odstraò polo¾ku" +msgstr "§R°£¶µ¥Ø" -#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047 +#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 msgid "Cut Item" -msgstr "Vyøízni polo¾ku" +msgstr "°Å¤U¶µ¥Ø" -#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 +#: ../../WPrefs.app/Menu.c:1035 ../../WPrefs.app/Menu.c:1050 msgid "Copy Item" -msgstr "Zkopíruj polo¾ku" +msgstr "½Æ»s¶µ¥Ø" -#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 +#: ../../WPrefs.app/Menu.c:1036 ../../WPrefs.app/Menu.c:1051 msgid "Paste Item" -msgstr "Vlo¾ polo¾ku" +msgstr "¶K¤W¶µ¥Ø" -#: ../../WPrefs.app/Menu.c:1078 +#: ../../WPrefs.app/Menu.c:1080 msgid "Label" -msgstr "Oznaèení" +msgstr "¼ÐÅÒ" -#: ../../WPrefs.app/Menu.c:1091 +#: ../../WPrefs.app/Menu.c:1093 msgid "Command" -msgstr "Pøíkaz" +msgstr "©R¥O" -#: ../../WPrefs.app/Menu.c:1096 +#: ../../WPrefs.app/Menu.c:1098 msgid "Run Program" -msgstr "Spus» program" +msgstr "°õ¦æµ{¦¡" -#: ../../WPrefs.app/Menu.c:1097 +#: ../../WPrefs.app/Menu.c:1099 msgid "Arrange Icons" -msgstr "Srovnej ikony" +msgstr "±Æ¦C¹Ï¥Ü" -#: ../../WPrefs.app/Menu.c:1098 +#: ../../WPrefs.app/Menu.c:1100 msgid "Hide Others" -msgstr "Skryj ostatní" +msgstr "ÁôÂèä¥L" -#: ../../WPrefs.app/Menu.c:1099 +#: ../../WPrefs.app/Menu.c:1101 msgid "Show All Windows" -msgstr "Uka¾ v¹echna okna" +msgstr "Åã¥Ü©Ò¦³µøµ¡" -#: ../../WPrefs.app/Menu.c:1100 +#: ../../WPrefs.app/Menu.c:1102 msgid "Exit WindowMaker" -msgstr "Ukonèit mana¾era oken" +msgstr "Â÷¶} WindowMaker" -#: ../../WPrefs.app/Menu.c:1101 +#: ../../WPrefs.app/Menu.c:1103 msgid "Exit X Session" -msgstr "Ukonèit sezení X" +msgstr "Â÷¶} X µøµ¡¨t²Î" -#: ../../WPrefs.app/Menu.c:1102 +#: ../../WPrefs.app/Menu.c:1104 msgid "Start window manager" -msgstr "Odstartovat mana¾er oken" +msgstr "±Ò°Êµøµ¡ºÞ²z­û" -#: ../../WPrefs.app/Menu.c:1103 +#: ../../WPrefs.app/Menu.c:1105 msgid "Restart WindowMaker" -msgstr "RestartWindowMakeru" +msgstr "­«·s±Ò°Ê WindowMaker" -#: ../../WPrefs.app/Menu.c:1104 +#: ../../WPrefs.app/Menu.c:1106 msgid "Save Session" -msgstr "Ulo¾it stav sezení" +msgstr "Àx¦s¶¥¬qª¬ºA" -#: ../../WPrefs.app/Menu.c:1105 +#: ../../WPrefs.app/Menu.c:1107 msgid "Clear Session" -msgstr "Vymazat sezení" +msgstr "²M°£¶¥¬qª¬ºA" -#: ../../WPrefs.app/Menu.c:1106 +#: ../../WPrefs.app/Menu.c:1108 msgid "Refresh Screen" -msgstr "Obnovit obrazovku" +msgstr "§ó·s¿Ã¹õ" -#: ../../WPrefs.app/Menu.c:1107 +#: ../../WPrefs.app/Menu.c:1109 msgid "Info Panel" -msgstr "Informace" +msgstr "¸ê°T­±ªO" -#: ../../WPrefs.app/Menu.c:1108 +#: ../../WPrefs.app/Menu.c:1110 msgid "Legal Panel" -msgstr "Copyright" +msgstr "ªk«ß­±ªO" -#: ../../WPrefs.app/Menu.c:1116 +#: ../../WPrefs.app/Menu.c:1118 msgid "Open workspace menu" -msgstr "Otevøít menu ploch" +msgstr "¶}±Ò¤u§@°Ï¿ï³æ" -#: ../../WPrefs.app/Menu.c:1123 +#: ../../WPrefs.app/Menu.c:1125 msgid "No confirmation panel" -msgstr "Bez ukonèovacího dialogu" +msgstr "µL½T»{­±ªO" -#: ../../WPrefs.app/Menu.c:1129 +#: ../../WPrefs.app/Menu.c:1131 msgid "Menu Path/Directory List" -msgstr "Cesta k menu/adresáø" +msgstr "¿ï³æ¸ô®|/¥Ø¿ý²M³æ" -#: ../../WPrefs.app/Menu.c:1174 +#: ../../WPrefs.app/Menu.c:1176 msgid "Ask help to the Guru" -msgstr "Zeptat se Mistra" +msgstr "¦V±M®a¨D§U" + +#. if there is a localized plmenu for the tongue put it's filename here +#: ../../WPrefs.app/Menu.c:1287 ../../WPrefs.app/Menu.c:1294 +#, c-format +msgid "%s/Library/WindowMaker/plmenu" +msgstr "%s/Library/WindowMaker/plmenu" + +#: ../../WPrefs.app/Menu.c:1302 ../../WPrefs.app/MouseSettings.c:146 +#: ../../WPrefs.app/MouseSettings.c:169 ../../WPrefs.app/Text.c:181 +#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558 +#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572 +#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590 +#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 +msgid "Error" +msgstr "¿ù»~" + +#: ../../WPrefs.app/Menu.c:1302 +msgid "Could not copy default plmenu file from ~/GNUstep/Library/WindowMaker" +msgstr "¦b ~/GNUstep/Library/WindowMaker ©³¤U§ä¤£¨ì¹w³]ªº plmenu ÀÉ®×" + +#: ../../WPrefs.app/Menu.c:1304 ../../WPrefs.app/Menu.c:1354 +#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 +#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:148 +#: ../../WPrefs.app/MouseSettings.c:171 ../../WPrefs.app/Text.c:181 +#: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:558 +#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:574 +#: ../../WPrefs.app/WPrefs.c:584 ../../WPrefs.app/WPrefs.c:590 +#: ../../WPrefs.app/WPrefs.c:597 ../../WPrefs.app/WPrefs.c:614 +#: ../../WPrefs.app/WPrefs.c:619 +msgid "OK" +msgstr "½T©w" -#: ../../WPrefs.app/Menu.c:1294 +#: ../../WPrefs.app/Menu.c:1339 msgid "" -"The format of the current menu in ~/G/D/WMRootMenu is not supported by " -"WPrefs. A new menu will be created.\n" -"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu to get the default " -"menu." -msgstr "" -"Aktuální formát menu v ~/G/D/WMRootMenu není podporován programem WPrefs. " -"Bude vytvoøeno nové menu.\n" -"Standardní menu získáte pøíkazem \"cp ~/G/L/W/plmenu ~/G/D/WMRootMenu\"." +"The format of the menu in ~/G/D/WMRootMenu is not recognized by WPrefs. It " +"might be in a format different than the one supported by WPrefs or contain a " +"syntax error. Do you want to continue using the current menu to edit it by " +"hand later or replace it with a default menu in the new format?" +msgstr "WPrefs µLªk¿ë»{ ~/G/D/WMRootMenu ªº¿ï³æ®æ¦¡¡A­ì¦³ªº¿ï³æ¥i¯à¬O WPrefs ¤£¤ä´©ªº®æ¦¡¡A¤]¥i¯à¬O¿ï³æ©w¸q¦³»yªk¿ù»~¡F§A§Æ±æÄ~Äò¨Ï¥Î¥Ø«eªº¿ï³æ¨Ã¥B¦b¥H«á³£¥H¤â°Ê½s¿è¡AÁÙ¬OÅý WPrefs ¬°±z´«¤W¤@­Ó·sªº¹w³]¿ï³æ? " -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1304 +#: ../../WPrefs.app/Menu.c:1346 ../../WPrefs.app/Menu.c:1353 #: ../../WPrefs.app/WPrefs.c:597 msgid "Warning" -msgstr "Varování" +msgstr "ª`·N" -#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1305 -#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 -#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:156 -#: ../../WPrefs.app/Text.c:181 ../../WPrefs.app/Themes.c:98 -#: ../../WPrefs.app/WPrefs.c:558 ../../WPrefs.app/WPrefs.c:563 -#: ../../WPrefs.app/WPrefs.c:574 ../../WPrefs.app/WPrefs.c:584 -#: ../../WPrefs.app/WPrefs.c:590 ../../WPrefs.app/WPrefs.c:597 -#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 -msgid "OK" -msgstr "OK" +#: ../../WPrefs.app/Menu.c:1346 +msgid "Keep current menu" +msgstr "Àx¦s¥Ø«e¿ï³æ" + +#: ../../WPrefs.app/Menu.c:1347 +msgid "Install default menu" +msgstr "¦w¸Ë¹w³]¿ï³æ" -#: ../../WPrefs.app/Menu.c:1304 +#: ../../WPrefs.app/Menu.c:1353 msgid "Any changes made in this section will not be saved" -msgstr "Jakékoli zmìny v této sekci budou zru¹eny" +msgstr "¦b³o³¡¥÷ªº¥ô¦ó§ïÅܤ£·|³QÀx¦s" -#: ../../WPrefs.app/Menu.c:1369 +#: ../../WPrefs.app/Menu.c:1419 msgid "Applications Menu Definition" -msgstr "Definice menu aplikací" +msgstr "À³¥Îµ{¦¡¿ï³æ©w¸q" #: ../../WPrefs.app/MenuGuru.c:106 msgid "Menu Guru - Select Type" -msgstr "Menu Mistra - Vyberte typ" +msgstr "¿ï³æ±M®a - ¿ï¨ú«¬ºA" #: ../../WPrefs.app/MenuGuru.c:111 ../../WPrefs.app/MenuGuru.c:133 #: ../../WPrefs.app/MenuGuru.c:251 msgid "Next" -msgstr "Dal¹í" +msgstr "¤U¤@¨B" #: ../../WPrefs.app/MenuGuru.c:114 msgid "Menu Guru - Select Menu File" -msgstr "Mistrova nabídka - Vyberte soubor menu" +msgstr "¿ï³æ±M®a - ¿ï¨ú¿ï³æÀÉ" #: ../../WPrefs.app/MenuGuru.c:122 msgid "Menu Guru - Select Pipe Command" -msgstr "Mistrova nabídka - Vyberte pøíkaz roury" +msgstr "¿ï³æ±M®a - ¿ï¨ú Pipe ©R¥O" #: ../../WPrefs.app/MenuGuru.c:129 msgid "Menu Guru - Select Directories" -msgstr "Mistrova nabídka - Vyberte adresáøe" +msgstr "¿ï³æ±M®a - ¿ï¨ú¥Ø¿ý" #: ../../WPrefs.app/MenuGuru.c:136 msgid "Menu Guru - Select Command" -msgstr "Mistrova nabídka - Vyberte pøíkaz" +msgstr "¿ï³æ±M®a - ¿ï¨ú©R¥O" #: ../../WPrefs.app/MenuGuru.c:257 msgid "Back" -msgstr "Zpìt" +msgstr "¤W¤@¨B" #: ../../WPrefs.app/MenuGuru.c:271 msgid "" @@ -663,27 +691,26 @@ msgid "" "another file or is created dynamically.\n" "What do you want to use as the contents of the submenu?" msgstr "" -"Mistr vám pomù¾e vytvoøit podmenu ze souboru nebo vytvoøené dynamicky.\n" -"Co chcete pou¾ít jako obsah podmenu?" +"³oµ{§Ç·|À°±z«Ø¥ß¦b¥t¤@­ÓÀɮשΰʺA«Ø¥ß©w¸qªº°Æ¥Ø¿ý¡C\n" +"±z­n¥Î¤°»ò·í§@°Æ¥Ø¿ýªº¤º®e¡H" #: ../../WPrefs.app/MenuGuru.c:279 msgid "" "A file containing the menu definition in the plain text (non-property list) " "menu format." -msgstr "Soubor obsahující definici menu jako obyèejný text s daným formátem." +msgstr "§t¦³¯Â¤å¦r¡]µL¯S½è²M³æ¡^¿ï³æ®æ¦¡¿ï³æ©w¸qªºÀɮסC" #: ../../WPrefs.app/MenuGuru.c:285 msgid "The menu definition generated by a script/program read through a pipe." -msgstr "" -"Definice menu generovaná sriptem nebo programem, definice bude ètena z roury." +msgstr "¥Ñ¤â½Z/µ{¦¡¸g¹L pipe Ū¤J²£¥Í¿ï³æ©w¸q" #: ../../WPrefs.app/MenuGuru.c:291 msgid "The files in one or more directories." -msgstr "Soubory v jednom nebo více adresáøích." +msgstr "Àɮצb¤@­Ó©Î¦h­Ó¥Ø¿ý¤¤" #: ../../WPrefs.app/MenuGuru.c:303 msgid "Type the path for the menu file:" -msgstr "Zadejte cestu k souboru s menu:" +msgstr "¿é¤J¿ï³æÀɸô®|¡G" #: ../../WPrefs.app/MenuGuru.c:318 msgid "" @@ -691,13 +718,12 @@ msgid "" "format is described in the menu files included with WindowMaker, probably at " "~/GNUstep/Library/WindowMaker/menu" msgstr "" -"Soubor s menu musí obsahovat popis menu jako obyèejný text. Tento formát je " -"zøejmý ze souboru s menu, který je distribuován s Window Makerem, " -"pravdìpodobnì v souboru ~/GNUstep/Library/WindowMaker/menu" +"¿ï³æÀÉ¥²¶·§t¦³¯Â¤å¦r¿ï³æÀɮ榡ªº¿ï³æ¡C³o®æ¦¡¦b WindowMaker " +"¥]§tªº¿ï³æÀɤ¤¦³´y­z¡A¥i¯à¦b~/GNUstep/Library/WindowMaker/menu" #: ../../WPrefs.app/MenuGuru.c:328 msgid "Type the command that will generate the menu definition:" -msgstr "Zadejte pøíkaz, který vygeneruje definici menu:" +msgstr "¿é¤J·|²£¥Í¿ï³æ©w¸qªº©R¥O¡G" #: ../../WPrefs.app/MenuGuru.c:338 msgid "" @@ -706,18 +732,16 @@ msgid "" "described in the menu files included with WindowMaker, usually at " "~/GNUstep/Library/WindowMaker/menu" msgstr "" -"Pøíkaz musí generovat a standardní výstup zapsat správnou definici menu. " -"Tato definice musí být ve formì neformátovaného textu, jak je ukázáno v " -"distribuèním souboru s menu, obvykle v ~/GNUstep/Library/WindowMaker/menu" +"´£¨Ñªº©R¥O¥²¶·²£¥Í¥B¿é¥X¦³®Äªº¿ï³æ©w¸q¦Ü¼Ð·Ç¿é¥X¡C³o©w¸qÀ³¸Ó¬O¯Â¤å¦r¿ï³æÀÉ®æ" +"¡¡A¦b WindowMaker ¥]§tªº¿ï³æÀɤ¤¦³´y­z¡A³q±`¦b " +"~/GNUstep/Library/WindowMaker/menu" #: ../../WPrefs.app/MenuGuru.c:350 ../../WPrefs.app/MenuGuru.c:372 #: ../../WPrefs.app/MenuGuru.c:394 msgid "" "Type the path for the directory. You can type more than one path by " "separating them with spaces." -msgstr "" -"Zadejte cestu pro adresáø. Pokud chcete zadat více adresáøù, oddìlte je " -"mezerami." +msgstr "¿é¤J¥Ø¿ýªº¸ô®|¡C±z¥i¥H§Q¥ÎªÅ¥Õ¤À¹j¿é¤J¶W¹L¤@­Ó¸ô®|¡C" #: ../../WPrefs.app/MenuGuru.c:361 ../../WPrefs.app/MenuGuru.c:383 #: ../../WPrefs.app/MenuGuru.c:405 @@ -726,16 +750,14 @@ msgid "" "directories can contain program executables or data files (such as jpeg " "images)." msgstr "" -"Generované menu bude mít polo¾ku pro ka¾dý soubor v adresáøi. Adresáøe mohou " -"obsahovat programy nebo datové soubory, napøíklad obrázky formátu jpeg." +"²£¥Íªº¿ï³æ·|¦³¤@­Ó¶µ¥Øµ¹¥Ø¿ý¤¤ªº¨C¤@­ÓÀɮסC¥Ø¿ý¥i¥H§t¦³¥i°õ¦æªºµ{¦¡©Î¸ê®ÆÀÉ" +"]¨Ò¦p jpeg ¼v¹³¡^¡C" #: ../../WPrefs.app/MenuGuru.c:415 msgid "" "If the directory contain data files, type the command used to open these " "files. Otherwise, leave it in blank." -msgstr "" -"Pokud adresáø obsahuje datové soubory, zadejte pøíkaz pro jejich otevøení. " -"Jinak ponechte prázdné." +msgstr "¦pªG¥Ø¿ý§t¦³¸ê®ÆÀÉ¡A¿é¤J¥Î¨Ó¶}±Ò³o¨ÇÀɮתº©R¥O¡C§_«h¡A¯dªÅ¥Õ¡C" #: ../../WPrefs.app/MenuGuru.c:426 msgid "" @@ -744,249 +766,241 @@ msgid "" "the command is \"xv -root\", each file in the directory will have a menu " "item like \"xv -root imagefile\"." msgstr "" -"Ka¾dý soubor v adresáøi bude mít polo¾ku v menu a bude otevøen pomocí daného " -"pøíkazu. Napøíklad, pokud adresáø obsahuje soubory s obrázky a pøíkaz je " -"\"xv -root\", ka¾dý soubor bude mít polo¾ku \"xv -root soubor_s_obrázkem." +"¥Ø¿ý¤¤ªº¨C¤@­ÓÀÉ®×·|¦³¤@­Ó¶µ¥Ø¥B·|¥H´£¨Ñªº©R¥O¶}±Ò¡CÁ|¨Ò¨Ó»¡¡A¦pªG¥Ø¿ý§t¦³¼v" +"³ÀÉ¥B©R¥O¬O \"xv -root\"¡A¥Ø¿ý¤¤ªº¨C¤@­ÓÀÉ®×·|¦³¤@­Ó¹³ \"xv -root " +"imagefile\" ªº¶µ¥Ø¡C" #: ../../WPrefs.app/MenuPreferences.c:112 msgid "Menu Scrolling Speed" -msgstr "Rychlost posunu menu" +msgstr "¿ï³æ±²°Ê³t«×" #: ../../WPrefs.app/MenuPreferences.c:161 msgid "Submenu Alignment" -msgstr "Zarovnání submenu" +msgstr "°Æ¿ï³æ¹ï»ô" #: ../../WPrefs.app/MenuPreferences.c:204 msgid "" "Always open submenus inside the screen, instead of scrolling.\n" "Note: this can be an annoyance at some circumstances." msgstr "" -"Menu otevøít v¾dy na plo¹e obrazovky (neposouvat).\n" -"Poznámka: nìkdy mù¾e zpùsobit problémy." +"¨C¦¸³£¦b¿Ã¹õ¤º¶}±Ò°Æ¿ï³æ¡A¦Ó¤£¬O±²°Ê¡C\n" +"µù¡G¦b¤@¨Ç±¡ªp¤U·|¥O¤H¥Í¹½¡C" #: ../../WPrefs.app/MenuPreferences.c:209 msgid "Scroll off-screen menus when pointer is moved over them." -msgstr "Posouvat menu pøi pohybu ukazatele nad tímto menu." +msgstr "·í«ü¼Ð²¾¹L¥h®É±²°Ê¶W¹L¿Ã¹õªº¿ï³æ¡C" #: ../../WPrefs.app/MenuPreferences.c:229 msgid "Menu Preferences" -msgstr "Nastavení menu" +msgstr "¿ï³æ³]©w" -#: ../../WPrefs.app/MouseSettings.c:148 -#, c-format -msgid "Accel.: %.2f" -msgstr "Zrychl.: %.2f" +#: ../../WPrefs.app/MouseSettings.c:147 +msgid "Invalid mouse acceleration value. Must be a positive real value." +msgstr "·Æ¹«¥[³t­­«×­ÈµL®Ä¡C¥²¶·¬O¤@¥¿¹ê¼Æ­È¡C" -#: ../../WPrefs.app/MouseSettings.c:154 ../../WPrefs.app/Text.c:181 -#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558 -#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572 -#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590 -#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619 -msgid "Error" -msgstr "Chyba" - -#: ../../WPrefs.app/MouseSettings.c:155 +#: ../../WPrefs.app/MouseSettings.c:170 msgid "" "Invalid mouse acceleration threshold value. Must be the number of pixels to " "travel before accelerating." -msgstr "" -"Chybná hodnota pro práh zrychlení my¹i. Zadejte èíslo oznaèující poèet " -"pixelù pøed akcelarecí." +msgstr "·Æ¹«¥[³t­­«×­ÈµL®Ä¡C¥²¶·¬O¥[³t«e²¾°Êªº¹³¯À¼Æ¥Ø¡C" -#: ../../WPrefs.app/MouseSettings.c:209 +#: ../../WPrefs.app/MouseSettings.c:225 #, c-format msgid "mouse button %s not supported by WPrefs." -msgstr "tlaèítko my¹i %s není podporováno." +msgstr "·Æ¹««ö¶s %s ¥¼³Q WPrefs ¤ä´©" -#: ../../WPrefs.app/MouseSettings.c:243 ../../WPrefs.app/MouseSettings.c:254 -#: ../../WPrefs.app/MouseSettings.c:265 +#: ../../WPrefs.app/MouseSettings.c:259 ../../WPrefs.app/MouseSettings.c:270 +#: ../../WPrefs.app/MouseSettings.c:281 #, c-format msgid "bad value %s for option %s" -msgstr "chybná hodnota %s pro volbu %s" +msgstr "¿ï¶µ %s ªº­È %s ¿ù»~" -#: ../../WPrefs.app/MouseSettings.c:325 +#: ../../WPrefs.app/MouseSettings.c:341 #, c-format msgid "" "modifier key %s for option ModifierKey was not recognized. Using %s as " "default" -msgstr "" -"modifikátor klávesy %s pro volbu \"ModifierKey\" není znám. Pou¾ívám %s." +msgstr "ModifierKey ¿ï¶µªº­×¥¿Áä %s µLªk¿ë»{¡C¨Ï¥Î %s ¬°¹w³]­È" -#: ../../WPrefs.app/MouseSettings.c:350 +#: ../../WPrefs.app/MouseSettings.c:366 msgid "could not retrieve keyboard modifier mapping" -msgstr "nelze pøevzít mapování modifikátorù kláves" +msgstr "µLªk¨ú¦^Áä½L­×¥¿¹ïÀ³" -#: ../../WPrefs.app/MouseSettings.c:497 +#: ../../WPrefs.app/MouseSettings.c:513 msgid "Mouse Speed" -msgstr "Rychlost my¹i" +msgstr "·Æ¹«³t«×" + +#: ../../WPrefs.app/MouseSettings.c:575 +msgid "Acceler.:" +msgstr "¥[³t­È:" -#: ../../WPrefs.app/MouseSettings.c:564 +#: ../../WPrefs.app/MouseSettings.c:587 msgid "Threshold:" -msgstr "Mez:" +msgstr "­­«×¡G" -#: ../../WPrefs.app/MouseSettings.c:579 +#: ../../WPrefs.app/MouseSettings.c:602 msgid "Double-Click Delay" -msgstr "Prodleva pro dvojité »uknutí" +msgstr "³s«ö¨â¤U©µ¿ð" -#: ../../WPrefs.app/MouseSettings.c:623 +#: ../../WPrefs.app/MouseSettings.c:646 msgid "Test" -msgstr "Test" +msgstr "´ú¸Õ" -#: ../../WPrefs.app/MouseSettings.c:633 +#: ../../WPrefs.app/MouseSettings.c:656 msgid "Workspace Mouse Actions" -msgstr "Akce my¹í" +msgstr "¤u§@°Ï·Æ¹«°Ê§@" -#: ../../WPrefs.app/MouseSettings.c:638 +#: ../../WPrefs.app/MouseSettings.c:661 msgid "Disable mouse actions" -msgstr "Zaka¾ akce my¹í" +msgstr "¨Ï·Æ¹«°Ê§@¥¢®Ä" -#: ../../WPrefs.app/MouseSettings.c:691 +#: ../../WPrefs.app/MouseSettings.c:714 msgid "Applications menu" -msgstr "Menu aplikací" +msgstr "À³¥Îµ{µø¿ï³æ" -#: ../../WPrefs.app/MouseSettings.c:697 +#: ../../WPrefs.app/MouseSettings.c:720 msgid "Window list menu" -msgstr "Seznam oken" +msgstr "µøµ¡²M³æ¿ï³æ" -#: ../../WPrefs.app/MouseSettings.c:703 +#: ../../WPrefs.app/MouseSettings.c:726 msgid "Select windows" -msgstr "Vyber okna" +msgstr "¿ï¨úµøµ¡" -#: ../../WPrefs.app/MouseSettings.c:738 +#: ../../WPrefs.app/MouseSettings.c:761 msgid "Mouse Grab Modifier" -msgstr "Modifikátor pro my¹" +msgstr "·Æ¹«§ì¨ú­×¹¢" -#: ../../WPrefs.app/MouseSettings.c:772 +#: ../../WPrefs.app/MouseSettings.c:795 #, c-format msgid "could not create %s" -msgstr "nelze vytvoøit \"%s\"" +msgstr "µLªk«Ø¥ß %s" -#: ../../WPrefs.app/MouseSettings.c:788 +#: ../../WPrefs.app/MouseSettings.c:811 #, c-format msgid "could not create temporary file %s" -msgstr "nelze vytvoøit doèasný soubor %s" +msgstr "µLªk«Ø¥ß¼È¦sÀÉ %s" -#: ../../WPrefs.app/MouseSettings.c:813 +#: ../../WPrefs.app/MouseSettings.c:836 #, c-format msgid "could not rename file %s to %s\n" -msgstr "soubor %s nelze pøejmenovat na %s\n" +msgstr "µLªkÅܧóÀɦW %s ¦Ü %s\n" -#: ../../WPrefs.app/MouseSettings.c:896 +#: ../../WPrefs.app/MouseSettings.c:919 msgid "Mouse Preferences" -msgstr "Nastavení my¹i" +msgstr "·Æ¹«³]©w" #: ../../WPrefs.app/Paths.c:82 msgid "bad value in option IconPath. Using default path list" -msgstr "ve volbì IconPath je nesprávná hodnota. Pou¾ívám standardní nastavení" +msgstr "IconPath ¿ï¶µªº­È¿ù»~¡C¨Ï¥Î¹w³]¸ô®|²M³æ" #: ../../WPrefs.app/Paths.c:99 msgid "bad value in option PixmapPath. Using default path list" -msgstr "ve volbì PixmapPath je chybná hodnota. Pou¾ívám standard." +msgstr "PixmapPath ¿ï¶µªº­È¿ù»~¡C¨Ï¥Î¹w³]¸ô®|²M³æ" #: ../../WPrefs.app/Paths.c:302 msgid "Icon Search Paths" -msgstr "Adresáøe ikon" +msgstr "¹Ï¥Ü·j´M¸ô®|" #: ../../WPrefs.app/Paths.c:314 ../../WPrefs.app/Paths.c:350 msgid "Add" -msgstr "Pøidat" +msgstr "·s¼W" #: ../../WPrefs.app/Paths.c:321 ../../WPrefs.app/Paths.c:357 msgid "Remove" -msgstr "Odstranit" +msgstr "§R°£" #: ../../WPrefs.app/Paths.c:338 msgid "Pixmap Search Paths" -msgstr "Adresáøe pro obrázky" +msgstr "Pixmap ·j´M¸ô®|" #: ../../WPrefs.app/Paths.c:386 msgid "Search Path Configuration" -msgstr "Konfigurace prohledávaných cest" +msgstr "·j´M¸ô®|³]©w" #: ../../WPrefs.app/Preferences.c:151 msgid "Size Display" -msgstr "Zobrazení velikosti" +msgstr "µøµ¡¤j¤pÅã¥Ü" #: ../../WPrefs.app/Preferences.c:156 ../../WPrefs.app/Preferences.c:172 msgid "Corner of screen" -msgstr "Roh obrazovky" +msgstr "¿Ã¹õ¨¤¸¨" #: ../../WPrefs.app/Preferences.c:157 ../../WPrefs.app/Preferences.c:173 msgid "Center of screen" -msgstr "Støed obrazovky" +msgstr "¿Ã¹õ¤¤¥¡" #: ../../WPrefs.app/Preferences.c:158 ../../WPrefs.app/Preferences.c:174 msgid "Center of resized window" -msgstr "Støed okna" +msgstr "µøµ¡¤¤¥¡" #: ../../WPrefs.app/Preferences.c:159 msgid "Technical drawing-like" -msgstr "Jako kóty výkresù" +msgstr "¬ì¾Çø¹Ï¤è¦¡" #: ../../WPrefs.app/Preferences.c:167 msgid "Position Display" -msgstr "Zobrazení pozice" +msgstr "¦ì¸mÅã¥Ü" #: ../../WPrefs.app/Preferences.c:182 msgid "Show balloon text for..." -msgstr "Balónová nápovìda pro..." +msgstr "Åã¥Ü®ð²y¤å¦r..." #: ../../WPrefs.app/Preferences.c:189 msgid "incomplete window titles" -msgstr "nekompletní titulky oken" +msgstr "¤£§¹¾ãµøµ¡¼ÐÃD" #: ../../WPrefs.app/Preferences.c:190 msgid "miniwindow titles" -msgstr "ikony" +msgstr "¤pµøµ¡¼ÐÃD" #: ../../WPrefs.app/Preferences.c:191 msgid "application/dock icons" -msgstr "aplikaèní/ukotvené ikony" +msgstr "À³¥Îµ{¦¡/°±¾a°Ï¹Ï¥Ü" #: ../../WPrefs.app/Preferences.c:204 msgid "Raise window when switching focus with keyboard (CirculateRaise)." -msgstr "Pøi zmìnì zamìøení pøes klávesnici zdvihnout okno." +msgstr "·í¨Ï¥ÎÁä½L¤Á´«µJÂI®É¤É°_µøµ¡" #: ../../WPrefs.app/Preferences.c:210 msgid "Keep keyboard language status for each window." -msgstr "Pro ka¾dé okno pamatovat nastavení jazyka." +msgstr "¬°¨C­Óµøµ¡«O«ùÁä½L»y¨¥ª¬ºA" #: ../../WPrefs.app/Preferences.c:231 msgid "Miscellaneous Ergonomic Preferences" -msgstr "Rùzná nastavení ergonomie" +msgstr "¨ä¥L¾Þ§@©Ê³]©w" #: ../../WPrefs.app/Text.c:179 #, c-format msgid "Invalid font %s." -msgstr "Chybný font %s." +msgstr "µL®Äªº¦r«¬ %s¡C" #: ../../WPrefs.app/Text.c:256 msgid "Set Font..." -msgstr "Nastavit font..." +msgstr "³]©w¦r«¬..." #: ../../WPrefs.app/Text.c:262 msgid "Window Title Font" -msgstr "Font titulku oken" +msgstr "µøµ¡¼ÐÃD¦r«¬" #: ../../WPrefs.app/Text.c:263 msgid "Menu Title Font" -msgstr "Font titulku menu" +msgstr "¿ï³æ¼ÐÃD¦r«¬" #: ../../WPrefs.app/Text.c:264 msgid "Menu Item Font" -msgstr "Font polo¾ky menu" +msgstr "¿ï³æ¶µ¥Ø¦r«¬" #: ../../WPrefs.app/Text.c:265 msgid "Icon Title Font" -msgstr "Font titulkù ikon" +msgstr "¹Ï¥Ü¼ÐÃD¦r«¬" #: ../../WPrefs.app/Text.c:266 msgid "Clip Title Font" -msgstr "Font pro Sponku" +msgstr "°j¯¾°w¼ÐÃD¦r«¬" #: ../../WPrefs.app/Text.c:267 msgid "Geometry Display Font" -msgstr "Font zobrazení geometrie" +msgstr "¦ì¸mªí¥Ü¦r«¬" #: ../../WPrefs.app/Text.c:280 msgid "" @@ -995,66 +1009,66 @@ msgid "" "ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" "0123456789" msgstr "" -"Pøíklad textu\n" -"abcdefghijklmnopqrstuvxywz\n" -"ABCDEFGHIJKLMNOPQRSTUVXYWZ\n" -"0123456789" +"½d¨Ò¤å¦r\n" +"abcdefghijklmn...£t£u£v£w£x\n" +"ABCDEFGHIJKLMN...µøµ¡ºÞ²z­û\n" +"123...¤@¤G¤T" #: ../../WPrefs.app/Text.c:285 msgid "Alignment" -msgstr "Zarovnání" +msgstr "¹ï»ô" #: ../../WPrefs.app/Text.c:290 msgid "Left" -msgstr "Vlevo" +msgstr "¾a¥ª" #: ../../WPrefs.app/Text.c:296 msgid "Center" -msgstr "Centrovat" +msgstr "¸m¤¤" #: ../../WPrefs.app/Text.c:303 msgid "Right" -msgstr "Vpravo" +msgstr "¾a¥k" #: ../../WPrefs.app/Text.c:325 msgid "Text Preferences" -msgstr "Nastavení textù" +msgstr "¤å¦r³]©w" #: ../../WPrefs.app/TextureAndColor.c:384 msgid "Window Title Bar" -msgstr "Titulek okna" +msgstr "µøµ¡¼ÐÃD¦C" #: ../../WPrefs.app/TextureAndColor.c:385 msgid "Menu Title Bar" -msgstr "Menu titulku" +msgstr "¿ï³æ¼ÐÃD¦C" #: ../../WPrefs.app/TextureAndColor.c:386 msgid "Menu Items" -msgstr "Polo¾ky men" +msgstr "¿ï³æ¶µ¥Ø" #: ../../WPrefs.app/TextureAndColor.c:387 msgid "Workspace/Clip" -msgstr "Plocha/Sponka" +msgstr "¤u§@°Ï/°j¯¾¯u" #: ../../WPrefs.app/TextureAndColor.c:388 msgid "Icons" -msgstr "Ikony" +msgstr "¹Ï¥Ü" #: ../../WPrefs.app/TextureAndColor.c:399 msgid "Focused Window" -msgstr "Zamìøené okno" +msgstr "µJÂIµøµ¡" #: ../../WPrefs.app/TextureAndColor.c:412 #: ../../WPrefs.app/TextureAndColor.c:443 #: ../../WPrefs.app/TextureAndColor.c:474 msgid "Texture" -msgstr "Textura" +msgstr "§÷½è" #: ../../WPrefs.app/TextureAndColor.c:418 #: ../../WPrefs.app/TextureAndColor.c:449 #: ../../WPrefs.app/TextureAndColor.c:480 msgid "Text Color" -msgstr "Barva textu" +msgstr "¤å¦r¦â±m" #: ../../WPrefs.app/TextureAndColor.c:423 #: ../../WPrefs.app/TextureAndColor.c:454 @@ -1063,146 +1077,146 @@ msgstr "Barva textu" #: ../../WPrefs.app/TextureAndColor.c:575 #: ../../WPrefs.app/TextureAndColor.c:652 msgid "Set..." -msgstr "Nastavit..." +msgstr "³]©w..." #: ../../WPrefs.app/TextureAndColor.c:430 msgid "Unfocused Window" -msgstr "Nezamìøená okna" +msgstr "«DµJÂIµøµ¡" #: ../../WPrefs.app/TextureAndColor.c:461 msgid "Owner of Focused Window" -msgstr "Vlastník zamìøeného okna" +msgstr "µJÂIµøµ¡¾Ö¦³ªÌ" #: ../../WPrefs.app/TextureAndColor.c:494 msgid "Unselected Items" -msgstr "Nevybrané polo¾ky" +msgstr "¥¼¿ï¨ú¶µ¥Ø" #: ../../WPrefs.app/TextureAndColor.c:504 #: ../../WPrefs.app/TextureAndColor.c:558 msgid "Background" -msgstr "Pozadí" +msgstr "­I´º" #: ../../WPrefs.app/TextureAndColor.c:519 msgid "Normal Text" -msgstr "Normální text" +msgstr "¥¿±`¤å¦r" #: ../../WPrefs.app/TextureAndColor.c:529 msgid "Disabled Text" -msgstr "Zakazaný text" +msgstr "¥¢®Ä¤å¦r" #: ../../WPrefs.app/TextureAndColor.c:538 msgid "Selected Items" -msgstr "Vybrané polo¾ky" +msgstr "¿ï¨ú¶µ¥Ø" #: ../../WPrefs.app/TextureAndColor.c:548 msgid "Text" -msgstr "Text" +msgstr "¤å¦r" #: ../../WPrefs.app/TextureAndColor.c:566 msgid "Menu Title Background" -msgstr "Pozadí pro titulek menu" +msgstr "¿ï³æ¼ÐÃD­I´º" #: ../../WPrefs.app/TextureAndColor.c:584 msgid "Menu Title Text" -msgstr "Barva textu v menu" +msgstr "¿ï³æ¼ÐÃD¤å¦r" #: ../../WPrefs.app/TextureAndColor.c:596 msgid "Workspace Background" -msgstr "Pozadí plochy" +msgstr "¤u§@°Ï­I´º" #: ../../WPrefs.app/TextureAndColor.c:605 msgid "Change" -msgstr "Zmìnit" +msgstr "§ïÅÜ" #: ../../WPrefs.app/TextureAndColor.c:611 msgid "Clip Title Text" -msgstr "Barva pro text Sponky" +msgstr "°j¤å°w¼ÐÃD¤å¦r" #: ../../WPrefs.app/TextureAndColor.c:621 msgid "Normal" -msgstr "Normální" +msgstr "¥¿±`" #: ../../WPrefs.app/TextureAndColor.c:631 msgid "Collapsed" -msgstr "Svinuto" +msgstr "§éÅ|" #: ../../WPrefs.app/TextureAndColor.c:643 msgid "Icon Background" -msgstr "Pozadí ikon" +msgstr "¹Ï¥Ü­I´º" #: ../../WPrefs.app/TextureAndColor.c:677 msgid "Texture and Color Preferences" -msgstr "Nastavení textur a barev" +msgstr "§÷½è»P¦â±m³]©w" #: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 msgid "Set" -msgstr "Nastavit" +msgstr "³]©w" #: ../../WPrefs.app/Themes.c:132 msgid "Stop" -msgstr "Stop" +msgstr "°±¤î" #: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:205 #: ../../WPrefs.app/Themes.c:225 msgid "Download" -msgstr "Stáhnout" +msgstr "¤U¸ü" #: ../../WPrefs.app/Themes.c:173 msgid "Save Current Theme" -msgstr "Ulo¾it aktuální téma" +msgstr "Àx¦s¥Ø«e¥DÃD" #: ../../WPrefs.app/Themes.c:182 msgid "Load" -msgstr "Naèíst" +msgstr "¸ü¤J" #: ../../WPrefs.app/Themes.c:187 msgid "Install" -msgstr "Instalovat" +msgstr "¦w¸Ë" #: ../../WPrefs.app/Themes.c:195 msgid "Tile of The Day" -msgstr "Obrázek dne" +msgstr "¥»¤é¼ÐÃD" #: ../../WPrefs.app/Themes.c:215 msgid "Bar of The Day" -msgstr "Titulek dne" +msgstr "¥»¤é¼ÐÃD¦C" #: ../../WPrefs.app/Themes.c:252 msgid "Themes" -msgstr "Témata" +msgstr "¥DÃD" #: ../../WPrefs.app/WPrefs.c:201 msgid "Window Maker Preferences" -msgstr "Nastavení Window Makeru" +msgstr "Window Maker ³]©w" #: ../../WPrefs.app/WPrefs.c:225 msgid "Revert Page" -msgstr "Stránku zpìt" +msgstr "ÁÙ­ì" #: ../../WPrefs.app/WPrefs.c:231 msgid "Revert All" -msgstr "V¹e zpìt" +msgstr "¥þ³¡ÁÙ­ì" #: ../../WPrefs.app/WPrefs.c:237 msgid "Save" -msgstr "Ulo¾" +msgstr "Àx¦s" #: ../../WPrefs.app/WPrefs.c:243 msgid "Close" -msgstr "Uzavøi" +msgstr "Ãö³¬" #: ../../WPrefs.app/WPrefs.c:260 msgid "Window Maker Preferences Utility" -msgstr "Konfiguraèní program Window Makeru" +msgstr "Window Maker ³]©w¤½¥Îµ{¦¡" #: ../../WPrefs.app/WPrefs.c:267 #, c-format msgid "Version %s for Window Maker %s" -msgstr "Verze %s pro Window Maker %s" +msgstr "Window Maker %s ¥Îª©¥» %s" #: ../../WPrefs.app/WPrefs.c:274 msgid "Starting..." -msgstr "Startuji..." +msgstr "±Ò°Ê¤¤..." #: ../../WPrefs.app/WPrefs.c:280 msgid "" @@ -1210,66 +1224,66 @@ msgid "" "Artwork: Marco van Hylckama Vlieg\n" "More Programming: James Thompson" msgstr "" -"Programoval/Návrh: Alfredo K. Kojima\n" -"Pøedloha: Marco van Hylckama Vlieg\n" -"Spolupracoval: James Thompson" +"µ{¦¡/³]­p¡GAlfredo K. Kojima\n" +"¬ü³N¡GMarco van Hylckama Vlieg\n" +"µ{¦¡¡GJames Thompson" #: ../../WPrefs.app/WPrefs.c:368 #, c-format msgid "could not locate image file %s\n" -msgstr "nelze najít soubor %s s obrázkem\n" +msgstr "µLªk§ä¥X¼v¹³ÀÉ %s\n" #: ../../WPrefs.app/WPrefs.c:474 #, c-format msgid "could not load image file %s:%s" -msgstr "nelze naèíst soubor sobrázkem %s:%s" +msgstr "µLªk¸ü¤J¼v¹³ÀÉ %s:%s" #: ../../WPrefs.app/WPrefs.c:493 msgid "Loading Window Maker configuration files..." -msgstr "Ètu konfiguraèní soubory Window Makeru" +msgstr "¸ü¤J Window Maker ³]©wÀÉ..." #: ../../WPrefs.app/WPrefs.c:497 msgid "Initializing configuration panels..." -msgstr "Inicializace konfiguraèních panelù..." +msgstr "±Ò©l³]©w­±ªO..." #: ../../WPrefs.app/WPrefs.c:525 msgid "" "WPrefs is free software and is distributed WITHOUT ANY WARRANTY under the " "terms of the GNU General Public License. Redistribution of the icons in this " "program separately from the program is prohibited." -msgstr "Program WPrefs je volnì ¹iøitelný software, který je distribuován BEZ JAKÉKOLI ZÁRUKY pod Obecnou Veøejnou Licencí GNU. Redistribuce ikon z tohoto programu bez programu samotného je zakázána." +msgstr "" +"WPrefs ¬O¦Û¥Ñ³nÅé¥B¦b GNU General Public License " +"±ø´Ú¤UµL¥ô¦ó«Oµý¦aµo°e¡C¸T¤î³æ¿W­«·sµo°e³oµ{¦¡¤¤ªº¹Ï¥Ü" #: ../../WPrefs.app/WPrefs.c:557 ../../WPrefs.app/WPrefs.c:613 #, c-format msgid "Window Maker domain (%s) is corrupted!" -msgstr "Doména Window Makeru (%s) je po¹kozena!" +msgstr "Window Maker ©w¸q°ì (%s) ¤w·lÃa¡I" #: ../../WPrefs.app/WPrefs.c:561 #, c-format msgid "Could not load Window Maker domain (%s) from defaults database." -msgstr "z databáze standardù nelze naèíst doménu Window Makeru (%s)." +msgstr "µLªk±q¹w³]¸ê®Æ®w¸ü¤J Window Maker ©w¸q°ì (%s)" #: ../../WPrefs.app/WPrefs.c:569 msgid "could not extract version information from Window Maker" -msgstr "od Window Makeru nelze získat èíslo verze" +msgstr "µLªk±oª¾ Window Maker ªºª©¥»¸ê°T" #: ../../WPrefs.app/WPrefs.c:570 msgid "Make sure wmaker is in your search path." -msgstr "Zajistìte, aby byl Window Maker v prohledávané cestì." +msgstr "½T©w wmaker ¦b±zªº·j´M¸ô®|¤¤¡C" #: ../../WPrefs.app/WPrefs.c:573 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed and is in your PATH environment variable." -msgstr "Od Window Makeru nelze získat èíslo verze. Zjistìte, je-li správnì instalován a je v prohledávaných adresáøích." +msgstr "µLªk±oª¾ Window Maker ªºª©¥»¡C½T©w¥¦¦w¸Ë¥¿½T¥B¦b±zªº PATH Àô¹ÒÅܼƤ¤¡C" #: ../../WPrefs.app/WPrefs.c:583 msgid "" "Could not extract version from Window Maker. Make sure it is correctly " "installed." -msgstr "" -"Od Window Makeru nelze získat èíslo verze. Zjistìte, je-li správne " -"instalován." +msgstr "µLªk±oª¾ Window Maker ªºª©¥»¡C½T©w¥¦¦w¸Ë¥¿½T¡C" #: ../../WPrefs.app/WPrefs.c:588 #, c-format @@ -1277,26 +1291,24 @@ msgid "" "WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" -"Program WPrefs podporuje Window Maker 0.18.0 a vy¹¹í.\n" -"Instalovaná verze je %i.%i.%i\n" +"WPrefs ¥u¤ä´© Window Maker 0.18.0 ©Î§ó·sª©¥»¡C\n" +"¦w¸Ëªºª©¥»¬O %i.%i.%i\n" #: ../../WPrefs.app/WPrefs.c:595 #, c-format msgid "" "Window Maker %i.%i.%i, which is installed in your system, is not fully " "supported by this version of WPrefs." -msgstr "" -"Instalovaný Window Maker %i.%i.%i není plnì touto verzí programu WPrefs " -"podporován." +msgstr "¦b±zªº¨t²Î¤¤¦w¸Ëªº Window Maker %i.%i.%i ¤£§¹¥þ¤ä´©³oª©¥»ªº WPrefs¡C" #: ../../WPrefs.app/WPrefs.c:602 -msgid "could not run \"wmaker -global_defaults_path\"." -msgstr "nelze provést \"wmaker -global_defaults_path\"" +msgid "could not run \"wmaker --global_defaults_path\"." +msgstr "µLªk°õ¦æ \"wmaker -global_defaults_path\"¡C" #: ../../WPrefs.app/WPrefs.c:617 #, c-format msgid "Could not load global Window Maker domain (%s)." -msgstr "Nelze naèíst globální doménu pro Window Maker (%s)." +msgstr "µLªk¸ü¤J¾ãÅé Window Maker ©w¸q°ì (%s)¡C" #: ../../WPrefs.app/WPrefs.c:863 #, c-format @@ -1304,127 +1316,140 @@ msgid "" "bad speed value for option %s\n" ". Using default Medium" msgstr "" -"pro volbu %s je chybnì urèená\n" -"ryclost. Pou¾ita 'Medium'" +"%s ¿ï¶µ³t«×­È¿ù»~¡C\n" +"¨Ï¥Î¹w³]­È" #: ../../WPrefs.app/WindowHandling.c:108 #, c-format msgid "bad option value %s in WindowPlacement. Using default value" -msgstr "chybná hodnota volby %s ve WindowPlacement. Pou¾ívám standardní" +msgstr "WindowPlacement ¿ï¶µ %s ¸ê®Æ¿ù»~¡C¨Ï¥Î¹w³]­È" #: ../../WPrefs.app/WindowHandling.c:130 msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" -msgstr "chybná data pro WindowPlaceOrigin. Pou¾ívám (0,0)" +msgstr "WindowPlaceOrigin ¿ï¶µ¤¤¸ê®ÆµL®Ä¡C¨Ï¥Î¹w³]¤§ (0,0)" #: ../../WPrefs.app/WindowHandling.c:192 msgid "Window Placement" -msgstr "Pokládání oken" +msgstr "µøµ¡©ñ¸m" #: ../../WPrefs.app/WindowHandling.c:197 msgid "Automatic" -msgstr "Automatické" +msgstr "¦Û°Ê" #: ../../WPrefs.app/WindowHandling.c:198 msgid "Random" -msgstr "Náhodné" +msgstr "ÀH·N" #: ../../WPrefs.app/WindowHandling.c:199 msgid "Manual" -msgstr "Ruèní" +msgstr "¤â°Ê" #: ../../WPrefs.app/WindowHandling.c:200 msgid "Cascade" -msgstr "Kaskádnì" +msgstr "­«Å|" #: ../../WPrefs.app/WindowHandling.c:206 msgid "Placement Origin" -msgstr "Poèáteèní poloha" +msgstr "©ñ¸m°ò·ÇÂI" #: ../../WPrefs.app/WindowHandling.c:260 msgid "Opaque Move" -msgstr "Pøesouvat plná okna" +msgstr "¤£³z©ú²¾°Ê" #: ../../WPrefs.app/WindowHandling.c:296 msgid "When maximizing..." -msgstr "Pøi maximalizaci..." +msgstr "·í³Ì¤j¤Æ®É..." #: ../../WPrefs.app/WindowHandling.c:301 msgid "...do not resize over icons" -msgstr "... nezvìt¹ovat pøes ikony" +msgstr "...¤£­n¶W¹L¹Ï¥Ü°Ï" #: ../../WPrefs.app/WindowHandling.c:307 msgid "...do not resize over dock" -msgstr "... nezvìt¹ovat pøes dok" +msgstr "...¤£­n¶W¹L°±¾a°Ï" #: ../../WPrefs.app/WindowHandling.c:320 -msgid "Keep transients above their owners" -msgstr "Dialogy dr¾et nad vlastníky" +msgid "Open transients in same workspace as their owners" +msgstr "«O«ù½T»{¡Bĵ§iµ¥µøµ¡¦b¾Ö¦³ªÌ¤§¤W" #: ../../WPrefs.app/WindowHandling.c:347 msgid "Window Handling Preferences" -msgstr "Nastavení práce s okny" +msgstr "µøµ¡¾Þ§@³]©w" #: ../../WPrefs.app/Workspace.c:137 msgid "Workspace Navigation" -msgstr "Orientace v plochách" +msgstr "¤u§@°Ï¤§¾Þ§@" #: ../../WPrefs.app/Workspace.c:161 msgid "drag windows between workspaces." -msgstr "táhnout okna mezi pracovními plochami." +msgstr "¦b¤u§@°Ï¤§¶¡©ì¦²µøµ¡¡C" #: ../../WPrefs.app/Workspace.c:186 msgid "" "switch to first workspace when switching past the last workspace and " "vice-versa" -msgstr "za poslední plochou pøepni opìt na první a opaènì" +msgstr "·í¤Á´«¶W¹L³Ì«á¤@­Ó¤u§@°Ï®É¤Á´«¦Ü²Ä¤@­Ó¤u§@°Ï¡A¤Ï¤§¥çµM¡C" #: ../../WPrefs.app/Workspace.c:210 msgid "create a new workspace when switching past the last workspace." -msgstr "za poslední plochou vytvoø pøi pøepnutí novou." +msgstr "·í¤Á´«¶W¹L³Ì«á¤@­Ó¤u§@°Ï®É«Ø¥ß·sªº¤u§@°Ï¡C" #: ../../WPrefs.app/Workspace.c:218 msgid "Dock/Clip" -msgstr "Dok/Sponka" +msgstr "°±¾a°Ï/°j¯¾°w" #: ../../WPrefs.app/Workspace.c:287 msgid "Workspace Preferences" -msgstr "Nastavení pracovní plochy " +msgstr "¤u§@°Ï³]©w" -#: ../../WPrefs.app/main.c:72 +#: ../../WPrefs.app/main.c:71 #, c-format msgid "usage: %s [options]\n" -msgstr "pou¾ití: %s [volby]\n" +msgstr "¨Ï¥Îªk: %s [¿ï¶µ]\n" -#: ../../WPrefs.app/main.c:73 +#: ../../WPrefs.app/main.c:72 msgid "options:" -msgstr "volby:" +msgstr "¿ï¶µ:" -#: ../../WPrefs.app/main.c:74 +#: ../../WPrefs.app/main.c:73 msgid " -display \tdisplay to be used" -msgstr " -display \tkterý display pou¾ít" +msgstr " -display \t­n¨Ï¥Îªº display" + +#: ../../WPrefs.app/main.c:74 +msgid " --version\t\tprint version number and exit" +msgstr " --version\t\t¦L¥Xª©¥»½s¸¹¨ÃÂ÷¶}" #: ../../WPrefs.app/main.c:75 -msgid " -version\t\tprint version number and exit" -msgstr " -version\t\tzobraz verzi a konec" +msgid " --help\t\tprint this message and exit" +msgstr " --help\t\tÅã¥Ü¥»»¡©ú°T®§" -#: ../../WPrefs.app/main.c:132 +#: ../../WPrefs.app/main.c:134 #, c-format msgid "too few arguments for %s" -msgstr "nedostatek argumetù pro %s" +msgstr "%s ªº°Ñ¼Æ¤Ó¤Ö" -#: ../../WPrefs.app/main.c:154 +#: ../../WPrefs.app/main.c:156 msgid "X server does not support locale" -msgstr "X server nepodporuje nastavení místních zvyklostí" +msgstr "X ¦øªA¾¹¨Ã¤£¤ä´©·í¦a¤Æ (locale)" -#: ../../WPrefs.app/main.c:157 +#: ../../WPrefs.app/main.c:159 msgid "cannot set locale modifiers" -msgstr "nelze nastavit modifikátory místních zvyklostí" +msgstr "µLªk³]©w locale modifiers" -#: ../../WPrefs.app/main.c:163 +#: ../../WPrefs.app/main.c:165 #, c-format msgid "could not open display %s" -msgstr "nelze otevøít displej %s" +msgstr "µLªk¶}±Ò display %s" -#: ../../WPrefs.app/main.c:171 +#: ../../WPrefs.app/main.c:173 msgid "could not initialize application" -msgstr "nelze inicializovat aplikaci" +msgstr "µLªk±Ò©lÀ³¥Îµ{¦¡" + +#~ msgid "" +#~ "The format of the current menu in ~/G/D/WMRootMenu is not supported by " +#~ "WPrefs. A new menu will be created.\n" +#~ "You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu to get the default " +#~ "menu." +#~ msgstr "" +#~ "¥Ø«e¦b ~/G/D/WMRootMenu ªº¿ï³æ®æ¦¡¥¼³Q WPrefs ¤ä´©¡C·s¿ï³æ·|³Q«Ø¥ß¡C\n" +#~ "±z¤]¥i¥H¥Î§â ~/G/D/WMRootMenu ´«¦¨ ~/G/L/W/plmenu ¨Ó±o¨ì¹w³]¿ï³æ¡C" diff --git a/WPrefs.app/tiff/Makefile.in b/WPrefs.app/tiff/Makefile.in index 21dccb5e..928da52c 100644 --- a/WPrefs.app/tiff/Makefile.in +++ b/WPrefs.app/tiff/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WPrefs.app/xpm/Makefile.in b/WPrefs.app/xpm/Makefile.in index 856e9249..9bbf0460 100644 --- a/WPrefs.app/xpm/Makefile.in +++ b/WPrefs.app/xpm/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WindowMaker.lsm.in b/WindowMaker.lsm.in index 021301ca..18df20d1 100644 --- a/WindowMaker.lsm.in +++ b/WindowMaker.lsm.in @@ -8,7 +8,7 @@ Description: N*EXTSTEP alike, good looking, fast and easy to use/configure workspaces, easy to use application dock, very flexible menus, graphical configuration, 13 types of decoration textures, national language support, themes etc -Keywords: window-manager X11 GNUstep NEXTSTEP GNOME KDE +Keywords: window-manager X11 GNUstep NEXTSTEP GNOME KDE OpenLook Motif Author: kojima@windowmaker.org (Alfredo K. Kojima) Maintained-by: kojima@windowmaker.org (Alfredo K. Kojima) dan@windowmaker.org (Dan Pascu) diff --git a/WindowMaker/Backgrounds/Makefile.in b/WindowMaker/Backgrounds/Makefile.in index 796ab22e..f8f87dad 100755 --- a/WindowMaker/Backgrounds/Makefile.in +++ b/WindowMaker/Backgrounds/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WindowMaker/Defaults/Makefile.am b/WindowMaker/Defaults/Makefile.am index b8fef185..387d0304 100644 --- a/WindowMaker/Defaults/Makefile.am +++ b/WindowMaker/Defaults/Makefile.am @@ -1,5 +1,5 @@ -defsdatadir = $(pkgdatadir)/Defaults +defsdatadir = $(sysconfdir)/WindowMaker defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL @@ -7,18 +7,19 @@ EXTRA_DIST = $(defsdata_DATA) WMWindowAttributes.in WindowMaker.in WMState.in CLEANFILES = WMWindowAttributes WindowMaker WMState -WMWindowAttributes: $(srcdir)/WMWindowAttributes.in ./Makefile +WMWindowAttributes: $(srcdir)/WMWindowAttributes.in -rm -f WMWindowAttributes sed -e "s:#extension#:@ICONEXT@:" \ $(srcdir)/WMWindowAttributes.in > WMWindowAttributes chmod 644 WMWindowAttributes -WindowMaker: $(srcdir)/WindowMaker.in ./Makefile +WindowMaker: $(srcdir)/WindowMaker.in -rm -f WindowMaker - sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker + sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in \ + > WindowMaker chmod 644 WindowMaker -WMState: $(srcdir)/WMState.in ./Makefile +WMState: $(srcdir)/WMState.in -rm -f WMState sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState chmod 644 WMState diff --git a/WindowMaker/Defaults/Makefile.in b/WindowMaker/Defaults/Makefile.in index 3843d698..617e74b6 100755 --- a/WindowMaker/Defaults/Makefile.in +++ b/WindowMaker/Defaults/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -87,7 +87,7 @@ XLIBS = @XLIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ wprefsdir = @wprefsdir@ -defsdatadir = $(pkgdatadir)/Defaults +defsdatadir = $(sysconfdir)/WindowMaker defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL @@ -217,18 +217,19 @@ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean -WMWindowAttributes: $(srcdir)/WMWindowAttributes.in ./Makefile +WMWindowAttributes: $(srcdir)/WMWindowAttributes.in -rm -f WMWindowAttributes sed -e "s:#extension#:@ICONEXT@:" \ $(srcdir)/WMWindowAttributes.in > WMWindowAttributes chmod 644 WMWindowAttributes -WindowMaker: $(srcdir)/WindowMaker.in ./Makefile +WindowMaker: $(srcdir)/WindowMaker.in -rm -f WindowMaker - sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker + sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in \ + > WindowMaker chmod 644 WindowMaker -WMState: $(srcdir)/WMState.in ./Makefile +WMState: $(srcdir)/WMState.in -rm -f WMState sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState chmod 644 WMState diff --git a/WindowMaker/Defaults/WindowMaker b/WindowMaker/Defaults/WindowMaker index 7d10cef1..0ff6b3c4 100755 --- a/WindowMaker/Defaults/WindowMaker +++ b/WindowMaker/Defaults/WindowMaker @@ -1,6 +1,6 @@ { OpenTransientOnOwnerWorkspace = NO; - EdgeResistance = 5; + EdgeResistance = YES; IconificationStyle = Zoom; IconPath = ( "~/GNUstep/Library/Icons", @@ -48,6 +48,9 @@ AutoArrangeIcons = NO; AdvanceToNewWorkspace = NO; CycleWorkspaces = NO; +#ifdef WEENDOZE_CYCLE + WindozeCycling = YES; +#endif /* WEENDOZE_CYCLE */ ResizeDisplay = line; MoveDisplay = floating; OpaqueMove = YES; diff --git a/WindowMaker/Defaults/WindowMaker.in b/WindowMaker/Defaults/WindowMaker.in index 3f10cb2a..ef76e5ba 100644 --- a/WindowMaker/Defaults/WindowMaker.in +++ b/WindowMaker/Defaults/WindowMaker.in @@ -1,6 +1,6 @@ { OpenTransientOnOwnerWorkspace = NO; - EdgeResistance = 5; + EdgeResistance = YES; IconificationStyle = Zoom; IconPath = ( "~/GNUstep/Library/Icons", @@ -48,6 +48,9 @@ AutoArrangeIcons = NO; AdvanceToNewWorkspace = NO; CycleWorkspaces = NO; +#ifdef WEENDOZE_CYCLE + WindozeCycling = YES; +#endif /* WEENDOZE_CYCLE */ ResizeDisplay = line; MoveDisplay = floating; OpaqueMove = YES; diff --git a/WindowMaker/IconSets/Makefile.am b/WindowMaker/IconSets/Makefile.am index d3466a92..21ec7da6 100644 --- a/WindowMaker/IconSets/Makefile.am +++ b/WindowMaker/IconSets/Makefile.am @@ -7,7 +7,7 @@ EXTRA_DIST = CLEANFILES = Default.iconset -Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile +Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes -rm -f Default.iconset cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset chmod 644 Default.iconset diff --git a/WindowMaker/IconSets/Makefile.in b/WindowMaker/IconSets/Makefile.in index 8d8ebfd1..edef9a84 100755 --- a/WindowMaker/IconSets/Makefile.in +++ b/WindowMaker/IconSets/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -217,7 +217,7 @@ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean -Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile +Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes -rm -f Default.iconset cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset chmod 644 Default.iconset diff --git a/WindowMaker/Icons/Makefile.in b/WindowMaker/Icons/Makefile.in index 48a35107..6d0c09f5 100755 --- a/WindowMaker/Icons/Makefile.in +++ b/WindowMaker/Icons/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WindowMaker/Icons/README b/WindowMaker/Icons/README index 14d96212..7e84b9e6 100644 --- a/WindowMaker/Icons/README +++ b/WindowMaker/Icons/README @@ -2,10 +2,10 @@ The icons listed in the end of this file and their correspondent xpm versions were made by Marco van Hylckama Vlieg. They may be distributed freely and/or modified as long as the original Author is mentioned! +marco@windowmaker.org clip2.tiff is based on an icon by Vinny Ferrari. -fatal@global.uibk.ac.at BitchX.tiff DefaultAppIcon.tiff diff --git a/WindowMaker/Makefile.am b/WindowMaker/Makefile.am index 48eae412..b20648b8 100644 --- a/WindowMaker/Makefile.am +++ b/WindowMaker/Makefile.am @@ -30,6 +30,7 @@ prefsdata_DATA =\ menu.se\ menu.sl\ menu.tr\ + menu.zh_TW.Big5\ plmenu\ plmenu.fr\ plmenu.hr\ diff --git a/WindowMaker/Makefile.in b/WindowMaker/Makefile.in index a3fb1724..e2523f13 100755 --- a/WindowMaker/Makefile.in +++ b/WindowMaker/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -91,7 +91,7 @@ SUBDIRS = Backgrounds Defaults IconSets Icons Pixmaps Styles Themes prefsdatadir = $(pkgdatadir) -prefsdata_DATA = README README.themes autostart.sh exitscript.sh menu menu.ca menu.cz menu.de menu.dk menu.el menu.es menu.fi menu.fr menu.gl menu.he menu.hr menu.hu menu.it menu.ja menu.ko menu.nl menu.no menu.pt menu.ru menu.se menu.sl menu.tr plmenu plmenu.fr plmenu.hr wmmacros xtree.dat +prefsdata_DATA = README README.themes autostart.sh exitscript.sh menu menu.ca menu.cz menu.de menu.dk menu.el menu.es menu.fi menu.fr menu.gl menu.he menu.hr menu.hu menu.it menu.ja menu.ko menu.nl menu.no menu.pt menu.ru menu.se menu.sl menu.tr menu.zh_TW.Big5 plmenu plmenu.fr plmenu.hr wmmacros xtree.dat EXTRA_DIST = $(prefsdata_DATA) mkMakefile diff --git a/WindowMaker/Pixmaps/Makefile.in b/WindowMaker/Pixmaps/Makefile.in index 36b9ac37..52b83299 100755 --- a/WindowMaker/Pixmaps/Makefile.in +++ b/WindowMaker/Pixmaps/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WindowMaker/README b/WindowMaker/README index 84d95fca..88460439 100644 --- a/WindowMaker/README +++ b/WindowMaker/README @@ -56,4 +56,4 @@ menu.dk Danish John M. Lockard menu.sl Slovene Alen Salamun menu.hu Hungarian Csanaki Csaba menu.ca Català Carles Amig dj_fr3nd@hotmail.com - +menu.zh_TW.Big5 Chinese Li Wei Jih diff --git a/WindowMaker/Styles/Makefile.in b/WindowMaker/Styles/Makefile.in index b67cd049..7db6b23c 100755 --- a/WindowMaker/Styles/Makefile.in +++ b/WindowMaker/Styles/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WindowMaker/Themes/Checker.themed/Makefile.in b/WindowMaker/Themes/Checker.themed/Makefile.in index bfbf0503..f4549ee4 100755 --- a/WindowMaker/Themes/Checker.themed/Makefile.in +++ b/WindowMaker/Themes/Checker.themed/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WindowMaker/Themes/Makefile.am b/WindowMaker/Themes/Makefile.am index 3043ec22..ae0b2fec 100644 --- a/WindowMaker/Themes/Makefile.am +++ b/WindowMaker/Themes/Makefile.am @@ -2,7 +2,7 @@ SUBDIRS = Night.themed Checker.themed defsdatadir = $(pkgdatadir)/Themes -defsdata_DATA = Default.style OpenStep.style Pastel.style +defsdata_DATA = Default.style OpenStep.style Pastel.style SteelBlueSilk.style EXTRA_DIST = $(defsdata_DATA) diff --git a/WindowMaker/Themes/Makefile.in b/WindowMaker/Themes/Makefile.in index 9cb99d6d..41e9ac44 100755 --- a/WindowMaker/Themes/Makefile.in +++ b/WindowMaker/Themes/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -91,7 +91,7 @@ SUBDIRS = Night.themed Checker.themed defsdatadir = $(pkgdatadir)/Themes -defsdata_DATA = Default.style OpenStep.style Pastel.style +defsdata_DATA = Default.style OpenStep.style Pastel.style SteelBlueSilk.style EXTRA_DIST = $(defsdata_DATA) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs diff --git a/WindowMaker/Themes/Night.themed/Makefile.in b/WindowMaker/Themes/Night.themed/Makefile.in index b1c97a82..238a07e9 100755 --- a/WindowMaker/Themes/Night.themed/Makefile.in +++ b/WindowMaker/Themes/Night.themed/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/WindowMaker/Themes/SteelBlueSilk.style b/WindowMaker/Themes/SteelBlueSilk.style new file mode 100644 index 00000000..67c212c7 --- /dev/null +++ b/WindowMaker/Themes/SteelBlueSilk.style @@ -0,0 +1,47 @@ +{ + TitleJustify = center; + ClipTitleFont = "-b&h-lucida-medium-r-normal-*-10-*-*-*-p-*-iso8859-1"; + WindowTitleFont = "-b&h-lucida-medium-r-normal-*-12-*-*-*-p-*-iso8859-1"; + MenuTitleFont = "-b&h-lucida-bold-r-normal-*-12-*-*-*-p-*-iso8859-1"; + MenuTextFont = "-b&h-lucida-medium-r-normal-*-12-*-*-*-p-*-iso8859-1"; + IconTitleFont = "-b&h-lucida-medium-r-normal-*-10-*-*-*-p-*-iso8859-1"; + DisplayFont = "-b&h-lucida-medium-r-normal-*-12-*-*-*-p-*-iso8859-1"; + HighlightColor = white; + HighlightTextColor = black; + ClipTitleColor = white; + CClipTitleColor = gray60; + FTitleColor = white; + PTitleColor = white; + UTitleColor = gray20; + FTitleBack = ( + mdgradient, + "#18191f", + "#939abd", + "#616185", + "#616185", + "#5f5f83", + "#555575", + "#59597a", + "#555575", + "#939abd" + ); + PTitleBack = (mhgradient, "#5a5c66", "rgb:70/72/7e", "rgb:45/47/4e"); + UTitleBack = (mhgradient, "#989aa6", "#9fa1b5", "#86879b"); + MenuTitleColor = white; + MenuTextColor = white; + MenuDisabledColor = gray60; + MenuTitleBack = (mvgradient, "#18191f", "#474967", "#413b6d"); + MenuTextBack = (mhgradient, "#384246", "#707080", "#4a4a61"); + IconBack = ( + mdgradient, + gray40, + "#6d6aa4", + "#564e8c", + "#41436c", + "#464771", + "#595090" + ); + IconTitleColor = white; + IconTitleBack = "#18191f"; + WorkspaceBack = (mvgradient, "rgb:50/50/75", "#6a6f9e", "#4b4f70", "#28293c"); +} diff --git a/WindowMaker/menu b/WindowMaker/menu index 6f3b423b..6e08f9fb 100644 --- a/WindowMaker/menu +++ b/WindowMaker/menu @@ -10,7 +10,7 @@ * * SHORTCUT specifies a shortcut for that item. has the * same syntax of the shortcuts key options in the - * ~/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. + * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * @@ -93,9 +93,9 @@ * // creates a submenu with the contents of /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // some X11 apps in different directories - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // set some background images - * "Background" OPEN_MENU -noext ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU -noext $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Style" OPEN_MENU style.menu * "Test" END @@ -173,9 +173,9 @@ "Workspace" END "Appearance" MENU - "Themes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Styles" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Icon Sets" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Themes" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Styles" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Icon Sets" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Background" MENU "Solid" MENU "Black" WS_BACK '(solid, black)' @@ -197,10 +197,10 @@ "Grey Shades" WS_BACK '(vgradient, "#636380", "#131318")' "Wine Shades" WS_BACK '(vgradient, "#600040", "#180010")' "Gradient" END - "Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Background" END - "Save Theme" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)" - "Save IconSet" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)" + "Save Theme" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)" + "Save IconSet" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)" "Appearance" END "Exit" MENU diff --git a/WindowMaker/menu.ca b/WindowMaker/menu.ca index ce7e38ac..023b93ae 100644 --- a/WindowMaker/menu.ca +++ b/WindowMaker/menu.ca @@ -12,7 +12,7 @@ * * TECLA especifica una combinació de tecles per aquest objecte. té * la mateixa sintaxis que les combinacions de tecles especificades al - * fitxer ~/GNUstep/Defaults/WindowMaker , com a RootMenuKey o bé + * fitxer $HOME/GNUstep/Defaults/WindowMaker , com a RootMenuKey o bé * MiniaturizeKey. * * No es pot especificar una combinació de tecles per a un MENU o un @@ -96,9 +96,9 @@ * // crea un submenu amb els continguts de /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // Algunes aplicacions X de diferents directoris - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // algunes imatges de fondo de l'escriptori - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserta el fitxer style.menu * "Style" OPEN_MENU style.menu * "Test" END @@ -175,9 +175,9 @@ "Escriptori" END "Aparença" MENU - "Temes" OPEN_MENU THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Estils" OPEN_MENU STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Jocs d'Icones" OPEN_MENU ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Temes" OPEN_MENU THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Estils" OPEN_MENU STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Jocs d'Icones" OPEN_MENU ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Fons de pantalla" MENU "Sòlid" MENU "Negre" WS_BACK '(solid, black)' @@ -199,10 +199,10 @@ "Degradat Gris" WS_BACK '(vgradient,"#636380", "#131318")' "Degradat Lila" WS_BACK '(vgradient,"#600040", "#180010")' "Degradat" END - "Imatges" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Imatges" OPEN_MENU BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Fons de pantalla" END - "Guardar Tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Guardar Joc d'Icones" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Guardar Tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Guardar Joc d'Icones" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Aparença" END "Sortir" MENU diff --git a/WindowMaker/menu.dk b/WindowMaker/menu.dk index 48c5973e..1ab68d89 100755 --- a/WindowMaker/menu.dk +++ b/WindowMaker/menu.dk @@ -9,7 +9,7 @@ * skal omgives med " hvis den indeholder mellemrum. * * SHORTCUT angiver en genvej for menuobjektet. har samme - * syntaks som genvejene i filen ~/GNUStep/Defaults/WindowMaker. + * syntaks som genvejene i filen $HOME/GNUStep/Defaults/WindowMaker. * * Man kan ikke angive en genvej for kommandoerne MENU og OPEN_MENU. * @@ -88,9 +88,9 @@ * // skaber en undermenu med indholdet af /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // nogle X11-programmer i forskellige kataloger - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // sæt et baggrundsbillede - * "Baggrund" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Baggrund" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // indføjer style.menu her * "Stil" OPEN_MENU style.menu * "Test" END @@ -169,9 +169,9 @@ "Arbejdsbord" END "Udseende" MENU - "Temaer" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Stil" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Ikonsæt" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Temaer" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Stil" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Ikonsæt" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Baggrund" MENU "Ensfarvet" MENU "Sort" WS_BACK '(solid, black)' @@ -187,10 +187,10 @@ "Flag" WS_BACK '(mdgradient, green, red, white, green)' "Himmel" WS_BACK '(vgradient, blue4, white)' "Nuancer" END - "Billeder" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Billeder" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Baggrund" END - "Gem tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Gem ikonsæt" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Gem tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Gem ikonsæt" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Udseende" END "Afslut" MENU diff --git a/WindowMaker/menu.el b/WindowMaker/menu.el index e3bde21b..a8a89060 100644 --- a/WindowMaker/menu.el +++ b/WindowMaker/menu.el @@ -11,7 +11,7 @@ * * SHORTCUT åßíáé ï óõíäõáóìüò ðëÞêôñùí ãéá ôï óõãêåêñéìÝíï ðñüãñáììá ð.÷: * "Meta+1". ¶ëëá ðáñáäåßãìáôá èá äåßôå óôï á÷ñåßï: - * ~/GNUstep/Defaults/WindowMaker + * $HOME/GNUstep/Defaults/WindowMaker * * Äåí ìðïñåß íá äçëùèåß Ýíá shortcut ãéá MENU êáé ãéá OPEN_MENU åíôïëÞ. * @@ -43,7 +43,7 @@ * èá áíáêëçèïýí ôçí åðüìåíç öïñÜ ðïõ ï ÷ñÞóôçò * åêêéíßóåé ôïí Window Maker ìÝ÷ñé ç åíôïëÞ SAVE_SESSION Þ * CLEAR_SESSION ÷ñçóéìïðïéçèïýí. Áí óôï áñ÷åßï Window Maker ôïõ - * êáôáëüãïõ "~/GNUstep/Defaults/" õðÜñ÷åé ç åíôïëÞ: + * êáôáëüãïõ "$HOME/GNUstep/Defaults/" õðÜñ÷åé ç åíôïëÞ: * "SaveSessionOnExit = Yes;", ôüôå üëá ôá ðáñáðÜíù ãßíïíôáé * áõôüìáôá ìå êÜèå Ýîïäï ôïõ ÷ñÞóôç áðü ôïí Window Maker, * áêõñþíïíôáò ïõóéáóôéêÜ êÜèå ðñïçãïýìåíç ÷ñÞóç ôùò åíôïëþí @@ -97,9 +97,9 @@ * // creates a submenu with the contents of /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // some X11 apps in different directories - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // set some background images - * "Öüíôï" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Öüíôï" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Óôõë" OPEN_MENU style.menu * "Äïêéìáóôéêü" END @@ -177,9 +177,9 @@ "ÅðéöÜíåéá" END "ÅìöÜíéóç" MENU - "ÈÝìáôá" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Óôõë" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "ÏìÜäá Åéêïíéäßùí" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "ÈÝìáôá" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Óôõë" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "ÏìÜäá Åéêïíéäßùí" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Öüíôï" MENU "Ìïíü÷ñùìï" MENU "Ìáýñï" WS_BACK '(solid, black)' @@ -195,10 +195,10 @@ "Óçìáßá" WS_BACK '(mdgradient, green, red, white, green)' "ÏõñÜíïò" WS_BACK '(vgradient, blue4, white)' "ÄéáâáèìéóìÝíï" END - "Åéêüíåò" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Åéêüíåò" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Öüíôï" END - "ÁðïèÞêåõóç ÈÝìáôïò" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(¼íïìá ÈÝìáôïò)" - "ÁðïèÞêåõóç ÏìÜäáò Åéêïíéäßùí" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(¼íïìá ÏìÜäáò)" + "ÁðïèÞêåõóç ÈÝìáôïò" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(¼íïìá ÈÝìáôïò)" + "ÁðïèÞêåõóç ÏìÜäáò Åéêïíéäßùí" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(¼íïìá ÏìÜäáò)" "ÅìöÜíéóç" END "¸îïäïò" MENU diff --git a/WindowMaker/menu.es b/WindowMaker/menu.es index 870d8348..47391ae9 100644 --- a/WindowMaker/menu.es +++ b/WindowMaker/menu.es @@ -78,9 +78,9 @@ * // crea un submenu con los contenidos de /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // algunas aplicaciones X11 de diversos directorios - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // algunos fondos de escritorio - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserta el fichero style.menu en esta entrada de menu * "Style" OPEN_MENU style.menu * "Test" END @@ -158,9 +158,9 @@ "Escritorio" END "Apariencia" MENU - "Temas" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Estilos" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Juegos de Iconos" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Temas" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Estilos" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Juegos de Iconos" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Fondo" MENU "Sólido" MENU "Black" WS_BACK '(solid, black)' @@ -176,10 +176,10 @@ "Flag" WS_BACK '(mdgradient, green, red, white, green)' "Sky" WS_BACK '(vgradient, blue4, white)' "Gradiente" END - "Imagenes" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Imagenes" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Fondo" END - "Guardar Tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Guardar Juego de Iconos" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Guardar Tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Guardar Juego de Iconos" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Apariencia" END "Salir" MENU diff --git a/WindowMaker/menu.fi b/WindowMaker/menu.fi index 47ef9270..51fdc50c 100644 --- a/WindowMaker/menu.fi +++ b/WindowMaker/menu.fi @@ -82,9 +82,9 @@ * // creates a submenu with the contents of /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // some X11 apps in different directories - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // set some background images - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Style" OPEN_MENU style.menu * "Test" END @@ -162,9 +162,9 @@ "Työtilat" END "Ulkonäkö" MENU - "Teemat" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Tyylit" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Kuvakeryhmät" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Teemat" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Tyylit" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Kuvakeryhmät" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Taustat" MENU "Taustaväri" MENU "Musta" WS_BACK '(solid, black)' @@ -180,10 +180,10 @@ "Lippu" WS_BACK '(mdgradient, green, red, white, green)' "Taivas" WS_BACK '(vgradient, blue4, white)' "Liukuväri" END - "Taustakuvat" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Taustakuvat" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Taustat" END - "Talleta teema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Talleta kuvakeryhmät" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Talleta teema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Talleta kuvakeryhmät" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Ulkonäkö" END "Poistu" MENU diff --git a/WindowMaker/menu.fr b/WindowMaker/menu.fr index 162461d5..be63dd0f 100644 --- a/WindowMaker/menu.fr +++ b/WindowMaker/menu.fr @@ -10,7 +10,7 @@ * * SHORTCUT spécifie un raccourci pour une entrée dans le menu. * a la même syntaxe que les options pour les raccourcis clavier dans le - * fichier ~/GNUstep/Defaults/WindowMaker, comme par example RootMenuKey ou + * fichier $HOME/GNUstep/Defaults/WindowMaker, comme par example RootMenuKey ou * encore MiniaturizeKey. * * Il n'est pas possible de spécifier un raccourci pour une entrée MENU @@ -142,9 +142,9 @@ * / Crée un sous menu avec le contenu de /usr/openwin/bin * "Applications XView" OPEN_MENU "/usr/openwin/bin" * / Quelques applications X11 dans différents répertoires - * "Applications X11" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "Applications X11" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * / Définir quelques images de fond - * "Fond d'écran" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Fond d'écran" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * / Insère le fichier "style.menu" dans cette entrée * "Style" OPEN_MENU style.menu * "Test" END @@ -222,9 +222,9 @@ "Espace de travail" END "Apparence" MENU - "Thèmes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Styles" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Jeu d'icônes" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Thèmes" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Styles" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Jeu d'icônes" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Fond d'écran" MENU "Unifié" MENU "Noir" WS_BACK '(solid, black)' @@ -246,10 +246,10 @@ "Dégradés de Gris" WS_BACK '(vgradient, "#636380", "#131318")' "Dégradés de Bordeau" WS_BACK '(vgradient, "#600040", "#180010")' "Degradé" END - "Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Fond d'écran" END - "Sauver le thème" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Nom du thème,Entrez un nom de fichier:)" - "Sauver le jeu d'icônes" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)" + "Sauver le thème" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Nom du thème,Entrez un nom de fichier:)" + "Sauver le jeu d'icônes" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)" "Apparence" END "Quitter" MENU diff --git a/WindowMaker/menu.he b/WindowMaker/menu.he index 03b3066c..9c491e08 100644 --- a/WindowMaker/menu.he +++ b/WindowMaker/menu.he @@ -82,9 +82,9 @@ * // creates a submenu with the contents of /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // some X11 apps in different directories - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // set some background images - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Style" OPEN_MENU style.menu * "Test" END @@ -161,9 +161,9 @@ "äãåáò áçøî" END "äàøî" MENU - "Themes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "úåðåðâñ" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "íéðå÷ééà èñ" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Themes" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "úåðåðâñ" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "íéðå÷ééà èñ" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "ò÷ø" MENU "Solid" MENU "øåçù" WS_BACK '(solid, black)' @@ -179,10 +179,10 @@ "Flag" WS_BACK '(vdgradient, blue, white, blue)' "Sky" WS_BACK '(vgradient, blue4, white)' "Gradient" END - "Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "ò÷ø" END - "Save Theme" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Save IconSet" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Save Theme" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Save IconSet" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "äàøî" END "äàéöé" MENU diff --git a/WindowMaker/menu.hr b/WindowMaker/menu.hr index 1b05b4fb..3cddbd97 100644 --- a/WindowMaker/menu.hr +++ b/WindowMaker/menu.hr @@ -82,9 +82,9 @@ * // creates a submenu with the contents of /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // some X11 apps in different directories - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // set some background images - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Style" OPEN_MENU style.menu * "Test" END @@ -163,9 +163,9 @@ "Radni prostor" END "Izgled" MENU - "Teme" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Stilovi" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Setovi Ikona" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Teme" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Stilovi" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Setovi Ikona" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Pozadina" MENU "Boja" MENU "Crna" WS_BACK '(solid, black)' @@ -181,10 +181,10 @@ "Zastava" WS_BACK '(mdgradient, green, red, white, green)' "Nebo" WS_BACK '(vgradient, blue4, white)' "Preljev" END - "Slike" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Slike" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Pozadina" END - "Snimi temu" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Snimi set ikona" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Snimi temu" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Snimi set ikona" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Izgled" END "Izlaz" MENU diff --git a/WindowMaker/menu.hu b/WindowMaker/menu.hu dissimilarity index 76% index 8434c76e01f6b0ba8fa8ff6e27f626c9cf52dbe7..bd5eec0d24ff8ceb41e3437b4080d29708901719 100644 GIT binary patch delta 117 zcwYNqGuw8 é qualquer texto a ser usado como título. Deve estar entre aspas " * * SHORTCUT especifica uma tecla de atalho para o item. - * tem a mesma sintaxe das teclas de atalho em ~/GNUstep/Defaults/WindowMaker + * tem a mesma sintaxe das teclas de atalho em $HOME/GNUstep/Defaults/WindowMaker * * Não é possível especificar teclas de atalho para MENU ou OPEN_MENU * @@ -37,7 +37,7 @@ * de trabalho atual. Todas as informações serão restauradas * até que se use o comando SAVE_SESSION de novo ou CLEAR_SESSION. * Se SaveSessionOnExit = Yes; estiver definido no domínio - * WindowMaker (~/GNUstep/Defaults/WindowMaker), então o + * WindowMaker ($HOME/GNUstep/Defaults/WindowMaker), então o * salvamento da sessão é feito automaticamente quando o * WindowMaker finalizar, apagando quaisquer SAVE_SESSION ou * CLEAR_SESSION usados anteriormente. @@ -91,9 +91,9 @@ * // cria um submenu com o conteúdo de /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // alguns programas do X11 em vários diretórios - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // faz um submenu de papéis de parede - * "Papel de Parede" OPEN_MENU ~/imagens /usr/share/imagens WITH wmsetbg -u -t + * "Papel de Parede" OPEN_MENU $HOME/imagens /usr/share/imagens WITH wmsetbg -u -t * // insere o menu meu.menu * "Style" OPEN_MENU meu.menu * "Test" END @@ -171,9 +171,9 @@ "Área de Trabalho" END "Aparência" MENU - "Temas" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Estilos" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Conjunto de Ícones" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Temas" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Estilos" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Conjunto de Ícones" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Papéis de Parede" MENU "Sólido" MENU "Preto" WS_BACK '(solid, black)' @@ -189,10 +189,10 @@ "Bandeira" WS_BACK '(mdgradient, green, green, yellow)' "Céu" WS_BACK '(vgradient, blue4, white)' "Degradé" END - "Imagens" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Imagens" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Papéis de Parede" END - "Salvar Tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Nome do Tema)" - "Salvar Configuração de Ícones" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(Nome do Conjunto de Ícones)" + "Salvar Tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Nome do Tema)" + "Salvar Configuração de Ícones" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Nome do Conjunto de Ícones)" "Appearance" END "Sair" MENU diff --git a/WindowMaker/menu.se b/WindowMaker/menu.se index 8588e8d7..247596f7 100644 --- a/WindowMaker/menu.se +++ b/WindowMaker/menu.se @@ -9,7 +9,7 @@ * måste omslutas med " om den innehåller mellanslag. * * SHORTCUT anger en genväg för det menyalternativet. har likadan - * syntax som genvägarna i filen ~/GNUStep/Defaults/WindowMaker. + * syntax som genvägarna i filen $HOME/GNUStep/Defaults/WindowMaker. * * Man kan inte ange en genväg för kommandona MENU och OPEN_MENU. * @@ -90,9 +90,9 @@ * // skapar en undermeny med innehållet i /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // några X11-program i olika kataloger - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // sätt en bakgrundsbild - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // infogar style.menu här * "Style" OPEN_MENU style.menu * "Test" END @@ -171,9 +171,9 @@ "Arbetsbord" END "Utseende" MENU - "Teman" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Stilar" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Ikonuppsättningar" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Teman" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Stilar" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Ikonuppsättningar" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Bakgrund" MENU "Enfärgat" MENU "Svart" WS_BACK '(solid, black)' @@ -189,10 +189,10 @@ "Flagga" WS_BACK '(mdgradient, green, red, white, green)' "Himmel" WS_BACK '(vgradient, blue4, white)' "Toningar" END - "Bilder" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Bilder" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Bakgrund" END - "Spara tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Spara ikonuppsättning" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Spara tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Spara ikonuppsättning" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Utseende" END "Avsluta" MENU diff --git a/WindowMaker/menu.sl b/WindowMaker/menu.sl index 6a2e63c5..af1785aa 100644 --- a/WindowMaker/menu.sl +++ b/WindowMaker/menu.sl @@ -10,7 +10,7 @@ * * SHORTCUT specifies a shortcut for that item. has the * same syntax of the shortcuts key options in the - * ~/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. + * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * * You can't specify a shortcut for a MENU or OPEN_MENU entry. * @@ -90,9 +90,9 @@ * // creates a submenu with the contents of /usr/openwin/bin * "XView apps" OPEN_MENU "/usr/openwin/bin" * // some X11 apps in different directories - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // set some background images - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // inserts the style.menu in this entry * "Style" OPEN_MENU style.menu * "Test" END @@ -170,9 +170,9 @@ "Delovni prostor" END "Izgled" MENU - "Teme" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Stili" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Zbirke ikon" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Teme" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Stili" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Zbirke ikon" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Odzadje" MENU "Barva" MENU "Èrna" WS_BACK '(solid, black)' @@ -188,10 +188,10 @@ "Zastava" WS_BACK '(mdgradient, green, red, white, green)' "Nebo" WS_BACK '(vgradient, blue4, white)' "Preliv" END - "Slike" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Slike" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Odzadje" END - "Shrani temo" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Shrani zbirko ikon" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Shrani temo" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Shrani zbirko ikon" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Izgled" END "Izhod" MENU diff --git a/WindowMaker/menu.tr b/WindowMaker/menu.tr index e7140c09..14cd86d7 100644 --- a/WindowMaker/menu.tr +++ b/WindowMaker/menu.tr @@ -9,7 +9,7 @@ * yazýlmalý * * SHORTCUT sözkonusu giriþ için kýsayol tuþu tanýmlamak için kullanýlýr - * , ~/GNUstep/Defaults/WindowMaker olduðu gibi tanýmlanabilir. + * , $HOME/GNUstep/Defaults/WindowMaker olduðu gibi tanýmlanabilir. * * MENU veya OPEN_MENU için kýsayol tanýmlayamazsýnýz. * @@ -76,9 +76,9 @@ * // /usr/openwin/bin'in içeriði ile bir menü yaratýr * "XView apps" OPEN_MENU "/usr/openwin/bin" * // deðiþik dizinlerde yer alan uygulamalrla bir menü yaratýr - * "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 + * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11 * // bazý arkaplan görüntülerini ekler - * "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t + * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t * // style.menu menüsünü ekler. * "Style" OPEN_MENU style.menu * "Test" END @@ -156,9 +156,9 @@ "Çalýþma Alaný" END "Görünüm" MENU - "Temalar" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Tarzlar" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Simge Kümeleri" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "Temalar" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle + "Tarzlar" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle + "Simge Kümeleri" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons "Arkaplan" MENU "Düz Renk" MENU "Black" WS_BACK '(solid, black)' @@ -174,10 +174,10 @@ "Flag" WS_BACK '(mdgradient, green, red, white, green)' "Sky" WS_BACK '(vgradient, blue4, white)' "Renk Geçiþi" END - "Görüntüler" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "Görüntüler" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Arkaplan" END - "Tema Sakla" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" - "Simge Kümesi Sakla" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "Tema Sakla" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Simge Kümesi Sakla" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Görünüm" END "Çýkýþ" MENU diff --git a/WindowMaker/menu b/WindowMaker/menu.zh_TW.Big5 similarity index 69% copy from WindowMaker/menu copy to WindowMaker/menu.zh_TW.Big5 index 6f3b423b..45b3c868 100644 --- a/WindowMaker/menu +++ b/WindowMaker/menu.zh_TW.Big5 @@ -77,8 +77,7 @@ * %a(title[,prompt]) - opens a input box with the specified title and the * optional prompt and do substitution with what you typed * %w - substitute with XID for the current focused window - * %W - substitute with the number of the current workspace - * + * * You can override special characters (as % and ") with the \ character: * ex: xterm -T "\"Hello World\"" * @@ -103,26 +102,25 @@ #include "wmmacros" -"Applications" MENU - "Info" MENU - "Info Panel..." INFO_PANEL - "Legal..." LEGAL_PANEL - "System Console" EXEC xconsole - "System Load" EXEC xosview || xload - "Process List" EXEC xterm -e top - "Manual Browser" EXEC xman - "Info" END - "Run..." EXEC %a(Run,Type command to run:) - "XTerm" EXEC xterm -sb - "Rxvt" EXEC rxvt -bg black -fg white -fn fixed - "Workspaces" WORKSPACE_MENU - "Applications" MENU - "Graphics" MENU +"À³¥Îµ{¦¡" MENU + "¸ê°T" MENU + "¸ê°T­±ªO..." INFO_PANEL + "ªk«ß..." LEGAL_PANEL + "¨t²Î¥D±±¥x" EXEC xconsole + "¨t²Î­t¸ü" EXEC xosview || xload + "¦æµ{²M³æ" EXEC xterm -e top + "¤â¥UÂsÄý¾¹" EXEC xman + "¸ê°T" END + "°õ¦æ..." EXEC %a (°õ¦æ¡A¿é¤J°õ¦æªº©R¥O¡G) + "²×ºÝ¾÷" EXEC crxvt -thin -ls -T ²×ºÝ¾÷ -n ²×ºÝ¾÷ + "¤u§@°Ï" WORKSPACE_MENU + "À³¥Îµ{¦¡" MENU + "¼v¹³³B²z" MENU "Gimp" EXEC gimp >/dev/null "XV" EXEC xv "XPaint" EXEC xpaint "XFig" EXEC xfig - "Graphics" END + "¼v¹³³B²z" END "X File Manager" EXEC xfm "OffiX Files" EXEC files "LyX" EXEC lyx @@ -130,22 +128,22 @@ "Ghostview" EXEC ghostview %a(GhostView,Enter file to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Acrobar,Enter PDF to view) "TkDesk" EXEC tkdesk - "Applications" END - "Editors" MENU + "À³¥Îµ{¦¡" END + "½s¿è¾¹" MENU "XFte" EXEC xfte "XEmacs" EXEC xemacs || emacs "XJed" EXEC xjed "NEdit" EXEC nedit "Xedit" EXEC xedit "VI" EXEC xterm -e vi - "Editors" END - "Miscellaneous" MENU + "½s¿è¾¹" END + "Âø¶µ" MENU "Xmcd" EXEC xmcd 2> /dev/null "Xplaycd" EXEC xplaycd "Xmixer" EXEC xmixer - "Miscellaneous" END - "Utils" MENU - "Calculator" EXEC xcalc + "Âø¶µ" END + "¤½¥Îµ{¦¡" MENU + "­pºâ¾÷" EXEC xcalc "Window Properties" EXEC xprop | xmessage -center -title 'xprop' -file - "Font Chooser" EXEC xfontsel "Terminal Emulator" EXEC xminicom @@ -153,31 +151,31 @@ "Colormap" EXEC xcmap "XKill" EXEC xkill "Clipboard" EXEC xclipboard - "Utils" END + "¤½¥Îµ{¦¡" END - "Selection" MENU - "Copy" EXEC echo '%s' | wxcopy - "Mail To" EXEC xterm -name mail -T "Pine" -e pine %s + "¿ï¨ú" MENU + "½Æ»s" EXEC echo '%s' | wxcopy + "¶l±H¦Ü" EXEC xterm -name mail -T "Pine" -e pine %s "Navigate" EXEC netscape %s - "Search in Manual" EXEC MANUAL_SEARCH(%s) - "Selection" END + "¦b¤â¥U¤¤·j´M" EXEC MANUAL_SEARCH(%s) + "¿ï¨ú" END - "Workspace" MENU - "Hide Others" HIDE_OTHERS - "Show All" SHOW_ALL - "Arrange Icons" ARRANGE_ICONS - "Refresh" REFRESH - "Lock" EXEC xlock -allowroot -usefirst - "Save Session" SAVE_SESSION - "Clear Saved Session" CLEAR_SESSION - "Workspace" END + "¤u§@°Ï" MENU + "ÁôÂèä¥L" HIDE_OTHERS + "¥þ³¡Åã¥Ü" SHOW_ALL + "±Æ¦C¹Ï¥Ü" ARRANGE_ICONS + "§ó·sµe­±" REFRESH + "Âê©w" EXEC xlock -allowroot -usefirst + "Àx¦s¶¥¬qª¬ºA" SAVE_SESSION + "²M°£¶¥¬qª¬ºA" CLEAR_SESSION + "¤u§@°Ï" END - "Appearance" MENU - "Themes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle - "Styles" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle - "Icon Sets" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons - "Background" MENU - "Solid" MENU + "¥~Æ[" MENU + "¥DÃD" OPEN_MENU THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle + "­·®æ" OPEN_MENU STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle + "¹Ï¥Ü¶°" OPEN_MENU ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons + "­I´º" MENU + "¹êÅé¦â" MENU "Black" WS_BACK '(solid, black)' "Blue" WS_BACK '(solid, "#505075")' "Indigo" WS_BACK '(solid, "#243e6c")' @@ -186,31 +184,22 @@ "Wheat" WS_BACK '(solid, "wheat4")' "Dark Gray" WS_BACK '(solid, "#333340")' "Wine" WS_BACK '(solid, "#400020")' - "Solid" END - "Gradient" MENU - "Sunset" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)' + "¹êÅé¦â" END + "º¥¼h¦â" MENU + "Flag" WS_BACK '(mdgradient, green, red, white, green)' "Sky" WS_BACK '(vgradient, blue4, white)' - "Blue Shades" WS_BACK '(vgradient, "#7080a5", "#101020")' - "Indigo Shades" WS_BACK '(vgradient, "#746ebc", "#242e4c")' - "Purple Shades" WS_BACK '(vgradient, "#654c66", "#151426")' - "Wheat Shades" WS_BACK '(vgradient, "#a09060", "#302010")' - "Grey Shades" WS_BACK '(vgradient, "#636380", "#131318")' - "Wine Shades" WS_BACK '(vgradient, "#600040", "#180010")' - "Gradient" END - "Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t - "Background" END - "Save Theme" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)" - "Save IconSet" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)" - "Appearance" END - - "Exit" MENU - "Restart" RESTART - "Start BlackBox" RESTART blackbox - "Start kwm" RESTART kwm - "Start IceWM" RESTART icewm - "Exit..." EXIT - "Kill session..." SHUTDOWN - "Exit" END -"Applications" END + "º¥¼h¦â" END + "¹Ï¤ù" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t + "­I´º" END + "Àx¦s¥DÃD" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" + "Àx¦s¹Ï¥Ü¶°" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" + "¥~Æ[" END + "Â÷¶}" MENU + "­«·s±Ò°Ê" RESTART + "±Ò°Ê AfterStep" RESTART afterstep + "Â÷¶}..." EXIT + "µ²§ôµøµ¡¨t²Î..." SHUTDOWN + "Â÷¶}" END +"À³¥Îµ{¦¡" END diff --git a/WindowMaker/plmenu b/WindowMaker/plmenu index 362893eb..5442d72d 100644 --- a/WindowMaker/plmenu +++ b/WindowMaker/plmenu @@ -7,7 +7,7 @@ ("Process List", EXEC, "xterm -e top"), ("Manual Browser", EXEC, "xman") ), - ("Run", EXEC, "%a(Run,Type command to run:)"), + ("Run...", EXEC, "%a(Run,Type command to run:)"), ("XTerm", EXEC, "xterm -sb"), ("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"), ("Workspaces", WORKSPACE_MENU), @@ -66,9 +66,9 @@ ("Clear Saved Session", CLEAR_SESSION) ), ("Appearance", - ("Themes", OPEN_MENU, "-noext #wmdatadir#/Themes ~/GNUstep/Library/WindowMaker/Themes WITH setstyle"), - ("Styles", OPEN_MENU, "-noext #wmdatadir#/Styles ~/GNUstep/Library/WindowMaker/Styles WITH setstyle"), - ("Icon Sets", OPEN_MENU, "-noext #wmdatadir#/IconSets ~/GNUstep/Library/WindowMaker/IconSets WITH seticons"), + ("Themes", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), + ("Styles", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), + ("Icon Sets", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Background", ("Solid", ("Black", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), @@ -90,10 +90,10 @@ ("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), - ("Images", OPEN_MENU, "-noext #wmdatadir#/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") + ("Images", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), - ("Save Theme", EXEC, "getstyle -t ~/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), - ("Save IconSet", EXEC, "geticonset ~/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\"") + ("Save Theme", EXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), + ("Save IconSet", EXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\"") ), ("Exit", ("Restart", RESTART), diff --git a/WindowMaker/plmenu.fr b/WindowMaker/plmenu.fr index 37ddaf4c..8a904708 100644 --- a/WindowMaker/plmenu.fr +++ b/WindowMaker/plmenu.fr @@ -66,9 +66,9 @@ ("Effacer la session", CLEAR_SESSION) ), ("Apparence", - ("Thèmes", OPEN_MENU, "-noext #wmdatadir#/Themes ~/GNUstep/Library/WindowMaker/Themes WITH setstyle"), - ("Styles", OPEN_MENU, "-noext #wmdatadir#/Styles ~/GNUstep/Library/WindowMaker/Styles WITH setstyle"), - ("Jeu d'icônes", OPEN_MENU, "-noext #wmdatadir#/IconSets ~/GNUstep/Library/WindowMaker/IconSets WITH seticons"), + ("Thèmes", OPEN_MENU, "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), + ("Styles", OPEN_MENU, "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), + ("Jeu d'icônes", OPEN_MENU, "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Fond d'écran", ("Unifié", ("Noir", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), @@ -88,10 +88,10 @@ ("Dégradés de Gris", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Dégradés de Bordeau", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), - ("Images", OPEN_MENU, "-noext #wmdatadir#/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") + ("Images", OPEN_MENU, "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), - ("Sauver le thème", EXEC, "getstyle -t ~/GNUstep/Library/WindowMaker/Themes /\"%a(Nom du thème,Entrez un nom de fichier:)\""), - ("Sauver le jeu d'icônes", EXEC, "geticonset ~/GNUstep/Library/WindowMaker/IconSets /\"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)\"") + ("Sauver le thème", EXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes /\"%a(Nom du thème,Entrez un nom de fichier:)\""), + ("Sauver le jeu d'icônes", EXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets /\"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)\"") ), ("Quitter", ("Redémarrer", RESTART), diff --git a/WindowMaker/plmenu.hr b/WindowMaker/plmenu.hr index cd32f8fc..4c19cfe5 100644 --- a/WindowMaker/plmenu.hr +++ b/WindowMaker/plmenu.hr @@ -86,17 +86,17 @@ ( Teme, OPEN_MENU, - "-noext /usr/local/share/WindowMaker/Themes ~/GNUstep/Library/WindowMaker/Themes WITH setstyle" + "-noext /usr/local/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle" ), ( Stilovi, OPEN_MENU, - "-noext /usr/local/share/WindowMaker/Styles ~/GNUstep/Library/WindowMaker/Styles WITH setstyle" + "-noext /usr/local/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle" ), ( "Setovi ikona", OPEN_MENU, - "-noext /usr/local/share/WindowMaker/IconSets ~/GNUstep/Library/WindowMaker/IconSets WITH seticons" + "-noext /usr/local/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons" ), ( Pozadina, @@ -189,18 +189,18 @@ ( Slike, OPEN_MENU, - "-noext /usr/local/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t" + "-noext /usr/local/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t" ) ), ( "Snimi temu", EXEC, - "getstyle -t ~/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\"" + "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\"" ), ( "Snimi set ikona", EXEC, - "geticonset ~/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\"" + "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\"" ) ), ( diff --git a/acconfig.h b/acconfig.h index e55c9925..59c0efa7 100644 --- a/acconfig.h +++ b/acconfig.h @@ -1,10 +1,6 @@ /* define to the path to cpp */ #undef CPP_PATH -/* define to the directory containing NLS information - * set by configure */ -#undef NLSDIR - /* package name */ #undef PACKAGE @@ -75,7 +71,10 @@ * set by configure */ #undef X_LOCALE -/* the place where the configuration is stored +/* the place where shared data is stored * defined by configure */ #undef PKGDATADIR +/* the place where the configuration is stored + * defined by configure */ +#undef SYSCONFDIR diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 00000000..b7b89c9b --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,176 @@ +#!/bin/sh + +dnl +dnl WM_CHECK_LIB(NAME, FUNCTION, EXTRALIBS) +dnl +AC_DEFUN(WM_CHECK_LIB, +[ +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +AC_CHECK_LIB([$1],[$2],yes=yes,no=no,[$3]) +LDFLAGS="$LDFLAGS_old" +]) + + +dnl +dnl WM_CHECK_HEADER(NAME) +dnl +AC_DEFUN(WM_CHECK_HEADER, +[ +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $inc_search_path" +AC_CHECK_HEADER([$1]) +CPPFLAGS="$CPPFLAGS_old" +]) + + +dnl +dnl WM_CHECK_REDCRAP_BUGS(prefix,bindir,libdir) +dnl +AC_DEFUN(WM_CHECK_REDCRAP_BUGS, +[ +AC_MSG_CHECKING(for RedHat system) +wm_check_flag='no :)' +if test -f /etc/redhat-release; then + wm_check_flag=yes +fi +AC_MSG_RESULT($wm_check_flag) + +mins_found=no +bugs_found=no +if test "$wm_check_flag" = yes; then +echo +AC_MSG_WARN([it seems you are using a system packaged by RedHat. +I will now do some checks for RedHat specific bugs. If some check +fail, please read the INSTALL file regarding RedHat, resolve the +problem and retry to configure.]) +echo +# +# Check old wmaker from RedHat +# +if test "[$1]" != "/usr/X11R6" -a "$prefix" != "/usr/X11"; then +AC_MSG_CHECKING(for multiple installed wmaker versions) +if test -f /usr/X11R6/bin/wmaker; then +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([you seem to have an old version of Window Maker +installed at /usr/X11R6/bin. It is recommended that you uninstall +any previously installed packages of WindowMaker before installing +a new one.]) +mins_found=yes +else +AC_MSG_RESULT(no apparent problems) +fi +fi +# +# Check for infamous en_RN bug +# Wont work because autoconf will change LANG in the beginning of the +# script. + +# +#AC_MSG_CHECKING(for silly en_RN joke that only causes headaches) +#echo $LANG +#if test "x$LANG" = xen_RN; then +#AC_MSG_RESULT(uh oh) +#AC_MSG_WARN([the LANG environment variable is set to the en_RN +#locale. Please unset it or you will have mysterious problems when +#using various software packages.]) +#bugs_found=yes +#else +#AC_MSG_RESULT(no problem) +#fi +# +# If binary installation path is /usr/local/bin, check if it's in PATH +# +if test "[$2]" = "/usr/local/bin"; then +AC_MSG_CHECKING(if /usr/local/bin is in the search PATH) +wm_check_flag=no +old_IFS="$IFS" +IFS=":" +for i in $PATH; do + if test "x$i" = "x/usr/local/bin"; then + wm_check_flag=yes + break; + fi +done +IFS="$old_IFS" +if test "$wm_check_flag" = no; then +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([/usr/local/bin is not in the PATH environment variable. +Please resolve the problem.]) +bugs_found=yes +else +AC_MSG_RESULT(no problem) +fi +fi +# +# If library installation path is /usr/local/lib, +# check if it's in /etc/ld.so.conf +# +if test "[$3]" = "/usr/local/lib"; then +wm_check_flag=yes +AC_MSG_CHECKING(if /usr/local/lib is in /etc/ld.so.conf) +test -z "`grep /usr/local/lib /etc/ld.so.conf`" +test "$?" -eq 0 && wm_check_flag=no +if test "$wm_check_flag" = no; then +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([/usr/local/lib is not in the /etc/ld.so.conf file. +Please add it there.]) +bugs_found=yes +else +AC_MSG_RESULT(no problem) +fi +fi +# +# Check for symbolic links +# +AC_MSG_CHECKING(for /usr/X11 symbolic link) +if test -d "/usr/X11"; then +AC_MSG_RESULT(found) +else +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([Please create a symbolic link from /usr/X11R6 to /usr/X11.]) +mins_found=yes +fi +AC_MSG_CHECKING(for /usr/include/X11 symbolic link) +if test -d "/usr/include/X11"; then +AC_MSG_RESULT(found) +else +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([Please create a symbolic link from /usr/X11R6/include/X11 +to /usr/include/X11.]) +mins_found=yes +fi + +# +# Check for /lib/cpp +# +AC_MSG_CHECKING(for /lib/cpp) +if test -f "/lib/cpp"; then +AC_MSG_RESULT(found) +else +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([Please create a symbolic link from the cpp (C preprocessor) +program to /lib/cpp]) +bugs_found=yes +fi + +if test "x$bugs_found" = xyes; then +AC_MSG_ERROR([Some bugs that can potentially cause problems during +installation/execution were found. Please correct these problems +and retry later.]) +exit 1 +elif test "x$mins_found" = xyes; then +AC_MSG_WARN([Some minor problems that might or might not cause +problems were found. If you have any problems during +installation/execution, please resolve the pointed problems and try +to reinstall.]) +echo "Press to continue." +read blabla +else +echo +echo "None of the RedHat problems known to this script were found." +echo +fi +fi +]) + diff --git a/aclocal.m4 b/aclocal.m4 index 366c8ab8..fa3d2b9d 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -10,6 +10,183 @@ dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. +#!/bin/sh + +dnl +dnl WM_CHECK_LIB(NAME, FUNCTION, EXTRALIBS) +dnl +AC_DEFUN(WM_CHECK_LIB, +[ +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +AC_CHECK_LIB([$1],[$2],yes=yes,no=no,[$3]) +LDFLAGS="$LDFLAGS_old" +]) + + +dnl +dnl WM_CHECK_HEADER(NAME) +dnl +AC_DEFUN(WM_CHECK_HEADER, +[ +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $inc_search_path" +AC_CHECK_HEADER([$1]) +CPPFLAGS="$CPPFLAGS_old" +]) + + +dnl +dnl WM_CHECK_REDCRAP_BUGS(prefix,bindir,libdir) +dnl +AC_DEFUN(WM_CHECK_REDCRAP_BUGS, +[ +AC_MSG_CHECKING(for RedHat system) +wm_check_flag='no :)' +if test -f /etc/redhat-release; then + wm_check_flag=yes +fi +AC_MSG_RESULT($wm_check_flag) + +mins_found=no +bugs_found=no +if test "$wm_check_flag" = yes; then +echo +AC_MSG_WARN([it seems you are using a system packaged by RedHat. +I will now do some checks for RedHat specific bugs. If some check +fail, please read the INSTALL file regarding RedHat, resolve the +problem and retry to configure.]) +echo +# +# Check old wmaker from RedHat +# +if test "[$1]" != "/usr/X11R6" -a "$prefix" != "/usr/X11"; then +AC_MSG_CHECKING(for multiple installed wmaker versions) +if test -f /usr/X11R6/bin/wmaker; then +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([you seem to have an old version of Window Maker +installed at /usr/X11R6/bin. It is recommended that you uninstall +any previously installed packages of WindowMaker before installing +a new one.]) +mins_found=yes +else +AC_MSG_RESULT(no apparent problems) +fi +fi +# +# Check for infamous en_RN bug +# Wont work because autoconf will change LANG in the beginning of the +# script. + +# +#AC_MSG_CHECKING(for silly en_RN joke that only causes headaches) +#echo $LANG +#if test "x$LANG" = xen_RN; then +#AC_MSG_RESULT(uh oh) +#AC_MSG_WARN([the LANG environment variable is set to the en_RN +#locale. Please unset it or you will have mysterious problems when +#using various software packages.]) +#bugs_found=yes +#else +#AC_MSG_RESULT(no problem) +#fi +# +# If binary installation path is /usr/local/bin, check if it's in PATH +# +if test "[$2]" = "/usr/local/bin"; then +AC_MSG_CHECKING(if /usr/local/bin is in the search PATH) +wm_check_flag=no +old_IFS="$IFS" +IFS=":" +for i in $PATH; do + if test "x$i" = "x/usr/local/bin"; then + wm_check_flag=yes + break; + fi +done +IFS="$old_IFS" +if test "$wm_check_flag" = no; then +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([/usr/local/bin is not in the PATH environment variable. +Please resolve the problem.]) +bugs_found=yes +else +AC_MSG_RESULT(no problem) +fi +fi +# +# If library installation path is /usr/local/lib, +# check if it's in /etc/ld.so.conf +# +if test "[$3]" = "/usr/local/lib"; then +wm_check_flag=yes +AC_MSG_CHECKING(if /usr/local/lib is in /etc/ld.so.conf) +test -z "`grep /usr/local/lib /etc/ld.so.conf`" +test "$?" -eq 0 && wm_check_flag=no +if test "$wm_check_flag" = no; then +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([/usr/local/lib is not in the /etc/ld.so.conf file. +Please add it there.]) +bugs_found=yes +else +AC_MSG_RESULT(no problem) +fi +fi +# +# Check for symbolic links +# +AC_MSG_CHECKING(for /usr/X11 symbolic link) +if test -d "/usr/X11"; then +AC_MSG_RESULT(found) +else +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([Please create a symbolic link from /usr/X11R6 to /usr/X11.]) +mins_found=yes +fi +AC_MSG_CHECKING(for /usr/include/X11 symbolic link) +if test -d "/usr/include/X11"; then +AC_MSG_RESULT(found) +else +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([Please create a symbolic link from /usr/X11R6/include/X11 +to /usr/include/X11.]) +mins_found=yes +fi + +# +# Check for /lib/cpp +# +AC_MSG_CHECKING(for /lib/cpp) +if test -f "/lib/cpp"; then +AC_MSG_RESULT(found) +else +AC_MSG_RESULT(uh oh) +AC_MSG_WARN([Please create a symbolic link from the cpp (C preprocessor) +program to /lib/cpp]) +bugs_found=yes +fi + +if test "x$bugs_found" = xyes; then +AC_MSG_ERROR([Some bugs that can potentially cause problems during +installation/execution were found. Please correct these problems +and retry later.]) +exit 1 +elif test "x$mins_found" = xyes; then +AC_MSG_WARN([Some minor problems that might or might not cause +problems were found. If you have any problems during +installation/execution, please resolve the pointed problems and try +to reinstall.]) +echo "Press to continue." +read blabla +else +echo +echo "None of the RedHat problems known to this script were found." +echo +fi +fi +]) + + # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. diff --git a/config.guess b/config.guess index 4e5345fa..413ed41c 100755 --- a/config.guess +++ b/config.guess @@ -1,6 +1,6 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. +# Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -46,8 +46,7 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15 +trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 # Note: order is significant - the case branches are not exclusive. @@ -60,7 +59,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - cat <$dummy.s + cat <dummy.s .globl main .ent main main: @@ -77,9 +76,9 @@ main: ret \$31,(\$26),1 .end main EOF - ${CC-cc} $dummy.s -o $dummy 2>/dev/null + ${CC-cc} dummy.s -o dummy 2>/dev/null if test "$?" = 0 ; then - ./$dummy + ./dummy case "$?" in 7) UNAME_MACHINE="alpha" @@ -98,7 +97,7 @@ EOF ;; esac fi - rm -f $dummy.s $dummy + rm -f dummy.s dummy echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` exit 0 ;; 21064:Windows_NT:50:3) @@ -113,9 +112,6 @@ EOF amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; arc64:OpenBSD:*:*) echo mips64el-unknown-openbsd${UNAME_RELEASE} exit 0 ;; @@ -143,7 +139,7 @@ EOF SR2?01:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; - Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*) + Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 @@ -154,9 +150,6 @@ EOF NILE:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; @@ -223,9 +216,6 @@ EOF powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; - macppc:NetBSD:*:*) - echo powerpc-apple-netbsd${UNAME_RELEASE} - exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; @@ -239,7 +229,7 @@ EOF echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >dummy.c int main (argc, argv) int argc; char **argv; { #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) @@ -255,10 +245,10 @@ EOF exit (-1); } EOF - ${CC-cc} $dummy.c -o $dummy \ - && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + ${CC-cc} dummy.c -o dummy \ + && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Night_Hawk:Power_UNIX:*:*) @@ -310,7 +300,7 @@ EOF exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >dummy.c #include main() @@ -321,8 +311,8 @@ EOF exit(0); } EOF - ${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 @@ -331,8 +321,7 @@ EOF fi exit 0 ;; *:AIX:*:4) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` - if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then + if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -365,50 +354,18 @@ EOF hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; - 9000/[34678]??:HP-UX:*:*) + 9000/[3478]??:HP-UX:*:*) case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 ) - sed 's/^ //' << EOF >$dummy.c - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (${CC-cc} $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` - rm -f $dummy.c $dummy + 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; + 9000/8?? ) HP_ARCH=hppa1.0 ;; esac HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >dummy.c #include int main () @@ -433,8 +390,8 @@ EOF exit (0); } EOF - ${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) @@ -491,9 +448,6 @@ EOF CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} exit 0 ;; - CRAY*T3E:*:*:*) - echo t3e-cray-unicosmk${UNAME_RELEASE} - exit 0 ;; CRAY-2:*:*:*) echo cray2-cray-unicos exit 0 ;; @@ -511,15 +465,9 @@ EOF hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - i?86:BSD/386:*:* | i?86:BSD/OS:*:*) + i?86:BSD/386:*:* | *:BSD/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; @@ -530,13 +478,13 @@ EOF echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo i386-pc-cygwin32 exit 0 ;; i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo i386-pc-mingw32 exit 0 ;; p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin + echo powerpcle-unknown-cygwin32 exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -545,12 +493,6 @@ EOF echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:Linux:*:*) - # uname on the ARM produces all sorts of strangeness, and we need to - # filter it out. - case "$UNAME_MACHINE" in - arm* | sa110*) UNAME_MACHINE="arm" ;; - esac - # The BFD linker knows what the default object file format is, so # first see if it will tell us. ld_help_string=`ld --help 2>&1` @@ -564,13 +506,12 @@ EOF i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; esac if test "${UNAME_MACHINE}" = "alpha" ; then - sed 's/^ //' <$dummy.s + sed 's/^ //' <dummy.s .globl main .ent main main: @@ -588,9 +529,9 @@ EOF .end main EOF LIBC="" - ${CC-cc} $dummy.s -o $dummy 2>/dev/null + ${CC-cc} dummy.s -o dummy 2>/dev/null if test "$?" = 0 ; then - ./$dummy + ./dummy case "$?" in 7) UNAME_MACHINE="alpha" @@ -609,16 +550,16 @@ EOF ;; esac - objdump --private-headers $dummy | \ + objdump --private-headers dummy | \ grep ld.so.1 > /dev/null if test "$?" = 0 ; then LIBC="libc1" fi fi - rm -f $dummy.s $dummy + rm -f dummy.s dummy echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 elif test "${UNAME_MACHINE}" = "mips" ; then - cat >$dummy.c <dummy.c </dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy else # Either a pre-BFD a.out linker (linux-gnuoldld) # or one that does not give us useful --help. @@ -652,7 +593,7 @@ EOF ;; esac # Determine whether the default compiler is a.out or elf - cat >$dummy.c <dummy.c < main(argc, argv) int argc; @@ -674,8 +615,8 @@ main(argc, argv) return 0; } EOF - ${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy fi ;; # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions # are messed up and put the nodename in both sysname and nodename. @@ -711,13 +652,6 @@ EOF echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; - i?86:UnixWare:*:*) - if /bin/uname -X 2>/dev/null >/dev/null ; then - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - fi - echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION} - exit 0 ;; pc:*:*:*) # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. @@ -801,40 +735,19 @@ EOF news*:NEWS-OS:*:6*) echo mips-sony-newsos6 exit 0 ;; - R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*) + R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -cat >$dummy.c <dummy.c < # include @@ -872,10 +785,7 @@ main () #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); exit (0); #endif @@ -935,8 +845,8 @@ main () } EOF -${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 -rm -f $dummy.c $dummy +${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 +rm -f dummy.c dummy # Apollos put the system type in the environment. diff --git a/config.sub b/config.sub index da8b7ae6..213a6d47 100755 --- a/config.sub +++ b/config.sub @@ -1,6 +1,6 @@ #! /bin/sh # Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc. +# Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. @@ -150,8 +150,8 @@ case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ - | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ - | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \ + | arme[lb] | pyramid | mn10200 | mn10300 \ + | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ @@ -162,7 +162,7 @@ case $basic_machine in # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. - i[34567]86) + i[3456]86) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. @@ -171,11 +171,11 @@ case $basic_machine in exit 1 ;; # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \ + vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \ | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ - | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \ + | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \ | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ @@ -350,19 +350,19 @@ case $basic_machine in os=-mvs ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[34567]86v32) + i[3456]86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; - i[34567]86v4*) + i[3456]86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; - i[34567]86v) + i[3456]86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; - i[34567]86sol2) + i[3456]86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; @@ -469,23 +469,25 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; - pentium | p5 | k5 | nexen) - basic_machine=i586-pc + pentium | p5) + basic_machine=i586-intel ;; - pentiumpro | p6 | k6 | 6x86) - basic_machine=i686-pc + pentiumpro | p6) + basic_machine=i686-intel ;; - pentiumii | pentium2) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | nexen-*) + pentium-* | p5-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumpro-* | p6-* | k6-* | 6x86-*) + pentiumpro-* | p6-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumii-* | pentium2-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + k5) + # We don't have specific support for AMD's K5 yet, so just call it a Pentium + basic_machine=i586-amd + ;; + nexen) + # We don't have specific support for Nexgen yet, so just call it a Pentium + basic_machine=i586-nexgen ;; pn) basic_machine=pn-gould @@ -713,9 +715,8 @@ case $os in | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -rhapsody* \ - | -openstep*) + | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv*) # Remember, each alternative MUST END IN *, to match a version number. ;; -linux*) @@ -828,9 +829,6 @@ case $basic_machine in sparc-* | *-sun) os=-sunos4.1.1 ;; - *-be) - os=-beos - ;; *-ibm) os=-aix ;; diff --git a/configure b/configure index 0e1eafba..954c0ceb 100755 --- a/configure +++ b/configure @@ -22,9 +22,11 @@ ac_help="$ac_help ac_help="$ac_help --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ac_help="$ac_help - --enable-kanji multibyte character support (kanji, Korean etc.)" + --with-libs-from pass compiler flags to look for libraries" ac_help="$ac_help - --enable-modelock XKB keyboard language status support" + --with-incs-from pass compiler flags to look for header files" +ac_help="$ac_help + --enable-kanji multibyte character support (kanji, Korean etc.)" ac_help="$ac_help --with-nlsdir=PATH specify where the locale stuff should go " ac_help="$ac_help @@ -40,14 +42,12 @@ ac_help="$ac_help ac_help="$ac_help --disable-locale disable use of X locale support" ac_help="$ac_help + --enable-modelock XKB keyboard language status support" +ac_help="$ac_help --disable-shape disable shaped window extension support" ac_help="$ac_help --disable-shm disable usage of MIT-SHM extension" ac_help="$ac_help - --with-gfx-libs pass compiler flags to look for gfx libraries" -ac_help="$ac_help - --with-gfx-incs pass compiler flags to look for gfx header files" -ac_help="$ac_help --disable-xpm disable use of XPM pixmaps through libXpm" ac_help="$ac_help --disable-png disable PNG support through libpng" @@ -579,6 +579,8 @@ fi + + ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then @@ -610,7 +612,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:614: checking for a BSD compatible install" >&5 +echo "configure:616: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -663,7 +665,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:667: checking whether build environment is sane" >&5 +echo "configure:669: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -720,7 +722,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:724: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:726: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -749,7 +751,7 @@ fi PACKAGE=WindowMaker -VERSION=0.51.0 +VERSION=0.51.1 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -766,7 +768,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:770: checking for working aclocal" >&5 +echo "configure:772: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -779,7 +781,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:783: checking for working autoconf" >&5 +echo "configure:785: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -792,7 +794,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:796: checking for working automake" >&5 +echo "configure:798: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -805,7 +807,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:809: checking for working autoheader" >&5 +echo "configure:811: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -818,7 +820,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:822: checking for working makeinfo" >&5 +echo "configure:824: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -885,7 +887,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:889: checking host system type" >&5 +echo "configure:891: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -908,7 +910,7 @@ echo "$ac_t""$host" 1>&6 # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:912: checking for $ac_word" >&5 +echo "configure:914: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -938,7 +940,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:942: checking for $ac_word" >&5 +echo "configure:944: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -968,7 +970,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:972: checking for $ac_word" >&5 +echo "configure:974: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1019,7 +1021,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1023: checking for $ac_word" >&5 +echo "configure:1025: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1051,7 +1053,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1055: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1057: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1062,12 +1064,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1066 "configure" +#line 1068 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1093,12 +1095,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1097: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1099: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1102: checking whether we are using GNU C" >&5 +echo "configure:1104: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1107,7 +1109,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1111: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1113: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1126,7 +1128,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1130: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1132: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1170,7 +1172,7 @@ ac_prog=ld if test "$ac_cv_prog_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1174: checking for ld used by GCC" >&5 +echo "configure:1176: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -1188,10 +1190,10 @@ echo "configure:1174: checking for ld used by GCC" >&5 esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1192: checking for GNU ld" >&5 +echo "configure:1194: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1195: checking for non-GNU ld" >&5 +echo "configure:1197: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1227,7 +1229,7 @@ fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1231: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1233: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1243,7 +1245,7 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1247: checking for BSD-compatible nm" >&5 +echo "configure:1249: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1280,7 +1282,7 @@ echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1284: checking whether ln -s works" >&5 +echo "configure:1286: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1316,8 +1318,8 @@ test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" case "$host" in *-*-irix6*) # Find out which ABI we are using. - echo '#line 1320 "configure"' > conftest.$ac_ext - if { (eval echo configure:1321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 1322 "configure"' > conftest.$ac_ext + if { (eval echo configure:1323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *32-bit*) LD="${LD-ld} -32" @@ -1374,7 +1376,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:1378: checking host system type" >&5 +echo "configure:1380: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -1397,7 +1399,7 @@ echo "$ac_t""$host" 1>&6 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:1401: checking for POSIXized ISC" >&5 +echo "configure:1403: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -1420,7 +1422,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1424: checking for $ac_word" >&5 +echo "configure:1426: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1450,7 +1452,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1454: checking for $ac_word" >&5 +echo "configure:1456: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1501,7 +1503,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1505: checking for $ac_word" >&5 +echo "configure:1507: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1533,7 +1535,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1537: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1539: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1544,12 +1546,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1548 "configure" +#line 1550 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1575,12 +1577,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1579: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1581: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1584: checking whether we are using GNU C" >&5 +echo "configure:1586: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1589,7 +1591,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1593: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1608,7 +1610,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1612: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1614: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1641,7 +1643,7 @@ fi #AC_PROG_RANLIB echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1645: checking whether ln -s works" >&5 +echo "configure:1647: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1662,7 +1664,7 @@ else fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1666: checking how to run the C preprocessor" >&5 +echo "configure:1668: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1677,13 +1679,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1687: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1689: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1694,13 +1696,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1704: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1706: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1711,13 +1713,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1721: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1723: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1743,13 +1745,13 @@ echo "$ac_t""$CPP" 1>&6 if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 -echo "configure:1747: checking whether ${CC-cc} needs -traditional" >&5 +echo "configure:1749: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP @@ -1767,7 +1769,7 @@ rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA @@ -1795,54 +1797,195 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:1800: checking return type of signal handlers" >&5 -if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); +_bindir=`eval echo $bindir` +_bindir=`eval echo $_bindir` + +_libdir=`eval echo $libdir` +_libdir=`eval echo $_libdir` +lib_search_path="-L$_libdir" + +inc_search_path=`eval echo $includedir` +inc_search_path="-I`eval echo $inc_search_path`" + + + + +echo $ac_n "checking for RedHat system""... $ac_c" 1>&6 +echo "configure:1815: checking for RedHat system" >&5 +wm_check_flag='no :)' +if test -f /etc/redhat-release; then + wm_check_flag=yes +fi +echo "$ac_t""$wm_check_flag" 1>&6 + +mins_found=no +bugs_found=no +if test "$wm_check_flag" = yes; then +echo +echo "configure: warning: it seems you are using a system packaged by RedHat. +I will now do some checks for RedHat specific bugs. If some check +fail, please read the INSTALL file regarding RedHat, resolve the +problem and retry to configure." 1>&2 +echo +# +# Check old wmaker from RedHat +# +if test "$prefix" != "/usr/X11R6" -a "$prefix" != "/usr/X11"; then +echo $ac_n "checking for multiple installed wmaker versions""... $ac_c" 1>&6 +echo "configure:1836: checking for multiple installed wmaker versions" >&5 +if test -f /usr/X11R6/bin/wmaker; then +echo "$ac_t""uh oh" 1>&6 +echo "configure: warning: you seem to have an old version of Window Maker +installed at /usr/X11R6/bin. It is recommended that you uninstall +any previously installed packages of WindowMaker before installing +a new one." 1>&2 +mins_found=yes +else +echo "$ac_t""no apparent problems" 1>&6 +fi +fi +# +# Check for infamous en_RN bug +# Wont work because autoconf will change LANG in the beginning of the +# script. + +# +#AC_MSG_CHECKING(for silly en_RN joke that only causes headaches) +#echo $LANG +#if test "x$LANG" = xen_RN; then +#AC_MSG_RESULT(uh oh) +#AC_MSG_WARN([the LANG environment variable is set to the en_RN +#locale. Please unset it or you will have mysterious problems when +#using various software packages.]) +#bugs_found=yes #else -void (*signal ()) (); -#endif +#AC_MSG_RESULT(no problem) +#fi +# +# If binary installation path is /usr/local/bin, check if it's in PATH +# +if test "$_bindir" = "/usr/local/bin"; then +echo $ac_n "checking if /usr/local/bin is in the search PATH""... $ac_c" 1>&6 +echo "configure:1870: checking if /usr/local/bin is in the search PATH" >&5 +wm_check_flag=no +old_IFS="$IFS" +IFS=":" +for i in $PATH; do + if test "x$i" = "x/usr/local/bin"; then + wm_check_flag=yes + break; + fi +done +IFS="$old_IFS" +if test "$wm_check_flag" = no; then +echo "$ac_t""uh oh" 1>&6 +echo "configure: warning: /usr/local/bin is not in the PATH environment variable. +Please resolve the problem." 1>&2 +bugs_found=yes +else +echo "$ac_t""no problem" 1>&6 +fi +fi +# +# If library installation path is /usr/local/lib, +# check if it's in /etc/ld.so.conf +# +if test "$_libdir" = "/usr/local/lib"; then +wm_check_flag=yes +echo $ac_n "checking if /usr/local/lib is in /etc/ld.so.conf""... $ac_c" 1>&6 +echo "configure:1897: checking if /usr/local/lib is in /etc/ld.so.conf" >&5 +test -z "`grep /usr/local/lib /etc/ld.so.conf`" +test "$?" -eq 0 && wm_check_flag=no +if test "$wm_check_flag" = no; then +echo "$ac_t""uh oh" 1>&6 +echo "configure: warning: /usr/local/lib is not in the /etc/ld.so.conf file. +Please add it there." 1>&2 +bugs_found=yes +else +echo "$ac_t""no problem" 1>&6 +fi +fi +# +# Check for symbolic links +# +echo $ac_n "checking for /usr/X11 symbolic link""... $ac_c" 1>&6 +echo "configure:1913: checking for /usr/X11 symbolic link" >&5 +if test -d "/usr/X11"; then +echo "$ac_t""found" 1>&6 +else +echo "$ac_t""uh oh" 1>&6 +echo "configure: warning: Please create a symbolic link from /usr/X11R6 to /usr/X11." 1>&2 +mins_found=yes +fi +echo $ac_n "checking for /usr/include/X11 symbolic link""... $ac_c" 1>&6 +echo "configure:1922: checking for /usr/include/X11 symbolic link" >&5 +if test -d "/usr/include/X11"; then +echo "$ac_t""found" 1>&6 +else +echo "$ac_t""uh oh" 1>&6 +echo "configure: warning: Please create a symbolic link from /usr/X11R6/include/X11 +to /usr/include/X11." 1>&2 +mins_found=yes +fi -int main() { -int i; -; return 0; } -EOF -if { (eval echo configure:1822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_type_signal=void +# +# Check for /lib/cpp +# +echo $ac_n "checking for /lib/cpp""... $ac_c" 1>&6 +echo "configure:1936: checking for /lib/cpp" >&5 +if test -f "/lib/cpp"; then +echo "$ac_t""found" 1>&6 +else +echo "$ac_t""uh oh" 1>&6 +echo "configure: warning: Please create a symbolic link from the cpp (C preprocessor) +program to /lib/cpp" 1>&2 +bugs_found=yes +fi + +if test "x$bugs_found" = xyes; then +{ echo "configure: error: Some bugs that can potentially cause problems during +installation/execution were found. Please correct these problems +and retry later." 1>&2; exit 1; } +exit 1 +elif test "x$mins_found" = xyes; then +echo "configure: warning: Some minor problems that might or might not cause +problems were found. If you have any problems during +installation/execution, please resolve the pointed problems and try +to reinstall." 1>&2 +echo "Press to continue." +read blabla else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_type_signal=int +echo +echo "None of the RedHat problems known to this script were found." +echo fi -rm -f conftest* fi -echo "$ac_t""$ac_cv_type_signal" 1>&6 -cat >> confdefs.h <&6 -echo "configure:1841: checking for vprintf" >&5 +echo "configure:1984: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -1889,12 +2032,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:1893: checking for _doprnt" >&5 +echo "configure:2036: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -1944,19 +2087,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:1948: checking for working alloca.h" >&5 +echo "configure:2091: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:1960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -1977,12 +2120,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:1981: checking for alloca" >&5 +echo "configure:2124: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -2042,12 +2185,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:2046: checking whether alloca needs Cray hooks" >&5 +echo "configure:2189: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2076: checking for $ac_func" >&5 +echo "configure:2219: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2127,7 +2270,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:2131: checking stack direction for C alloca" >&5 +echo "configure:2274: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2135,7 +2278,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -2178,12 +2321,12 @@ fi for ac_func in gethostname select poll strerror strncasecmp setpgid atexit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2182: checking for $ac_func" >&5 +echo "configure:2325: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2235,7 +2378,7 @@ if test "x$CPP_PATH" = x; then # Extract the first word of "cpp", so it can be a program name with args. set dummy cpp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2239: checking for $ac_word" >&5 +echo "configure:2382: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CPP_PATH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2248,7 +2391,7 @@ else ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="/lib /usr/bin /bin /usr/lib /usr/ccs/lib $PATH" + ac_dummy="/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib:$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then @@ -2291,12 +2434,12 @@ EOF echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:2295: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:2438: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2312,7 +2455,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:2316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -2332,22 +2475,57 @@ EOF fi +echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +echo "configure:2480: checking whether time.h and sys/time.h may both be included" >&5 +if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +int main() { +struct tm *tp; +; return 0; } +EOF +if { (eval echo configure:2494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_time=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_time" 1>&6 +if test $ac_cv_header_time = yes; then + cat >> confdefs.h <<\EOF +#define TIME_WITH_SYS_TIME 1 +EOF + +fi + for ac_hdr in fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h\ libintl.h sys/select.h poll.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2341: checking for $ac_hdr" >&5 +echo "configure:2519: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2351: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2377,12 +2555,12 @@ done echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:2381: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:2559: checking for sys_siglist declaration in signal.h or unistd.h" >&5 if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2394,7 +2572,7 @@ int main() { char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:2398: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2576: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -2415,12 +2593,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2419: checking for working const" >&5 +echo "configure:2597: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2489,210 +2667,48 @@ EOF fi -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2494: checking for ANSI C header files" >&5 -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#include -#include -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2507: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - ac_cv_header_stdc=yes -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -if test "$cross_compiling" = yes; then - : -else - cat > conftest.$ac_ext < -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int main () { int i; for (i = 0; i < 256; i++) -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); -exit (0); } - -EOF -if { (eval echo configure:2574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - : -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_header_stdc=no -fi -rm -fr conftest* -fi - -fi -fi - -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:2598: checking for size_t" >&5 -if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then +#AC_TYPE_SIZE_T +#AC_TYPE_PID_T +echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +echo "configure:2674: checking return type of signal handlers" >&5 +if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < -#if STDC_HEADERS -#include -#include +#include +#ifdef signal +#undef signal #endif -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then - rm -rf conftest* - ac_cv_type_size_t=yes -else - rm -rf conftest* - ac_cv_type_size_t=no -fi -rm -f conftest* - -fi -echo "$ac_t""$ac_cv_type_size_t" 1>&6 -if test $ac_cv_type_size_t = no; then - cat >> confdefs.h <<\EOF -#define size_t unsigned -EOF - -fi - -echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:2631: checking for pid_t" >&5 -if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#if STDC_HEADERS -#include -#include +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); #endif -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then - rm -rf conftest* - ac_cv_type_pid_t=yes -else - rm -rf conftest* - ac_cv_type_pid_t=no -fi -rm -f conftest* - -fi -echo "$ac_t""$ac_cv_type_pid_t" 1>&6 -if test $ac_cv_type_pid_t = no; then - cat >> confdefs.h <<\EOF -#define pid_t int -EOF - -fi -echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:2664: checking whether time.h and sys/time.h may both be included" >&5 -if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#include int main() { -struct tm *tp; +int i; ; return 0; } EOF -if { (eval echo configure:2678: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - ac_cv_header_time=yes + ac_cv_type_signal=void else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - ac_cv_header_time=no + ac_cv_type_signal=int fi rm -f conftest* fi -echo "$ac_t""$ac_cv_header_time" 1>&6 -if test $ac_cv_header_time = yes; then - cat >> confdefs.h <<\EOF -#define TIME_WITH_SYS_TIME 1 +echo "$ac_t""$ac_cv_type_signal" 1>&6 +cat >> confdefs.h <&6 -echo "configure:2709: checking for gettext" >&5 +echo "configure:2725: checking for gettext" >&5 if eval "test \"`echo '$''{'ac_cv_func_gettext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gettext=yes" else @@ -2751,7 +2767,7 @@ if eval "test \"`echo '$ac_cv_func_'gettext`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:2755: checking for gettext in -lintl" >&5 +echo "configure:2771: checking for gettext in -lintl" >&5 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2759,7 +2775,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2797,7 +2813,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2801: checking for $ac_word" >&5 +echo "configure:2817: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2860,8 +2876,8 @@ fi -supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el pl ro dk" -supported_wprefs_locales="pt hr fr ko ja cs" +supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el pl ro dk zh_TW.Big5" +supported_wprefs_locales="pt hr fr ko ja cs zh_TW.Big5" for lang in $LINGUAS; do ok=0 @@ -2903,7 +2919,7 @@ if test "$enable_kanji" = yes; then case $host_os in freebsd*) echo $ac_n "checking for setlocale in -lxpg4""... $ac_c" 1>&6 -echo "configure:2907: checking for setlocale in -lxpg4" >&5 +echo "configure:2923: checking for setlocale in -lxpg4" >&5 ac_lib_var=`echo xpg4'_'setlocale | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2911,7 +2927,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lxpg4 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2952,14 +2968,6 @@ EOF fi -# Check whether --enable-modelock or --disable-modelock was given. -if test "${enable_modelock+set}" = set; then - enableval="$enable_modelock" - X_CFLAGS="$X_CFLAGS -DXKB_MODELOCK" -fi - - - # Check whether --with-nlsdir or --without-nlsdir was given. if test "${with_nlsdir+set}" = set; then @@ -2968,19 +2976,15 @@ if test "${with_nlsdir+set}" = set; then fi + if test "x$NLSDIR" = "x"; then if test "x$with_nlsdir" != "x"; then NLSDIR=$with_nlsdir else - NLSDIR=`eval echo $prefix/lib/locale` + NLSDIR='$(prefix)/lib/locale' fi fi -cat >> confdefs.h <&6 -echo "configure:3058: checking for X" >&5 +echo "configure:3062: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -3116,12 +3120,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3190,14 +3194,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -3303,17 +3307,17 @@ else case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:3307: checking whether -R must be followed by a space" >&5 +echo "configure:3311: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -3329,14 +3333,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -3368,7 +3372,7 @@ rm -f conftest* # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:3372: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:3376: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3376,7 +3380,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3409,7 +3413,7 @@ fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:3413: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:3417: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3417,7 +3421,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3457,12 +3461,12 @@ fi # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:3461: checking for gethostbyname" >&5 +echo "configure:3465: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -3506,7 +3510,7 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:3510: checking for gethostbyname in -lnsl" >&5 +echo "configure:3514: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3514,7 +3518,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3555,12 +3559,12 @@ fi # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:3559: checking for connect" >&5 +echo "configure:3563: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -3604,7 +3608,7 @@ fi if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:3608: checking for connect in -lsocket" >&5 +echo "configure:3612: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3612,7 +3616,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3647,12 +3651,12 @@ fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:3651: checking for remove" >&5 +echo "configure:3655: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -3696,7 +3700,7 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:3700: checking for remove in -lposix" >&5 +echo "configure:3704: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3704,7 +3708,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3739,12 +3743,12 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:3743: checking for shmat" >&5 +echo "configure:3747: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -3788,7 +3792,7 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:3792: checking for shmat in -lipc" >&5 +echo "configure:3796: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3796,7 +3800,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3840,7 +3844,7 @@ fi # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:3844: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:3848: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3848,7 +3852,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3888,7 +3892,12 @@ XCFLAGS="$X_CFLAGS" XLFLAGS="$X_LIBS" -XLIBS="$X_EXTRA_LIBS -lX11" +XLIBS="-lX11 $X_EXTRA_LIBS" + + +lib_search_path="$lib_search_path $XLFLAGS" +inc_search_path="$inc_search_path $XCFLAGS" + use_locale=yes # Check whether --enable-locale or --disable-locale was given. @@ -3900,7 +3909,7 @@ fi if test "$use_locale" = yes; then echo $ac_n "checking for _Xsetlocale in -lX11""... $ac_c" 1>&6 -echo "configure:3904: checking for _Xsetlocale in -lX11" >&5 +echo "configure:3913: checking for _Xsetlocale in -lX11" >&5 ac_lib_var=`echo X11'_'_Xsetlocale | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3908,7 +3917,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lX11 $XLFLAGS $XLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3945,6 +3954,15 @@ fi fi +# Check whether --enable-modelock or --disable-modelock was given. +if test "${enable_modelock+set}" = set; then + enableval="$enable_modelock" + X_CFLAGS="$X_CFLAGS -DXKB_MODELOCK" +fi + + + + shape=yes # Check whether --enable-shape or --disable-shape was given. if test "${enable_shape+set}" = set; then @@ -3959,7 +3977,7 @@ added_xext=no if test "$shape" = yes; then echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:3963: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:3981: checking for XShapeSelectInput in -lXext" >&5 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3967,7 +3985,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXext $XLFLAGS $XLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4019,7 +4037,7 @@ fi if test "$shm" = yes; then echo $ac_n "checking for XShmAttach in -lXext""... $ac_c" 1>&6 -echo "configure:4023: checking for XShmAttach in -lXext" >&5 +echo "configure:4041: checking for XShmAttach in -lXext" >&5 ac_lib_var=`echo Xext'_'XShmAttach | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4027,7 +4045,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXext $XLFLAGS $XLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4062,12 +4080,12 @@ fi if test "$ok" = yes; then echo $ac_n "checking for shmget""... $ac_c" 1>&6 -echo "configure:4066: checking for shmget" >&5 +echo "configure:4084: checking for shmget" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmget'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmget=yes" else @@ -4133,18 +4151,21 @@ fi -lPL="" LIBPL="" + + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" echo $ac_n "checking for PLGetString in -lPropList""... $ac_c" 1>&6 -echo "configure:4140: checking for PLGetString in -lPropList" >&5 +echo "configure:4161: checking for PLGetString in -lPropList" >&5 ac_lib_var=`echo PropList'_'PLGetString | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lPropList $XLFLAGS $XLIBS $LIBS" +LIBS="-lPropList $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4170,29 +4191,31 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - lPL=yes + yes=yes else echo "$ac_t""no" 1>&6 -lPL=no +no=no fi +LDFLAGS="$LDFLAGS_old" -if test "$lPL" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $XCFLAGS" - ac_safe=`echo "proplist.h" | sed 'y%./+-%__p_%'` +if test "x$ac_cv_lib_PropList_PLGetString" = xyes; then + +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $inc_search_path" +ac_safe=`echo "proplist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for proplist.h""... $ac_c" 1>&6 -echo "configure:4186: checking for proplist.h" >&5 +echo "configure:4209: checking for proplist.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4196: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4208,13 +4231,16 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIBPL="-lPropList" + : else echo "$ac_t""no" 1>&6 -LIBPL="" fi - CPPFLAGS=$my_old_cppflags +CPPFLAGS="$CPPFLAGS_old" + + if test "x$ac_cv_header_proplist_h" = xyes; then + LIBPL="-lPropList" + fi fi if test "x$LIBPL" = "x"; then @@ -4223,7 +4249,13 @@ if test "x$LIBPL" = "x"; then echo " Window Maker requires libPropList to build." echo " Please read INSTALL to find where you can find libPropList," echo " and install it first." - echo + echo " If you already have it installed, try using the" + if test "x$ac_cv_lib_PropList_PLGetString" != xyes; then + echo " --with-libs-from flag to tell configure where the library" + echo " is installed and" + fi + echo " --with-incs-from flag to tell configure where the header" + echo " files are installed" exit 1 fi @@ -4233,25 +4265,6 @@ fi -GFXLIBS="" -# Check whether --with-gfx-libs or --without-gfx-libs was given. -if test "${with_gfx_libs+set}" = set; then - withval="$with_gfx_libs" - GFXLFLAGS=$withval -else - GFXLFLAGS="" -fi - - -# Check whether --with-gfx-incs or --without-gfx-incs was given. -if test "${with_gfx_incs+set}" = set; then - withval="$with_gfx_incs" - GFXFLAGS="$withval" GFX_INC_PATH=$withval -else - GFXFLAGS="" GFX_INC_PATH="" -fi - - @@ -4266,16 +4279,19 @@ fi if test "$xpm" = yes; then - echo $ac_n "checking for XpmCreatePixmapFromData in -lXpm""... $ac_c" 1>&6 -echo "configure:4271: checking for XpmCreatePixmapFromData in -lXpm" >&5 + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for XpmCreatePixmapFromData in -lXpm""... $ac_c" 1>&6 +echo "configure:4287: checking for XpmCreatePixmapFromData in -lXpm" >&5 ac_lib_var=`echo Xpm'_'XpmCreatePixmapFromData | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lXpm $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $LIBS" +LIBS="-lXpm $XLFLAGS $XLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4301,29 +4317,32 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes + yes=yes else echo "$ac_t""no" 1>&6 -my_libok=no +no=no fi +LDFLAGS="$LDFLAGS_old" + - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - ac_safe=`echo "X11/xpm.h" | sed 'y%./+-%__p_%'` + if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then + +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $inc_search_path" +ac_safe=`echo "X11/xpm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/xpm.h""... $ac_c" 1>&6 -echo "configure:4317: checking for X11/xpm.h" >&5 +echo "configure:4336: checking for X11/xpm.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4327: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4346: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4339,24 +4358,29 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - GFXLIBS="$GFXLIBS -lXpm" - supported_gfx="XPM" - cat >> confdefs.h <<\EOF -#define USE_XPM 1 -EOF - + : else echo "$ac_t""no" 1>&6 -supported_gfx="XPM (builtin)" fi - CPPFLAGS=$my_old_cppflags - fi -fi +CPPFLAGS="$CPPFLAGS_old" + if test "x$ac_cv_header_X11_xpm_h" = xyes; then + GFXLIBS="$GFXLIBS -lXpm" + supported_gfx="XPM" + cat >> confdefs.h <<\EOF +#define USE_XPM 1 +EOF + else + supported_gfx="builtin-XPM" + fi + fi +fi +# for wmlib +# for test @@ -4376,16 +4400,19 @@ fi if test "$png" = yes ; then - echo $ac_n "checking for png_get_valid in -lpng""... $ac_c" 1>&6 -echo "configure:4381: checking for png_get_valid in -lpng" >&5 + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for png_get_valid in -lpng""... $ac_c" 1>&6 +echo "configure:4408: checking for png_get_valid in -lpng" >&5 ac_lib_var=`echo png'_'png_get_valid | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lpng $GFX_INC_PATH $GFXLFLAGS $XLFLAGS -lz -lm $LIBS" +LIBS="-lpng -lz -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4411,29 +4438,32 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes + yes=yes else echo "$ac_t""no" 1>&6 -my_libok=no +no=no fi +LDFLAGS="$LDFLAGS_old" - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` + + if test "x$ac_cv_lib_png_png_get_valid" = xyes; then + +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $inc_search_path" +ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for png.h""... $ac_c" 1>&6 -echo "configure:4427: checking for png.h" >&5 +echo "configure:4457: checking for png.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4437: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4449,17 +4479,21 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - GFXLIBS="$GFXLIBS -lpng -lz" - supported_gfx="$supported_gfx PNG" - cat >> confdefs.h <<\EOF -#define USE_PNG 1 -EOF - + : else echo "$ac_t""no" 1>&6 fi - CPPFLAGS=$my_old_cppflags +CPPFLAGS="$CPPFLAGS_old" + + if test "x$ac_cv_header_png_h" = xyes; then + GFXLIBS="$GFXLIBS -lpng -lz" + supported_gfx="$supported_gfx PNG" + cat >> confdefs.h <<\EOF +#define USE_PNG 1 +EOF + + fi fi fi @@ -4475,16 +4509,19 @@ fi if test "$jpeg" = yes; then - echo $ac_n "checking for jpeg_destroy_compress in -ljpeg""... $ac_c" 1>&6 -echo "configure:4480: checking for jpeg_destroy_compress in -ljpeg" >&5 + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for jpeg_destroy_compress in -ljpeg""... $ac_c" 1>&6 +echo "configure:4517: checking for jpeg_destroy_compress in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'jpeg_destroy_compress | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-ljpeg $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $LIBS" +LIBS="-ljpeg $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4510,41 +4547,62 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes + yes=yes else echo "$ac_t""no" 1>&6 -my_libok=no +no=no fi +LDFLAGS="$LDFLAGS_old" - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - cat > conftest.$ac_ext <&6 +echo "configure:4566: checking for jpeglib.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4576: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* - GFXLIBS="$GFXLIBS -ljpeg" - supported_gfx="$supported_gfx JPEG" - cat >> confdefs.h <<\EOF -#define USE_JPEG 1 -EOF - + eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - jpeg_not_found=yes + eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* - CPPFLAGS=$my_old_cppflags +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + +CPPFLAGS="$CPPFLAGS_old" + + if test "x$ac_cv_header_jpeglib_h" = xyes; then + GFXLIBS="$GFXLIBS -ljpeg" + supported_gfx="$supported_gfx JPEG" + cat >> confdefs.h <<\EOF +#define USE_JPEG 1 +EOF + + fi fi fi @@ -4560,17 +4618,20 @@ fi if test "$gif" = yes; then - retry=no - echo $ac_n "checking for DGifOpenFileName in -lungif""... $ac_c" 1>&6 -echo "configure:4566: checking for DGifOpenFileName in -lungif" >&5 + my_libname="" + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for DGifOpenFileName in -lungif""... $ac_c" 1>&6 +echo "configure:4627: checking for DGifOpenFileName in -lungif" >&5 ac_lib_var=`echo ungif'_'DGifOpenFileName | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lungif $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $LIBS" +LIBS="-lungif $XLFLAGS $XLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4646: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4596,23 +4657,31 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes my_libname=ungif + yes=yes else echo "$ac_t""no" 1>&6 -retry=yes my_libok=no +no=no fi - if test "$retry" = yes; then - echo $ac_n "checking for DGifOpenFileName in -lgif""... $ac_c" 1>&6 -echo "configure:4608: checking for DGifOpenFileName in -lgif" >&5 +LDFLAGS="$LDFLAGS_old" + + if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then + my_libname=ungif + fi + if test "x$my_libname" = x; then + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for DGifOpenFileName in -lgif""... $ac_c" 1>&6 +echo "configure:4677: checking for DGifOpenFileName in -lgif" >&5 ac_lib_var=`echo gif'_'DGifOpenFileName | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lgif $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $LIBS" +LIBS="-lgif $XLFLAGS $XLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4638,30 +4707,36 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes my_libname=gif + yes=yes else echo "$ac_t""no" 1>&6 -my_libok=no +no=no fi - fi +LDFLAGS="$LDFLAGS_old" + + if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then + my_libname=gif + fi + fi + + if test "$my_libname" != x; then - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - ac_safe=`echo "gif_lib.h" | sed 'y%./+-%__p_%'` +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $inc_search_path" +ac_safe=`echo "gif_lib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for gif_lib.h""... $ac_c" 1>&6 -echo "configure:4655: checking for gif_lib.h" >&5 +echo "configure:4730: checking for gif_lib.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4665: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4740: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4677,17 +4752,21 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - GFXLIBS="$GFXLIBS -l$my_libname" - supported_gfx="$supported_gfx GIF" - cat >> confdefs.h <<\EOF -#define USE_GIF 1 -EOF - + : else echo "$ac_t""no" 1>&6 fi - CPPFLAGS=$my_old_cppflags +CPPFLAGS="$CPPFLAGS_old" + + if test "x$ac_cv_header_gif_lib_h" = xyes; then + GFXLIBS="$GFXLIBS -l$my_libname" + supported_gfx="$supported_gfx GIF" + cat >> confdefs.h <<\EOF +#define USE_GIF 1 +EOF + + fi fi fi @@ -4714,16 +4793,19 @@ ICONEXT="xpm" if test "$tif" = yes; then my_libname="" - echo $ac_n "checking for TIFFGetVersion in -ltiff""... $ac_c" 1>&6 -echo "configure:4719: checking for TIFFGetVersion in -ltiff" >&5 + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for TIFFGetVersion in -ltiff""... $ac_c" 1>&6 +echo "configure:4801: checking for TIFFGetVersion in -ltiff" >&5 ac_lib_var=`echo tiff'_'TIFFGetVersion | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-ltiff $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $GFXLIBS -lm $LIBS" +LIBS="-ltiff -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4749,24 +4831,32 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes my_libname="-ltiff" + yes=yes else echo "$ac_t""no" 1>&6 -my_libok=no +no=no fi +LDFLAGS="$LDFLAGS_old" + + if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then + my_libname="-ltiff" + fi unset ac_cv_lib_tiff_TIFFGetVersion - if test "$my_libok" = no; then - echo $ac_n "checking for TIFFGetVersion in -ltiff""... $ac_c" 1>&6 -echo "configure:4762: checking for TIFFGetVersion in -ltiff" >&5 + if test "x$my_libname" = x; then + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for TIFFGetVersion in -ltiff""... $ac_c" 1>&6 +echo "configure:4852: checking for TIFFGetVersion in -ltiff" >&5 ac_lib_var=`echo tiff'_'TIFFGetVersion | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-ltiff $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $GFXLIBS -lz -lm $LIBS" +LIBS="-ltiff -lz -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4792,25 +4882,33 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes my_libname="-ltiff -lz" + yes=yes else echo "$ac_t""no" 1>&6 -my_libok=no +no=no fi +LDFLAGS="$LDFLAGS_old" + + if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then + my_libname="-ltiff -lz" + fi fi - - if test "$my_libok" = no; then - echo $ac_n "checking for TIFFGetVersion in -ltiff34""... $ac_c" 1>&6 -echo "configure:4806: checking for TIFFGetVersion in -ltiff34" >&5 + + if test "x$my_libname" = x; then + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for TIFFGetVersion in -ltiff34""... $ac_c" 1>&6 +echo "configure:4904: checking for TIFFGetVersion in -ltiff34" >&5 ac_lib_var=`echo tiff34'_'TIFFGetVersion | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-ltiff34 $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $GFXLIBS -lm $LIBS" +LIBS="-ltiff34 -lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4836,30 +4934,91 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - my_libok=yes my_libname="-ltiff34" + yes=yes else echo "$ac_t""no" 1>&6 -my_libok=no +no=no fi +LDFLAGS="$LDFLAGS_old" + + if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then + my_libname="-ltiff34" + fi fi - - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'` + +# +# why the heck does debian name libtiff this way!? +# + if test "x$my_libname" = x; then + +LDFLAGS_old="$LDFLAGS" +LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path" +echo $ac_n "checking for TIFFGetVersion in -ltiff3g""... $ac_c" 1>&6 +echo "configure:4959: checking for TIFFGetVersion in -ltiff3g" >&5 +ac_lib_var=`echo tiff3g'_'TIFFGetVersion | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ltiff3g -lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + yes=yes +else + echo "$ac_t""no" 1>&6 +no=no +fi + +LDFLAGS="$LDFLAGS_old" + + if test "x$ac_cv_lib_tiff3g_TIFFGetVersion" = xyes; then + my_libname="-ltiff3g" + fi + fi + + if test "x$my_libname" != x; then + +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $inc_search_path" +ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6 -echo "configure:4853: checking for tiffio.h" >&5 +echo "configure:5012: checking for tiffio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5022: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4875,21 +5034,28 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - GFXLIBS="$my_libname $GFXLIBS" - ICONEXT="tiff" - supported_gfx="$supported_gfx TIFF" - cat >> confdefs.h <<\EOF -#define USE_TIFF 1 -EOF - + : else echo "$ac_t""no" 1>&6 fi - CPPFLAGS=$my_old_cppflags +CPPFLAGS="$CPPFLAGS_old" + + if test "x$ac_cv_header_tiffio_h" = xyes; then + GFXLIBS="$my_libname $GFXLIBS" + ICONEXT="tiff" + supported_gfx="$supported_gfx TIFF" + cat >> confdefs.h <<\EOF +#define USE_TIFF 1 +EOF + + fi fi fi +LIBRARY_SEARCH_PATH="$lib_search_path" +HEADER_SEARCH_PATH="$inc_search_path" + @@ -4961,6 +5127,12 @@ cat >> confdefs.h <> confdefs.h <get-wraster-flags prefix="$prefix" exec_prefix=\$prefix -WCFLAGS="-I\$prefix/include $XCFLAGS $GFXFLAGS" -WLFLAGS="-L\$exec_prefix/lib $XLFLAGS $GFXLFLAGS" +WCFLAGS="-I\$prefix/include $inc_search_path" +WLFLAGS="-L\$exec_prefix/lib $lib_search_path" WLIBS="-lwraster $GFXLIBS $XLIBS -lm" usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--lflags#rp# #lp#--libs#rp#" @@ -5476,7 +5648,7 @@ rm -f get-wraster-flags -supported_gfx="$supported_gfx PPM (built-in)" +supported_gfx="$supported_gfx builtin-PPM" if test "x$MOFILES" = "x"; then mof=none @@ -5489,7 +5661,7 @@ echo echo "Window Maker was configured as follows:" echo echo "Installation path prefix: $prefix" -echo "Installation path prefix for binaries: $exec_prefix" | sed -e 's|\${prefix}|'"$prefix|" +echo "Installation path prefix for binaries: $_bindir" echo "Installation path for WPrefs.app: $wprefsdir" | sed -e 's|\$(prefix)|'"$prefix|" echo "Graphic format libraries: $supported_gfx" echo "Sound support: $sound" @@ -5499,7 +5671,7 @@ if test "x$MOFILES" != "x"; then fi -if test "$jpeg_not_found" = yes; then +if test "x$ac_cv_header_jpeglib_h" != xyes; then echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING" echo echo "JPEG support will not be included because the JPEG library is" diff --git a/configure.in b/configure.in index 5cbeaa3a..b846dd23 100644 --- a/configure.in +++ b/configure.in @@ -4,13 +4,13 @@ dnl dnl Process with: aclocal; autoconf; automake dnl dnl -dnl Shared library generation stuff taken from configure script from zlib -dnl AC_INIT(src/WindowMaker.h) -AM_INIT_AUTOMAKE(WindowMaker, 0.51.0) + + +AM_INIT_AUTOMAKE(WindowMaker, 0.51.1) AM_PROG_LIBTOOL @@ -59,18 +59,48 @@ dnl Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' +_bindir=`eval echo $bindir` +_bindir=`eval echo $_bindir` + +_libdir=`eval echo $libdir` +_libdir=`eval echo $_libdir` +lib_search_path="-L$_libdir" + +inc_search_path=`eval echo $includedir` +inc_search_path="-I`eval echo $inc_search_path`" + + +dnl +dnl Check for RedHat bugs +dnl ===================== + +WM_CHECK_REDCRAP_BUGS($prefix,$_bindir,$_libdir) + + +dnl +dnl Specify paths to look for libraries and headers +dnl =============================================== +AC_ARG_WITH(libs-from, +[ --with-libs-from pass compiler flags to look for libraries], + [lib_search_path="$withval $lib_search_path"]) + +AC_ARG_WITH(incs-from, +[ --with-incs-from pass compiler flags to look for header files], + [inc_search_path="$withval $inc_search_path"]) + + + dnl Checks for library functions. dnl ============================ dnl not used anywhere dnl AC_FUNC_MEMCMP -AC_TYPE_SIGNAL AC_FUNC_VPRINTF AC_FUNC_ALLOCA AC_CHECK_FUNCS(gethostname select poll strerror strncasecmp setpgid atexit) if test "x$CPP_PATH" = x; then - AC_PATH_PROG(CPP_PATH, cpp, notfound, - [/lib /usr/bin /bin /usr/lib /usr/ccs/lib $PATH]) + AC_PATH_PROG(CPP_PATH, cpp, notfound, + /lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib:$PATH) fi dnl @@ -99,6 +129,7 @@ dnl Checks for header files. dnl ======================= dnl AC_HEADER_STDC AC_HEADER_SYS_WAIT +AC_HEADER_TIME AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h\ libintl.h sys/select.h poll.h) @@ -108,9 +139,9 @@ dnl Checks for typedefs, structures, and compiler characteristics. dnl ============================================================== AC_DECL_SYS_SIGLIST AC_C_CONST -AC_TYPE_SIZE_T -AC_TYPE_PID_T -AC_HEADER_TIME +#AC_TYPE_SIZE_T +#AC_TYPE_PID_T +AC_TYPE_SIGNAL dnl gettext @@ -167,8 +198,8 @@ dnl ================== dnl List of supported locales dnl ------------------------- -supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el pl ro dk" -supported_wprefs_locales="pt hr fr ko ja cs" +supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el pl ro dk zh_TW.Big5" +supported_wprefs_locales="pt hr fr ko ja cs zh_TW.Big5" for lang in $LINGUAS; do ok=0 @@ -214,29 +245,21 @@ if test "$enable_kanji" = yes; then fi -dnl XKB keyboard language status -dnl ============================ -AC_ARG_ENABLE(modelock, -[ --enable-modelock XKB keyboard language status support], - X_CFLAGS="$X_CFLAGS -DXKB_MODELOCK",) - - dnl Added by Oliver - Support for NLSDIR option, Hi Oliver! dnl =========================================== AC_ARG_WITH(nlsdir, [ --with-nlsdir=PATH specify where the locale stuff should go ]) + if test "x$NLSDIR" = "x"; then if test "x$with_nlsdir" != "x"; then NLSDIR=$with_nlsdir else - NLSDIR=`eval echo $prefix/lib/locale` + NLSDIR='$(prefix)/lib/locale' fi fi -AC_DEFINE_UNQUOTED(NLSDIR, "$NLSDIR") - AC_SUBST(INTLIBS) AC_SUBST(NLSDIR) AC_SUBST(MOFILES) @@ -295,7 +318,12 @@ XCFLAGS="$X_CFLAGS" XLFLAGS="$X_LIBS" -XLIBS="$X_EXTRA_LIBS -lX11" +XLIBS="-lX11 $X_EXTRA_LIBS" + + +lib_search_path="$lib_search_path $XLFLAGS" +inc_search_path="$inc_search_path $XCFLAGS" + dnl Decide which locale function to use, setlocale() or _Xsetlocale() dnl by MANOME Tomonori @@ -310,6 +338,14 @@ if test "$use_locale" = yes; then fi +dnl XKB keyboard language status +dnl ============================ +AC_ARG_ENABLE(modelock, +[ --enable-modelock XKB keyboard language status support], + X_CFLAGS="$X_CFLAGS -DXKB_MODELOCK",) + + + dnl Shape support dnl ============= shape=yes @@ -362,15 +398,14 @@ dnl =================================== dnl Check for libPropList dnl ===================== -lPL="" LIBPL="" -AC_CHECK_LIB(PropList, PLGetString, lPL=yes, lPL=no, $XLFLAGS $XLIBS) -if test "$lPL" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $XCFLAGS" - AC_CHECK_HEADER(proplist.h, LIBPL="-lPropList", LIBPL="") - CPPFLAGS=$my_old_cppflags +WM_CHECK_LIB(PropList, PLGetString, $X_EXTRA_LIBS) +if test "x$ac_cv_lib_PropList_PLGetString" = xyes; then + WM_CHECK_HEADER(proplist.h) + if test "x$ac_cv_header_proplist_h" = xyes; then + LIBPL="-lPropList" + fi fi if test "x$LIBPL" = "x"; then @@ -379,7 +414,13 @@ if test "x$LIBPL" = "x"; then echo " Window Maker requires libPropList to build." echo " Please read INSTALL to find where you can find libPropList," echo " and install it first." - echo + echo " If you already have it installed, try using the" + if test "x$ac_cv_lib_PropList_PLGetString" != xyes; then + echo " --with-libs-from flag to tell configure where the library" + echo " is installed and" + fi + echo " --with-incs-from flag to tell configure where the header" + echo " files are installed" exit 1 fi @@ -392,19 +433,6 @@ dnl Graphic Format Libraries dnl ============================================== -dnl -dnl Specify paths to look for graphic format libraries -dnl ================================================== -GFXLIBS="" -AC_ARG_WITH(gfx-libs, -[ --with-gfx-libs pass compiler flags to look for gfx libraries], - [GFXLFLAGS=$withval], [GFXLFLAGS=""]) - -AC_ARG_WITH(gfx-incs, -[ --with-gfx-incs pass compiler flags to look for gfx header files], - [GFXFLAGS="$withval" GFX_INC_PATH=$withval], - [GFXFLAGS="" GFX_INC_PATH=""]) - @@ -416,26 +444,25 @@ AC_ARG_ENABLE(xpm, xpm=$enableval, xpm=yes) if test "$xpm" = yes; then - AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, - my_libok=yes, my_libok=no, - $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS) - - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - AC_CHECK_HEADER(X11/xpm.h, - [GFXLIBS="$GFXLIBS -lXpm" - supported_gfx="XPM" - AC_DEFINE(USE_XPM)], supported_gfx="XPM (builtin)") - CPPFLAGS=$my_old_cppflags + WM_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS]) + + if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then + WM_CHECK_HEADER(X11/xpm.h) + if test "x$ac_cv_header_X11_xpm_h" = xyes; then + GFXLIBS="$GFXLIBS -lXpm" + supported_gfx="XPM" + AC_DEFINE(USE_XPM) + else + supported_gfx="builtin-XPM" + fi fi fi - - -AC_SUBST(XLIBS) +# for wmlib AC_SUBST(XCFLAGS) +# for test AC_SUBST(XLFLAGS) +AC_SUBST(XLIBS) AC_SUBST(X_EXTRA_LIBS) @@ -453,17 +480,15 @@ AC_ARG_ENABLE(png, if test "$png" = yes ; then - AC_CHECK_LIB(png, png_get_valid, my_libok=yes, my_libok=no, - $GFX_INC_PATH $GFXLFLAGS $XLFLAGS -lz -lm) - - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - AC_CHECK_HEADER(png.h, - [GFXLIBS="$GFXLIBS -lpng -lz" - supported_gfx="$supported_gfx PNG" - AC_DEFINE(USE_PNG)], ) - CPPFLAGS=$my_old_cppflags + WM_CHECK_LIB(png, png_get_valid, [-lz -lm]) + + if test "x$ac_cv_lib_png_png_get_valid" = xyes; then + WM_CHECK_HEADER(png.h) + if test "x$ac_cv_header_png_h" = xyes; then + GFXLIBS="$GFXLIBS -lpng -lz" + supported_gfx="$supported_gfx PNG" + AC_DEFINE(USE_PNG) + fi fi fi @@ -476,55 +501,49 @@ AC_ARG_ENABLE(jpeg, jpeg=$enableval, jpeg=yes, jpeg=no) if test "$jpeg" = yes; then - AC_CHECK_LIB(jpeg, jpeg_destroy_compress, my_libok=yes, my_libok=no, - $GFX_INC_PATH $GFXLFLAGS $XLFLAGS) - - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - AC_TRY_CPP(jpeglib.h, - [GFXLIBS="$GFXLIBS -ljpeg" - supported_gfx="$supported_gfx JPEG" - AC_DEFINE(USE_JPEG)], jpeg_not_found=yes) - CPPFLAGS=$my_old_cppflags + WM_CHECK_LIB(jpeg, jpeg_destroy_compress) + + if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then + WM_CHECK_HEADER(jpeglib.h) + if test "x$ac_cv_header_jpeglib_h" = xyes; then + GFXLIBS="$GFXLIBS -ljpeg" + supported_gfx="$supported_gfx JPEG" + AC_DEFINE(USE_JPEG) + fi fi fi dnl GIF Support dnl ============ -dnl -dnl giflib uses dangerous function naming... (namespace clashing) -dnl gif=yes AC_ARG_ENABLE(gif, [ --disable-gif disable GIF support through libgif or libungif], gif=$enableval, gif=yes, gif=no) if test "$gif" = yes; then - retry=no - AC_CHECK_LIB(ungif, DGifOpenFileName, - [my_libok=yes my_libname=ungif], - [retry=yes my_libok=no], - $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS) + my_libname="" + WM_CHECK_LIB(ungif, DGifOpenFileName, [$XLFLAGS $XLIBS]) + if test "x$ac_cv_lib_ungif_DGifOpenFileName" = xyes; then + my_libname=ungif + fi dnl dnl libungif is the same thing as libgif for all practical purposes. dnl - if test "$retry" = yes; then - AC_CHECK_LIB(gif, DGifOpenFileName, - [my_libok=yes my_libname=gif], - my_libok=no, - $GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS) + if test "x$my_libname" = x; then + WM_CHECK_LIB(gif, DGifOpenFileName, [$XLFLAGS $XLIBS]) + if test "x$ac_cv_lib_gif_DGifOpenFileName" = xyes; then + my_libname=gif + fi + fi + + if test "$my_libname" != x; then + WM_CHECK_HEADER(gif_lib.h) + if test "x$ac_cv_header_gif_lib_h" = xyes; then + GFXLIBS="$GFXLIBS -l$my_libname" + supported_gfx="$supported_gfx GIF" + AC_DEFINE(USE_GIF) fi - - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - AC_CHECK_HEADER(gif_lib.h, - [GFXLIBS="$GFXLIBS -l$my_libname" - supported_gfx="$supported_gfx GIF" - AC_DEFINE(USE_GIF)], ) - CPPFLAGS=$my_old_cppflags fi fi @@ -548,41 +567,56 @@ ICONEXT="xpm" if test "$tif" = yes; then my_libname="" - AC_CHECK_LIB(tiff, TIFFGetVersion, - [my_libok=yes my_libname="-ltiff"], my_libok=no, - [$GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $GFXLIBS -lm]) + WM_CHECK_LIB(tiff, TIFFGetVersion, [-lm]) + if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then + my_libname="-ltiff" + fi dnl dnl Retry with zlib dnl unset ac_cv_lib_tiff_TIFFGetVersion - if test "$my_libok" = no; then - AC_CHECK_LIB(tiff, TIFFGetVersion, - [my_libok=yes my_libname="-ltiff -lz"], my_libok=no, - [$GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $GFXLIBS -lz -lm]) + if test "x$my_libname" = x; then + WM_CHECK_LIB(tiff, TIFFGetVersion, [-lz -lm]) + if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then + my_libname="-ltiff -lz" + fi + fi + + if test "x$my_libname" = x; then + WM_CHECK_LIB(tiff34, TIFFGetVersion, [-lm]) + if test "x$ac_cv_lib_tiff34_TIFFGetVersion" = xyes; then + my_libname="-ltiff34" + fi fi - - if test "$my_libok" = no; then - AC_CHECK_LIB(tiff34, TIFFGetVersion, - [my_libok=yes my_libname="-ltiff34"], my_libok=no, - [$GFX_INC_PATH $GFXLFLAGS $XLFLAGS $XLIBS $GFXLIBS -lm]) + +# +# why the heck does debian name libtiff this way!? +# + if test "x$my_libname" = x; then + WM_CHECK_LIB(tiff3g, TIFFGetVersion, [-lm]) + if test "x$ac_cv_lib_tiff3g_TIFFGetVersion" = xyes; then + my_libname="-ltiff3g" + fi fi - - if test "$my_libok" = yes; then - my_old_cppflags=$CPPFLAGS - CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS" - AC_CHECK_HEADER(tiffio.h, - [GFXLIBS="$my_libname $GFXLIBS" - ICONEXT="tiff" - supported_gfx="$supported_gfx TIFF" - AC_DEFINE(USE_TIFF)], ) - CPPFLAGS=$my_old_cppflags + + if test "x$my_libname" != x; then + WM_CHECK_HEADER(tiffio.h) + if test "x$ac_cv_header_tiffio_h" = xyes; then + GFXLIBS="$my_libname $GFXLIBS" + ICONEXT="tiff" + supported_gfx="$supported_gfx TIFF" + AC_DEFINE(USE_TIFF) + fi fi fi +LIBRARY_SEARCH_PATH="$lib_search_path" +HEADER_SEARCH_PATH="$inc_search_path" + +AC_SUBST(LIBRARY_SEARCH_PATH) +AC_SUBST(HEADER_SEARCH_PATH) -AC_SUBST(GFXFLAGS) -AC_SUBST(GFXLFLAGS) AC_SUBST(GFXLIBS) AC_SUBST(ICONEXT) @@ -635,6 +669,9 @@ AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir") pkgdatadir=`eval echo $datadir` AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker") +sysconfdir=`eval echo $sysconfdir` +AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir/WindowMaker") + dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app dnl ============================================== @@ -729,8 +766,8 @@ cat <get-wraster-flags prefix="$prefix" exec_prefix=\$prefix -WCFLAGS="-I\$prefix/include $XCFLAGS $GFXFLAGS" -WLFLAGS="-L\$exec_prefix/lib $XLFLAGS $GFXLFLAGS" +WCFLAGS="-I\$prefix/include $inc_search_path" +WLFLAGS="-L\$exec_prefix/lib $lib_search_path" WLIBS="-lwraster $GFXLIBS $XLIBS -lm" usage="Usage: get-wraster-flags #lp#--cflags#rp# #lp#--lflags#rp# #lp#--libs#rp#" @@ -772,7 +809,7 @@ dnl dnl Spit out the configuration dnl ========================== -supported_gfx="$supported_gfx PPM (built-in)" +supported_gfx="$supported_gfx builtin-PPM" if test "x$MOFILES" = "x"; then mof=none @@ -785,7 +822,7 @@ echo echo "Window Maker was configured as follows:" echo echo "Installation path prefix: $prefix" -echo "Installation path prefix for binaries: $exec_prefix" | sed -e 's|\${prefix}|'"$prefix|" +echo "Installation path prefix for binaries: $_bindir" echo "Installation path for WPrefs.app: $wprefsdir" | sed -e 's|\$(prefix)|'"$prefix|" echo "Graphic format libraries: $supported_gfx" echo "Sound support: $sound" @@ -795,7 +832,7 @@ if test "x$MOFILES" != "x"; then fi -if test "$jpeg_not_found" = yes; then +if test "x$ac_cv_header_jpeglib_h" != xyes; then echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING" echo echo "JPEG support will not be included because the JPEG library is" diff --git a/doc/Makefile.in b/doc/Makefile.in index 20ba69dd..c9c51a56 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/doc/geticonset.1x b/doc/geticonset.1x index 5aad0e24..5c317af8 100644 --- a/doc/geticonset.1x +++ b/doc/geticonset.1x @@ -1,15 +1,22 @@ .\" Hey, Emacs! This is an -*- nroff -*- source file. -.TH geticonset 1x "March 1998" +.TH geticonset 1x "January 1999" .SH NAME geticonset \- gets the current Window Maker iconset .SH SYNOPSIS .B geticonset -.I [iconsetfile] +.I [options] [iconsetfile] .SH DESCRIPTION .B geticonset reads the WMWindowAttributes domain, and writes the iconset found there either to stdout or to .I iconsetfile. +.SH OPTIONS +.TP +.B \-\-help +print a help message +.TP +.B \-\-version +print version number .SH ENVIRONMENT .IP GNUSTEP_USER_ROOT specifies the initial path for the Defaults directory. "Defaults/" is diff --git a/doc/getstyle.1x b/doc/getstyle.1x index 0362d116..27290428 100644 --- a/doc/getstyle.1x +++ b/doc/getstyle.1x @@ -1,12 +1,11 @@ .\" Hey, Emacs! This is an -*- nroff -*- source file. -.TH getstyle 1x "December 1998" +.TH getstyle 1x "January 1999" .SH NAME getstyle \- dumps the current Window Maker style related configuration or creates a theme pack. .SH SYNOPSIS .B getstyle -[[-t] [style file]] -[-p theme name] +[[-t|--theme-options] [-p|--pack] [style file]] .SH DESCRIPTION .B getstyle can either dump the current Window Maker style related configuration @@ -17,6 +16,18 @@ redistributable theme, includig the style information and pixmaps used by it. Note that style information stored in the global configuration of the system is not read. +The following options are stored by default: \fIIconBack\fP, +\fIIconBack\fP, \fITitleJustify\fP, \fIWindowTitleFont\fP, +\fIMenuTitleFont, MenuTextFont\fP, \fIIconTitleFont\fP, +\fIDisplayFont\fP, \fIHighlightColor\fP, \fIHighlightTextColor\fP, +\fIIconTitleColor\fP, \fICClipTitleColor\fP, \fIIconBackColor\fP, +\fIFTitleColor\fP, \fIPTitleColor\fP, \fIUTitleColor\fP, +\fIFTitleBack\fP, \fIPTitleBack, UTitleBack\fP, \fIMenuTitleColor\fP, +\fIMenuTextColor\fP, \fIMenuDisabledColor\fP, \fIMenuTitleBack\fP and +\fIMenuTextBack\fP. If either \fB-t\fP or \fB--theme-options\fP is +specificied, in addition to the previous options, \fIWorkspaceBack\fP +is \fIalso\fP stored. + .SH OPTIONS .TP .B \-t @@ -27,14 +38,6 @@ This option is always enabled when the \-p option is used. creates a theme pack in the directory named by the theme name appended with the .themed suffix. -Options that are stored in the style file are: IconBack, WorkspaceBack, -IconBack, TitleJustify, WindowTitleFont, MenuTitleFont, MenuTextFont, -IconTitleFont, DisplayFont, HighlightColor, HighlightTextColor, -IconTitleColor, CClipTitleColor, IconBackColor, FTitleColor, PTitleColor, -UTitleColor, FTitleBack, PTitleBack, UTitleBack, MenuTitleColor, -MenuTextColor, MenuDisabledColor, MenuTitleBack and MenuTextBack. - - .SH ENVIRONMENT .IP GNUSTEP_USER_ROOT specifies the initial path for the Defaults directory. "Defaults/" is @@ -42,7 +45,7 @@ appended to this variable to determine the actual location of the databases. If the varialbe is not set, it defaults to "~/GNUstep" .SH FILES .IP GNUSTEP_USER_ROOT/Defaults/WindowMaker -This is the actual file that's written. +This is the actual file that gets written. .SH SEE ALSO .BR setstyle (1x), .BR wmaker (1x) diff --git a/doc/seticons.1x b/doc/seticons.1x index 0ae1a96d..abd8a7d2 100644 --- a/doc/seticons.1x +++ b/doc/seticons.1x @@ -12,6 +12,13 @@ reads and writes its contents to the WMWindowAttributes domain, efectively setting the icons Window Maker uses for a given class (for example, XTerm, "xterm.XTerm", "rxvt.XTerm", "pine.XTerm", etc) +.SH OPTIONS +.TP +.B \-\-help +print a help message +.TP +.B \-\-version +print version number .SH ENVIRONMENT .IP GNUSTEP_USER_ROOT specifies the initial path for the Defaults directory. "Defaults/" is diff --git a/doc/setstyle.1x b/doc/setstyle.1x index fb7c0128..39e678c5 100644 --- a/doc/setstyle.1x +++ b/doc/setstyle.1x @@ -1,10 +1,10 @@ .\" Hey, Emacs! This is an -*- nroff -*- source file. -.TH setstyle 1x "December 1998" +.TH setstyle 1x "January 1999" .SH NAME setstyle \- set style related options for Window Maker or loads a theme .SH SYNOPSIS .B setstyle -.I "[-nofonts]" +.I "[--no-fonts] [--help] [--version]" .I stylefile .SH DESCRIPTION .B setstyle @@ -12,9 +12,21 @@ reads .I stylefile and writes its contents to the WindowMaker domain, efectively setting the Window Maker style. If the supplied path is a directory, it will -be treated as a theme pack and it will be loaded appropriately. If the -.B \-nofonts -flag is specified, font related options in the style file will be ignored. +be treated as a theme pack and it will be loaded appropriately. If the +\fB\-\-no\-fonts\fP flag is specified, font related options +(\fIIconTitleFont\fP, \fIClipTitleFont\fP, \fIDisplayFont\fP, +\fIMenuTextFont\fP, \fIMenuTitleFont\fP, \fIWindowTitleFont\fP) in the +style file will be ignored. +.SH OPTIONS +.TP +.B \-\-no\-fonts +ignore font related options in style file. +.TP +.B \-\-help +print a help message +.TP +.B \-\-version +print version number .SH ENVIRONMENT .IP GNUSTEP_USER_ROOT specifies the initial path for the Defaults directory. "Defaults/" is diff --git a/doc/wdwrite.1x b/doc/wdwrite.1x index 28fbb4d7..2f84c158 100644 --- a/doc/wdwrite.1x +++ b/doc/wdwrite.1x @@ -1,5 +1,5 @@ .\" Hey, Emacs! This is an -*- nroff -*- source file. -.TH wdwrite 1x "March 1998" +.TH wdwrite 1x "January 1999" .SH NAME wdwrite \- writes keys and values to the defaults database .SH SYNOPSIS @@ -15,6 +15,13 @@ and .I value to the specified .I domain. +.SH OPTIONS +.TP +.B \-\-help +print a help message +.TP +.B \-\-version +print version number .SH ENVIRONMENT .IP GNUSTEP_USER_ROOT specifies the initial path for the Defaults directory. "Defaults/" is diff --git a/doc/wmaker.1x b/doc/wmaker.1x index 011b4260..5eb83440 100644 --- a/doc/wmaker.1x +++ b/doc/wmaker.1x @@ -11,13 +11,13 @@ emulate NeXT's look as much as possible, but it deviates from it as necessary. .SH "OPTIONS" .TP -.B \-nocpp +.B \-\-no\-cpp disable preprocessing of configuration files .TP -.B \-nodock +.B \-\-no\-dock do not show the application Dock .TP -.B \-noclip +.B \-\-no\-clip do not show the workspace Clip .TP .B \-display host:display.screen @@ -30,13 +30,16 @@ command line argument. For example, if you want Window Maker to manage only screen 1, start it as: .B wmaker -display :0.1 .TP -.B \-version +.B \-\-version display version number and exit .TP -.B \-visualid +.B \-\-visual\-id specify the ID of the visual to use. See .BR xdpyinfo (1x) for a list of visuals available in your display. +.TP +.B \-\-help +print a brief help message .PP .SH FILES .TP diff --git a/doc/wmsetbg.1x b/doc/wmsetbg.1x index 0f3e4233..5fea4380 100644 --- a/doc/wmsetbg.1x +++ b/doc/wmsetbg.1x @@ -1,47 +1,62 @@ .\" Hey, Emacs! This is an -*- nroff -*- source file. -.TH wmsetbg 1x "March 1998" +.TH wmsetbg 1x "January 1999" .SH NAME wmsetbg \- sets the background on the X11 display .SH SYNOPSIS .B wmsetbg -[-t|-s] [-d|-m] [-u] [-D domain] [-c cpc] -.I image +[-display] [--version] [--help] [{-b|--back-color} \fIcolor\fP] +[{-t|--tile}|{-e|--center}|{-s|--scale}|{-a|--maxscale} \fIimage\fP] +[{-d|--dither}|{-m|--match}] [-u|--update-wmaker] +[{-D|--update-domain} \fIdomain\fP] [{-c|--colors} \fIcpc\fP] +[{-p|--parse} \fItexture\fP] [{-w|--workspace} \fIworkspace\fP] .SH DESCRIPTION .B wmsetbg reads the specified .I image -(XPM, PNG, jpeg, Tiff, raw PPM) and puts it on the root window. It can either -scale the image or tile it to make it fit the root window. Window Maker -uses this command internally to set the root window image on start up. It can be used on the command line, but it -.B won't -write the information to the Window Maker defaults' database. +(XPM, PNG, jpeg, Tiff, raw PPM) and puts it on the root window. It can +either scale the image or tile it to make it fit the root +window. Window Maker uses this command internally to set the root +window image on start up. .SH OPTIONS .TP -.B \-t -tiles the specified -.I image +.B -a|--maxscale +scales the specified \fIimage\fP preserving its aspect ratio .TP -.B \-s -scales the specified -.I image -(default) +.B -e|--center +centers the specified \fIimage\fP +.TP +.B -t|--tile +tiles the specified \fIimage\fP +.TP +.B -s|--scale +scales the specified \fIimage\fP (default) .TP -.B \-d +.B -d|--dither dithers colors .TP -.B \-m +.B -m|--match matches colors .TP -.B \-u +.B -u|--update-wmaker updates the Window Maker defaults database .TP -.B \-d -updates the specifed -.I domain -database +.B -D|--update-domain +updates the specifed \fIdomain\fP database .TP -.B \-c +.B -c|--colors colors per channel to use +.TP +.B -p|--parse +parses the specified \fItexture\fP as a \fIproplist style texture\fP +.TP +.B -w|--workspace +update background only for the specified \fIworkspace\fP +.TP +.B \-\-help +print a help message +.TP +.B \-\-version +print version number .SH SEE ALSO .BR wmaker (1x) .SH AUTHOR @@ -49,3 +64,4 @@ This man page was written by Marcelo Magallon . .PP Window Maker was written by Alfredo K. Kojima . wmsetbg was written by Dan Pascu + diff --git a/docklib-0.0.tar.gz b/docklib-0.0.tar.gz deleted file mode 100644 index 6ca5f38c67de0b7a26e9263ed12791b263582c57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 31330 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%0D>?e;Uxg7Y8#tEZEr|^ z;FP(Ov{+p(fx=1efo7H@?SrM~{Cl3%k4P^G`-|3)T;21>B$u4U8eQ~w< z_jIqGM3>)Ecim2qYgzS$z zhxpdoeIE-A{a2QbLR?WRvL9PQL&Mio@P6eS+tEgTin+XZr};Ya;Fkm2c>Om06$@S5 z5Uo>cEMXrjtfebupKrsV;N&*IpfcQPJabS*I7 znl6>TCxdgC&Cj9(K+06JTB8+aFyVYaqYX4L9{7n_l%XEy1<|k()^$NjD1v~}Qh)tM z%L>g#iGZwJhytZDtB?`vwuml3N$I@XI0pNIHqq!7oe5pr3xKN^;I%bKt`<&U8ZYy> znZHV7gd=HanBXv85#!|iqSq*aQnL=B54#n-SDYhv$}`9_!xutL^vnraSiUX@B-jdz<^u zy}j-2a6JBt|3{wFoo8qu)pp-X>(~NDyK`En%Zf(yR3qhLl*5zPcncnZchqr!G%#w6 zyzfD5HvTW`W}p!V=qdcWYfo&XJ6F{Swi{W;4QrRZx1xFNe45)vA}1t?AG7FRJ0Py$ zTsLmXDKXTatc6#*vpvbrMSoODIlMQNA%5yZ+`peqV9&qkWOofIf8fhF=wG`L++8R^ zN>}6HF{Z>aWI^=c=r$s3C_aP0)^{oKO=b59?%x;h*t+y-&!@d0_I?{h3^vP37^Ws{ zMYrm}ImJzRy`5{&UB2jg3V#}DKD?GM#_sI|Oeg{eq>+CqsWCoDtrA^t(Zp`NA?WVp zEzvIvK>7Rq0{r4^5OoRlK(0KV(4biji|X)J0cg2!TN<$Z2Z;J2q;4PPz3Gb;dZNId zIL?a@lS(J#`*&y*csE*+ao}9Z)`zMZ_y&M2>*`bTN`ph@0djvEfxZrENb-J-rW7b& zjR2#QywsE%o zM-9;uD6x>lAq+&v4zYNRW=v%7Yt_)rBf`)~8;sY1)9R;ejp$a2f@HK__03mGuNI@K z26EVWz9eaL20jzSa7OcRw8wtXY#w@=upyp7(3#_CYQ*4M>Jj{>gyc5=9Km0`??}$6 z^Oi0j1UJaoRi5E!IF^Hh=m4cNGcjhZ3ZiZAxQNMwD!MkXvS?AS?ZJF zdwZBd9AP@0%uW)pjWPQ22x63xbXgj_jqSs53D7ySUoByb>#sck=n=fb@5lAx;NhW{ zj?(0kQ9LQcvt=u4-G|4LVy8Qu;0*scoiy7JU7QUMX98QRPaWHxi{RkRsSzkc0-p>I ze@q=dqkjV?KzC+4rPBf@{WXZNOHjK$CEiD%sxw)2HS2C~q>H<+=$2XMjNPApJk>@3 z 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 literal 0 HcwPel00001 diff --git a/po/Makefile.am b/po/Makefile.am index dc4a864d..e7bc6615 100644 --- a/po/Makefile.am +++ b/po/Makefile.am @@ -1,11 +1,11 @@ -nlsdir = $(DESTDIR)/@NLSDIR@ +nlsdir = $(DESTDIR)$(NLSDIR) CATALOGS = @MOFILES@ CLEANFILES = $(CATALOGS) WindowMaker.pot EXTRA_DIST = cs.po de.po es.po fr.po gl.po ja.po ko.po nl.po pt.po se.po it.po \ - no.po ru.po tr.po fi.po hr.po el.po pl.po ro.po dk.po + no.po ru.po tr.po fi.po hr.po el.po pl.po ro.po dk.po zh_TW.Big5.po POTFILES = \ $(top_builddir)/src/appicon.c \ @@ -53,14 +53,14 @@ WindowMaker.pot: $(POTFILES) fi install-data-local: $(CATALOGS) - $(mkinstalldirs) $(DESTDIR)$(nlsdir) - chmod 755 $(DESTDIR)$(nlsdir) + $(mkinstalldirs) $(nlsdir) + chmod 755 $(nlsdir) for n in $(CATALOGS) __DuMmY ; do \ if test "$$n" -a "$$n" != "__DuMmY" ; then \ l=`basename $$n .mo`; \ - $(mkinstalldirs) $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - $(INSTALL) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WindowMaker.mo; \ + $(mkinstalldirs) $(nlsdir)/$$l/LC_MESSAGES; \ + chmod 755 $(nlsdir)/$$l; \ + chmod 755 $(nlsdir)/$$l/LC_MESSAGES; \ + $(INSTALL_DATA) -m 644 $$n $(nlsdir)/$$l/LC_MESSAGES/WindowMaker.mo; \ fi; \ done diff --git a/po/Makefile.in b/po/Makefile.in index 54ef3965..df2e118c 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -87,13 +87,13 @@ XLIBS = @XLIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ wprefsdir = @wprefsdir@ -nlsdir = $(DESTDIR)/@NLSDIR@ +nlsdir = $(DESTDIR)$(NLSDIR) CATALOGS = @MOFILES@ CLEANFILES = $(CATALOGS) WindowMaker.pot -EXTRA_DIST = cs.po de.po es.po fr.po gl.po ja.po ko.po nl.po pt.po se.po it.po no.po ru.po tr.po fi.po hr.po el.po pl.po ro.po dk.po +EXTRA_DIST = cs.po de.po es.po fr.po gl.po ja.po ko.po nl.po pt.po se.po it.po no.po ru.po tr.po fi.po hr.po el.po pl.po ro.po dk.po zh_TW.Big5.po POTFILES = $(top_builddir)/src/appicon.c $(top_builddir)/src/defaults.c $(top_builddir)/src/dialog.c $(top_builddir)/src/dock.c $(top_builddir)/src/dockedapp.c $(top_builddir)/src/event.c $(top_builddir)/src/framewin.c $(top_builddir)/src/icon.c $(top_builddir)/src/main.c $(top_builddir)/src/menu.c $(top_builddir)/src/misc.c $(top_builddir)/src/pixmap.c $(top_builddir)/src/proplist.c $(top_builddir)/src/resources.c $(top_builddir)/src/rootmenu.c $(top_builddir)/src/screen.c $(top_builddir)/src/session.c $(top_builddir)/src/stacking.c $(top_builddir)/src/startup.c $(top_builddir)/src/switchmenu.c $(top_builddir)/src/texture.c $(top_builddir)/src/wdefaults.c $(top_builddir)/src/window.c $(top_builddir)/src/winmenu.c $(top_builddir)/src/winspector.c $(top_builddir)/src/workspace.c $(top_builddir)/src/xutil.c @@ -220,15 +220,15 @@ WindowMaker.pot: $(POTFILES) fi install-data-local: $(CATALOGS) - $(mkinstalldirs) $(DESTDIR)$(nlsdir) - chmod 755 $(DESTDIR)$(nlsdir) + $(mkinstalldirs) $(nlsdir) + chmod 755 $(nlsdir) for n in $(CATALOGS) __DuMmY ; do \ if test "$$n" -a "$$n" != "__DuMmY" ; then \ l=`basename $$n .mo`; \ - $(mkinstalldirs) $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l; \ - chmod 755 $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ - $(INSTALL) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WindowMaker.mo; \ + $(mkinstalldirs) $(nlsdir)/$$l/LC_MESSAGES; \ + chmod 755 $(nlsdir)/$$l; \ + chmod 755 $(nlsdir)/$$l/LC_MESSAGES; \ + $(INSTALL_DATA) -m 644 $$n $(nlsdir)/$$l/LC_MESSAGES/WindowMaker.mo; \ fi; \ done diff --git a/po/README b/po/README index e6dd33eb..868c4585 100644 --- a/po/README +++ b/po/README @@ -28,6 +28,7 @@ el.po Greek Nikolaos Papagrigoriou pl.po Polish Piotr Dembiñski ro.po Romanian Andrei Vuta dk.po Danish Birger Langkjer +zh_TW.Big5.po Chinese Li Wei Jih Some translations are based on previous translations by other people. diff --git a/po/cs.po b/po/cs.po index 34f1e089..1bd7f7ee 100644 --- a/po/cs.po +++ b/po/cs.po @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: WindowMaker 0.50.2\n" -"POT-Creation-Date: 1999-01-11 07:20+0100\n" -"PO-Revision-Date: 1999-01-11 07:50+01:00\n" +"Project-Id-Version: WindowMaker 0.51.0\n" +"POT-Creation-Date: 1999-01-29 06:48+0100\n" +"PO-Revision-Date: 1999-01-29 07:34+01:00\n" "Last-Translator: David Sauer \n" "Language-Team: czech \n" "MIME-Version: 1.0\n" @@ -14,8 +14,8 @@ msgstr "" "Content-Transfer-Encoding: unknown\n" #: ../src/appicon.c:509 ../src/dialog.c:216 ../src/dialog.c:272 -#: ../src/dock.c:3059 ../src/dockedapp.c:206 ../src/winspector.c:283 -#: ../src/winspector.c:299 +#: ../src/dock.c:3060 ../src/dockedapp.c:208 ../src/winspector.c:281 +#: ../src/winspector.c:297 msgid "Error" msgstr "Chyba" @@ -25,8 +25,8 @@ msgstr "Nelze otev #: ../src/appicon.c:511 ../src/dialog.c:115 ../src/dialog.c:216 #: ../src/dialog.c:272 ../src/dialog.c:460 ../src/dock.c:424 -#: ../src/dock.c:3060 ../src/dockedapp.c:206 ../src/dockedapp.c:350 -#: ../src/winspector.c:284 ../src/winspector.c:300 +#: ../src/dock.c:3061 ../src/dockedapp.c:208 ../src/dockedapp.c:352 +#: ../src/winspector.c:282 ../src/winspector.c:298 msgid "OK" msgstr "OK" @@ -52,180 +52,183 @@ msgstr "Ano" msgid "No" msgstr "Ne" -#: ../src/appicon.c:548 ../src/dock.c:1065 +#: ../src/appicon.c:548 ../src/dock.c:1064 msgid "Unhide Here" -msgstr "Odkryj zde" +msgstr "Odkrýt zde" -#: ../src/appicon.c:549 ../src/appicon.c:574 ../src/winmenu.c:441 +#: ../src/appicon.c:549 ../src/appicon.c:574 ../src/dock.c:1066 +#: ../src/dock.c:1068 ../src/dock.c:3186 ../src/dock.c:3188 +#: ../src/winmenu.c:441 msgid "Hide" -msgstr "Skryj" +msgstr "Skrýt" #: ../src/appicon.c:550 msgid "Set Icon..." msgstr "Nastavit ikonu..." -#: ../src/appicon.c:551 ../src/dock.c:1071 ../src/rootmenu.c:225 -#: ../src/rootmenu.c:239 ../src/winmenu.c:488 +#: ../src/appicon.c:551 ../src/dock.c:1072 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 ../src/winmenu.c:488 msgid "Kill" msgstr "Ukonèit" -#: ../src/appicon.c:572 +#: ../src/appicon.c:572 ../src/dock.c:3184 msgid "Unhide" msgstr "Odkrýt" -#: ../src/defaults.c:750 ../src/startup.c:700 ../src/startup.c:718 -#: ../src/startup.c:724 +#: ../src/defaults.c:767 ../src/startup.c:709 ../src/startup.c:727 +#: ../src/startup.c:733 #, c-format msgid "could not read domain \"%s\" from defaults database" msgstr "z databáze standardù nelze naèíst doménu \"%s\"" -#: ../src/defaults.c:796 ../src/defaults.c:920 ../src/defaults.c:959 -#: ../src/defaults.c:989 +#: ../src/defaults.c:813 ../src/defaults.c:937 ../src/defaults.c:976 +#: ../src/defaults.c:1006 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "V databázi standardù jsou po¹kozena doména %s (%s)!" -#: ../src/defaults.c:801 ../src/defaults.c:941 ../src/defaults.c:972 -#: ../src/defaults.c:998 +#: ../src/defaults.c:818 ../src/defaults.c:958 ../src/defaults.c:989 +#: ../src/defaults.c:1015 #, c-format msgid "could not load domain %s from user defaults database" msgstr "z u¾ivatelovy databáze standardù nelze naèíst doménu \"%s\"" -#: ../src/defaults.c:812 ../src/defaults.c:905 +#: ../src/defaults.c:829 ../src/defaults.c:922 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" msgstr "V globální databázi standardù je po¹kozena doména %s (%s)" -#: ../src/defaults.c:831 ../src/defaults.c:910 +#: ../src/defaults.c:848 ../src/defaults.c:927 #, c-format msgid "could not load domain %s from global defaults database" msgstr "z globální databáze standardù nelze naèíst doménu \"%s\"" -#: ../src/defaults.c:1281 +#: ../src/defaults.c:1298 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "Chybný formát volby pro klíè \"%s\". Má být jeden z %s" -#: ../src/defaults.c:1328 +#: ../src/defaults.c:1345 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" msgstr "\"%s\" nelze zkonvertovat pro klíè \"%s\" na boolean " -#: ../src/defaults.c:1333 ../src/defaults.c:1367 ../src/defaults.c:1399 -#: ../src/defaults.c:1412 ../src/defaults.c:1427 ../src/defaults.c:1441 -#: ../src/defaults.c:1513 ../src/defaults.c:1525 ../src/defaults.c:1873 -#: ../src/defaults.c:1890 ../src/defaults.c:1903 ../src/defaults.c:1936 -#: ../src/defaults.c:1952 ../src/defaults.c:1983 ../src/defaults.c:2056 +#: ../src/defaults.c:1350 ../src/defaults.c:1384 ../src/defaults.c:1416 +#: ../src/defaults.c:1429 ../src/defaults.c:1444 ../src/defaults.c:1458 +#: ../src/defaults.c:1530 ../src/defaults.c:1542 ../src/defaults.c:1890 +#: ../src/defaults.c:1907 ../src/defaults.c:1920 ../src/defaults.c:1953 +#: ../src/defaults.c:1969 ../src/defaults.c:2000 ../src/defaults.c:2073 #, c-format msgid "using default \"%s\" instead" msgstr "pou¾iji implicitní %s" -#: ../src/defaults.c:1364 +#: ../src/defaults.c:1381 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "\"%s\" nelze zkonvertovat pro klíè \"%s\" na integer" -#: ../src/defaults.c:1394 ../src/defaults.c:1508 ../src/defaults.c:1868 -#: ../src/defaults.c:1885 ../src/defaults.c:1931 ../src/defaults.c:1978 +#: ../src/defaults.c:1411 ../src/defaults.c:1525 ../src/defaults.c:1885 +#: ../src/defaults.c:1902 ../src/defaults.c:1948 ../src/defaults.c:1995 #: ../src/wdefaults.c:541 ../src/wdefaults.c:577 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "Chybný formát volby pro klíè \"%s\". Má být %s." -#: ../src/defaults.c:1407 +#: ../src/defaults.c:1424 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "Pro klíè %s je v poli chybný poèet prvkù." -#: ../src/defaults.c:1422 +#: ../src/defaults.c:1439 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "Chybná hodnota pro klíè \"%s\". Má být Coordinate." -#: ../src/defaults.c:1437 +#: ../src/defaults.c:1454 #, c-format msgid "can't convert array to integers for \"%s\"." msgstr "pole nelze konvertovat na èísla typu integer(pro %s)." -#: ../src/defaults.c:1634 ../src/defaults.c:1666 ../src/defaults.c:1682 -#: ../src/defaults.c:1728 ../src/defaults.c:1768 ../src/defaults.c:1806 -#: ../src/defaults.c:1822 +#: ../src/defaults.c:1651 ../src/defaults.c:1683 ../src/defaults.c:1699 +#: ../src/defaults.c:1745 ../src/defaults.c:1785 ../src/defaults.c:1823 +#: ../src/defaults.c:1839 #, c-format msgid "\"%s\" is not a valid color name" msgstr "%s není správné jméno barvy" -#: ../src/defaults.c:1647 +#: ../src/defaults.c:1664 msgid "bad number of arguments in gradient specification" msgstr "chybný poèet argumetù ve specifikaci gradientu" -#: ../src/defaults.c:1701 +#: ../src/defaults.c:1718 msgid "too few arguments in multicolor gradient specification" msgstr "nedostatek argumentù pøi specifikaci vícebarevného gradientu" -#: ../src/defaults.c:1795 +#: ../src/defaults.c:1812 msgid "bad number of arguments in textured gradient specification" msgstr "chybný poèet argumetù ve specifikaci texturovaného gradientu" -#: ../src/defaults.c:1838 +#: ../src/defaults.c:1855 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" -msgstr "chybná hodnota neprùhlednosti pro texturu tgradient \"%s\". Má být [0..255]" +msgstr "" +"chybná hodnota neprùhlednosti pro texturu tgradient \"%s\". Má být [0..255]" -#: ../src/defaults.c:1851 +#: ../src/defaults.c:1868 #, c-format msgid "invalid texture type %s" msgstr "Chybný typ textury %s" -#: ../src/defaults.c:1898 +#: ../src/defaults.c:1915 #, c-format msgid "Error in texture specification for key \"%s\"" msgstr "Chyba ve specifikaci textury pro klíè \"%s\"" -#: ../src/defaults.c:1948 +#: ../src/defaults.c:1965 msgid "Wrong type for workspace background. Should be a texture type." msgstr "Chybný typ pro pozadí pracovní plochy. Má být textura." -#: ../src/defaults.c:1996 +#: ../src/defaults.c:2013 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." msgstr "Chybný typ pro pozadí pracovní plochy %i. Má být textura." -#: ../src/defaults.c:2021 +#: ../src/defaults.c:2038 msgid "could not load any usable font!!!" msgstr "nelze naèíst ¾ádný pou¾itelný font!!!" -#: ../src/defaults.c:2051 +#: ../src/defaults.c:2068 #, c-format msgid "could not get color for key \"%s\"" msgstr "nelze získat barvu pro klíè \"%s\"" -#: ../src/defaults.c:2110 ../src/rootmenu.c:450 +#: ../src/defaults.c:2127 ../src/rootmenu.c:454 #, c-format msgid "%s:invalid key modifier \"%s\"" msgstr "%s:chybný modifikátor klávesy \"%s\"" -#: ../src/defaults.c:2122 +#: ../src/defaults.c:2139 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:chybná specifikace klávesové zkratky \"%s\"" -#: ../src/defaults.c:2129 +#: ../src/defaults.c:2146 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:chybná klávesa v klávesové zkratce \"%s\"" -#: ../src/defaults.c:2155 +#: ../src/defaults.c:2172 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: klávesa modifikátoru %s není v poøádku" -#: ../src/defaults.c:2231 +#: ../src/defaults.c:2248 msgid "could not render texture for icon background" msgstr "pro pozadí ikony nelze vykreslit texturu" #: ../src/dialog.c:115 ../src/dialog.c:467 ../src/dock.c:424 -#: ../src/dockedapp.c:356 ../src/rootmenu.c:187 ../src/rootmenu.c:225 -#: ../src/rootmenu.c:239 +#: ../src/dockedapp.c:358 ../src/rootmenu.c:188 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 msgid "Cancel" msgstr "Nic" @@ -253,7 +256,7 @@ msgstr "Soubor:" msgid "Choose File" msgstr "Vyberte soubor" -#: ../src/dialog.c:483 +#: ../src/dialog.c:490 ../src/dialog.c:492 msgid "Icon Chooser" msgstr "Výbìr ikony" @@ -262,7 +265,7 @@ msgstr "V msgid "Type the name for workspace %i:" msgstr "Zadejte jméno pro plochu %i:" -#: ../src/dock.c:214 ../src/dock.c:1044 +#: ../src/dock.c:214 ../src/dock.c:1043 msgid "Rename Workspace" msgstr "Pøejmenovat plochu" @@ -278,107 +281,103 @@ msgstr "V msgid "Keep Icon" msgstr "Dr¾et ikonu" -#: ../src/dock.c:471 ../src/dock.c:1977 ../src/dock.c:2106 +#: ../src/dock.c:471 ../src/dock.c:1978 ../src/dock.c:2107 msgid "Type the command used to launch the application" msgstr "Zadejte pøíkaz, který spustí aplikaci" -#: ../src/dock.c:857 +#: ../src/dock.c:856 #, c-format msgid "could not launch application %s\n" msgstr "aplikaci %s nelze odstartovat\n" -#: ../src/dock.c:912 +#: ../src/dock.c:911 msgid "could not create workspace submenu for Clip menu" msgstr "nelze vytvoøit submenu pracovní plochy pro menu Sponky" -#: ../src/dock.c:975 +#: ../src/dock.c:974 msgid "could not create options submenu for Clip menu" msgstr "nelze vytvoøit submenu voleb pro menu Sponky" -#: ../src/dock.c:979 ../src/dock.c:1033 ../src/winmenu.c:383 +#: ../src/dock.c:978 ../src/dock.c:1032 ../src/winmenu.c:383 msgid "Keep on top" msgstr "V¾dy navrchu" -#: ../src/dock.c:985 +#: ../src/dock.c:984 msgid "Collapsed" msgstr "Svinuto" -#: ../src/dock.c:991 +#: ../src/dock.c:990 msgid "AutoCollapse" msgstr "Automaticky svinout" -#: ../src/dock.c:997 +#: ../src/dock.c:996 msgid "AutoRaiseLower" msgstr "Automaticky Nahoru/Dolù" -#: ../src/dock.c:1003 +#: ../src/dock.c:1002 msgid "AutoAttract Icons" msgstr "Automaticky chytat iony" -#: ../src/dock.c:1009 +#: ../src/dock.c:1008 msgid "Keep Attracted Icons" msgstr "Dr¾ chycené ikony" -#: ../src/dock.c:1039 +#: ../src/dock.c:1038 msgid "Clip Options" msgstr "Volby Sponky" -#: ../src/dock.c:1046 +#: ../src/dock.c:1045 msgid "(Un)Select Icon" -msgstr "(Od)Oznaè ikonu" +msgstr "(Od)Oznaèit ikonu" -#: ../src/dock.c:1048 +#: ../src/dock.c:1047 msgid "(Un)Select All Icons" -msgstr "(Od)Oznaè v¹echny ikony" +msgstr "(Od)Oznaèit v¹echny ikony" -#: ../src/dock.c:1051 +#: ../src/dock.c:1050 msgid "Keep Icon(s)" -msgstr "Dr¾ ikonu/ikony" +msgstr "Dr¾et ikonu/ikony" -#: ../src/dock.c:1053 +#: ../src/dock.c:1052 msgid "Move Icon(s) To" -msgstr "Pøesunou ikonu/ikony na" +msgstr "Pøesunout ikonu/ikony na" -#: ../src/dock.c:1058 +#: ../src/dock.c:1057 msgid "Remove Icon(s)" -msgstr "Odstraò ikonu/ikony" +msgstr "Odstranit ikonu/ikony" -#: ../src/dock.c:1060 +#: ../src/dock.c:1059 msgid "Attract Icons" -msgstr "Chytej ikony" +msgstr "Chytat ikony" -#: ../src/dock.c:1063 +#: ../src/dock.c:1062 msgid "Launch" msgstr "Odstartovat" -#: ../src/dock.c:1067 -msgid "(Un)Hide" -msgstr "Skrýt/Odkrýt" - -#: ../src/dock.c:1069 +#: ../src/dock.c:1070 msgid "Settings..." msgstr "Nastavení..." -#: ../src/dock.c:1454 ../src/dock.c:1468 ../src/dock.c:1482 ../src/dock.c:1492 +#: ../src/dock.c:1455 ../src/dock.c:1469 ../src/dock.c:1483 ../src/dock.c:1493 #, c-format msgid "bad value in docked icon state info %s" msgstr "chybná hodnota stavu ukotvené ikony %s" -#: ../src/dock.c:1500 +#: ../src/dock.c:1501 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "chybná hodnota pozice ukotvené ikony %i,%i" -#: ../src/dock.c:1744 +#: ../src/dock.c:1745 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" msgstr "v doku je pøíli¹ mnoho ikon. Co se nevejde, je zanedbáno" #. icon->forced_dock = 1; -#: ../src/dock.c:1976 ../src/dock.c:2105 +#: ../src/dock.c:1977 ../src/dock.c:2106 msgid "Dock Icon" msgstr "Ukotvit ikonu" -#: ../src/dock.c:3052 ../src/dock.c:3056 +#: ../src/dock.c:3053 ../src/dock.c:3057 #, c-format msgid "Could not execute command \"%s\"" msgstr "Nelze provést pøíkaz \"%s\"" @@ -388,45 +387,45 @@ msgstr "Nelze prov msgid "could not find icon %s, used in a docked application" msgstr "nelze najít ikonu %s, která byla pou¾ita pro aplikaci v doku" -#: ../src/dockedapp.c:205 +#: ../src/dockedapp.c:207 #, c-format msgid "Could not open specified icon file:%s" msgstr "Nelze otevøít specifikovaný soubor s ikonou(%s)" -#: ../src/dockedapp.c:291 +#: ../src/dockedapp.c:293 msgid "Start when WindowMaker is started" msgstr "Odstartovat pøi startu WindowMakeru" -#: ../src/dockedapp.c:298 +#: ../src/dockedapp.c:300 msgid "Application path and arguments" msgstr "Cesty a argumenty pro aplikaci" -#: ../src/dockedapp.c:309 +#: ../src/dockedapp.c:311 msgid "Command for files dropped with DND" msgstr "Pøíkaz pro polo¾ený soubor (DND)" -#: ../src/dockedapp.c:321 +#: ../src/dockedapp.c:323 #, c-format msgid "%d will be replaced with the file name" msgstr "%d bude nahrazeno jménem souboru" -#: ../src/dockedapp.c:325 +#: ../src/dockedapp.c:327 msgid "DND support was not compiled in" msgstr "DNS podpora nebylo zakompilována" -#: ../src/dockedapp.c:331 +#: ../src/dockedapp.c:333 msgid "Icon Image" msgstr "Ikona" -#: ../src/dockedapp.c:343 ../src/winspector.c:1235 +#: ../src/dockedapp.c:345 ../src/winspector.c:1235 msgid "Browse..." msgstr "Hledat..." -#: ../src/dockedapp.c:388 +#: ../src/dockedapp.c:390 msgid "Docked Application Settings" msgstr "Nastavení pro aplikaci v doku" -#: ../src/event.c:371 +#: ../src/event.c:373 msgid "stack overflow: too many dead processes" msgstr "pøeteèení zásobníku: pøíli¹ mnoho procesù ve stavu dead" @@ -462,61 +461,64 @@ msgstr "nelze naj msgid "could not load default icon \"%s\":%s" msgstr "nelze naèíst standardní ikonu \"%s\":%s" -#: ../src/main.c:199 +#: ../src/main.c:200 msgid "could not exec window manager" msgstr "nelze spustit správce oken" -#: ../src/main.c:200 +#: ../src/main.c:201 msgid "Restart failed!!!" msgstr "Operace \"RESTART\" selhala!!!" -#: ../src/main.c:247 +#: ../src/main.c:248 #, c-format msgid "%s aborted.\n" msgstr "%s pøeru¹en.\n" -#: ../src/main.c:258 -#, c-format -msgid "usage: %s [-options]\n" -msgstr "pou¾ití: %s [-volby]\n" - #: ../src/main.c:259 -msgid "options:" -msgstr "volby:" +#, c-format +msgid "Usage: %s [options]\n" +msgstr "pou¾ití: %s [volby]\n" -#: ../src/main.c:261 -msgid " -nocpp \t\tdisable preprocessing of configuration files" -msgstr " -nocpp \t\tneprovádìj pøedzpracování konfiguraèních souborù" +#: ../src/main.c:260 +msgid "The Window Maker window manager for the X window system" +msgstr "Správce oken Window Maker pro X window" -#: ../src/main.c:263 -msgid " -nodock\t\tdo not open the application Dock" -msgstr " -nodock\t\tnezobrazuj \"hnízdo\" pro ikony" +#: ../src/main.c:262 +msgid " -display host:dpy\tdisplay to use" +msgstr " -display host:dpy\tkterý display pou¾ít" #: ../src/main.c:264 -msgid " -noclip\t\tdo not open the workspace Clip" -msgstr " -noclip\t\tneotvírat aplikaci Sponku" +msgid " --no-cpp \t\tdisable preprocessing of configuration files" +msgstr " --nocpp \t\tneprovádìj pøedzpracování konfiguraèních souborù" + +#: ../src/main.c:266 +msgid " --no-dock\t\tdo not open the application Dock" +msgstr " --nodock\t\tnezobrazuj Dok pro ikony" + +#: ../src/main.c:267 +msgid " --no-clip\t\tdo not open the workspace Clip" +msgstr " --noclip\t\tneotvírat aplikaci Sponku" #. -#. puts(_(" -locale locale locale to use")); +#. puts(_(" --locale locale locale to use")); #. -#: ../src/main.c:268 -msgid " -visualid visualid\tvisual id of visual to use" -msgstr "" -" -visualid visualid\\tèíslo obrazového módu(visual id), který bude pou¾it" +#: ../src/main.c:271 +msgid " --visual-id visualid\tvisual id of visual to use" +msgstr " --visualid visualid\\tèíslo obrazového módu(visual id), který bude pou¾it" -#: ../src/main.c:269 -msgid " -display host:dpy\tdisplay to use" -msgstr " -display host:dpy\tkterý display pou¾ít" +#: ../src/main.c:272 +msgid " --static\t\tdo not update or save configurations" +msgstr " --static\t\tneobnovovat a neukládat konfigurace" -#: ../src/main.c:270 -msgid " -static\t\tdo not update or save configurations" -msgstr " -static\t\tneobnovovat a neukládat konfigurace" +#: ../src/main.c:273 +msgid " --version\t\tprint version and exit" +msgstr " --version\t\tzobraz verzi a konec" -#: ../src/main.c:271 -msgid " -version\t\tprint version and exit" -msgstr " -version\t\tzobraz verzi a konec" +#: ../src/main.c:274 +msgid " --help\t\t\tshow this message" +msgstr " --help\t\t\tuka¾ tuto zprávu" -#: ../src/main.c:283 +#: ../src/main.c:286 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" @@ -526,35 +528,45 @@ msgstr "" "Ujistìte se, ¾e máte Window Maker správnì nainstalován, pøípadnì proveïte " "wmaker.inst" -#: ../src/main.c:302 +#: ../src/main.c:305 #, c-format msgid "%s:could not execute initialization script" msgstr "%s:nelze provést inicializaèní skript" -#: ../src/main.c:319 +#: ../src/main.c:322 #, c-format msgid "%s:could not execute exit script" msgstr "%s:nelze provést ukonèovací skript" -#: ../src/main.c:373 ../src/main.c:380 ../src/main.c:387 ../src/main.c:401 +#: ../src/main.c:383 ../src/main.c:390 ../src/main.c:398 ../src/main.c:414 #, c-format msgid "too few arguments for %s" msgstr "nedostatek argumetù pro %s" -#: ../src/main.c:391 +#: ../src/main.c:402 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "chybná hodnota pro typ visual: \"%s\"" -#: ../src/main.c:449 +#: ../src/main.c:419 +#, c-format +msgid "%s: invalid argument '%s'" +msgstr "%s: chybný argument '%s'" + +#: ../src/main.c:420 +#, c-format +msgid "Try '%s --help' for more information" +msgstr "Zkuste '%s --help', získáte více informací." + +#: ../src/main.c:463 msgid "X server does not support locale" msgstr "X server nepodporuje nastavení místních zvyklostí" -#: ../src/main.c:452 +#: ../src/main.c:466 msgid "cannot set locale modifiers" msgstr "nelze nastavit modifikátory místních zvyklostí" -#: ../src/main.c:469 +#: ../src/main.c:483 #, c-format msgid "could not open display \"%s\"" msgstr "nelze otevøít displej \"%s\"" @@ -589,54 +601,58 @@ msgstr "v msgid "selection timed-out" msgstr "time out pøi výbìru" -#: ../src/misc.c:858 +#: ../src/misc.c:859 msgid "Program Arguments" msgstr "Argumenty Programu" -#: ../src/misc.c:859 +#: ../src/misc.c:860 msgid "Enter command arguments:" msgstr "Zadejte argumenty pro pøíkaz:" -#: ../src/misc.c:954 +#: ../src/misc.c:957 msgid "unable to get dropped data from DND drop" msgstr "nelze získat data z DND operace drop" -#: ../src/misc.c:962 +#: ../src/misc.c:965 msgid "error getting dropped data from DND drop" msgstr "chyba pøi získávání dat z operace DND drop" -#: ../src/misc.c:968 +#: ../src/misc.c:971 msgid "out of memory while getting data from DND drop" msgstr "nedostatek pamìti pøi ètení dat z DND operace drop" -#: ../src/misc.c:1012 ../src/misc.c:1132 +#: ../src/misc.c:1016 ../src/misc.c:1151 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "nedostatek pamìti pøi expanzi \"%s\"" -#: ../src/misc.c:1066 +#: ../src/misc.c:1070 msgid "out of memory during expansion of \"%w\"" msgstr "nedostatek pamìti pøi expanzi \"%w\"" -#: ../src/misc.c:1085 +#: ../src/misc.c:1088 +msgid "out of memory during expansion of \"%W\"" +msgstr "nedostatek pamìti pøi expanzi \"%s\"" + +#: ../src/misc.c:1104 msgid "out of memory during expansion of \"%a\"" msgstr "nedostatek pamìti pøi expanzi \"%a\"" -#: ../src/misc.c:1111 +#: ../src/misc.c:1130 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "nedostatek pamìti pøi expanzi \"%d\"" -#: ../src/misc.c:1125 +#: ../src/misc.c:1144 msgid "selection not available" msgstr "výbìr není dostupný" -#: ../src/misc.c:1197 ../src/misc.c:1203 +#: ../src/misc.c:1216 ../src/misc.c:1222 #, c-format msgid "bad window name value in %s state info" msgstr "chybné jméno okna ve stavové informaci %s" -#: ../src/misc.c:1457 +#: ../src/misc.c:1476 msgid "could not send message to background image helper" msgstr "nelze poslat zprávu umís»ovaèi pozadí" @@ -737,19 +753,19 @@ msgstr "nelze zpracovat barvu \"%s\"" msgid "could not allocate color \"%s\"" msgstr "nelze alokovat polo¾ku pro barvu \"%s\"" -#: ../src/rootmenu.c:185 ../src/rootmenu.c:187 +#: ../src/rootmenu.c:186 ../src/rootmenu.c:188 msgid "Exit" msgstr "Konec" -#: ../src/rootmenu.c:186 +#: ../src/rootmenu.c:187 msgid "Exit window manager?" msgstr "Ukonèit mana¾era oken?" -#: ../src/rootmenu.c:222 +#: ../src/rootmenu.c:223 msgid "Close X session" msgstr "Ukonèit sezení X" -#: ../src/rootmenu.c:223 +#: ../src/rootmenu.c:224 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." @@ -761,15 +777,15 @@ msgstr "" #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. -#: ../src/rootmenu.c:225 ../src/winmenu.c:481 +#: ../src/rootmenu.c:226 ../src/winmenu.c:481 msgid "Close" -msgstr "Uzavøi" +msgstr "Uzavøít" -#: ../src/rootmenu.c:236 +#: ../src/rootmenu.c:237 msgid "Kill X session" msgstr "Ukonèit sezení X" -#: ../src/rootmenu.c:237 +#: ../src/rootmenu.c:238 msgid "" "Kill Window System session?\n" "(all applications will be closed)" @@ -777,47 +793,47 @@ msgstr "" "Ukonèit sezení?\n" "(v¹echny aplikace budou uzavøeny)" -#: ../src/rootmenu.c:463 +#: ../src/rootmenu.c:467 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" msgstr "%s:chybná specifikace klávesové zkratky \"%s\" pro polo¾ku %s" -#: ../src/rootmenu.c:471 +#: ../src/rootmenu.c:475 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" msgstr "%s:chybná klávesa v klávesové zkratce \"%s\" pro polo¾ku %s" -#: ../src/rootmenu.c:524 +#: ../src/rootmenu.c:528 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s: neodpovídající '\"' v souboru s menu" -#: ../src/rootmenu.c:574 +#: ../src/rootmenu.c:578 #, c-format msgid "%s: missing command" msgstr "%s: oèekávám pøíkaz" -#: ../src/rootmenu.c:607 +#: ../src/rootmenu.c:611 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "chybná specifikace OPEN_MENU: %s" -#: ../src/rootmenu.c:680 +#: ../src/rootmenu.c:684 #, c-format msgid "%s:could not stat menu" msgstr "%s:nelze provést operaci 'stat' na menu" -#: ../src/rootmenu.c:688 +#: ../src/rootmenu.c:692 #, c-format msgid "%s:could not stat menu:%s" msgstr "%s:nelze provést operaci 'stat' na menu:%s" -#: ../src/rootmenu.c:706 +#: ../src/rootmenu.c:710 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "pøíli¹ mnoho parametrù pro pøíkaz OPEN_MENU: %s" -#: ../src/rootmenu.c:742 +#: ../src/rootmenu.c:746 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." @@ -825,137 +841,137 @@ msgstr "" "V aplikaèním menu je více ne¾ jeden pøíkaz WORKSPACE_MENU. Je povolen jen " "jeden." -#: ../src/rootmenu.c:771 ../src/rootmenu.c:789 +#: ../src/rootmenu.c:775 ../src/rootmenu.c:793 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:pro pøíkaz menu \"%s\" oèekávám parametr" -#: ../src/rootmenu.c:852 +#: ../src/rootmenu.c:856 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:neznámý pøíkaz \"%s\" v konfiguraci menu." -#: ../src/rootmenu.c:860 +#: ../src/rootmenu.c:864 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" msgstr "%s: pro polo¾ku \"%s\" nelze pøidat klávesou zkratku" -#: ../src/rootmenu.c:997 +#: ../src/rootmenu.c:1001 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:v konfiguraci menu %s byla pøekroèena maximální délka øádky" -#: ../src/rootmenu.c:1019 ../src/rootmenu.c:1111 ../src/rootmenu.c:1212 +#: ../src/rootmenu.c:1023 ../src/rootmenu.c:1115 ../src/rootmenu.c:1216 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:v konfiguraci menu %s oèekávám pøíkaz" -#: ../src/rootmenu.c:1049 +#: ../src/rootmenu.c:1053 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:syntaktická chyba v souboru s menu: oèekávána deklarace END" -#: ../src/rootmenu.c:1078 ../src/rootmenu.c:1177 +#: ../src/rootmenu.c:1082 ../src/rootmenu.c:1181 msgid "could not make arguments for menu file preprocessor" msgstr "nelze vytvoøit argumety pro preprocesor souboru s menu" -#: ../src/rootmenu.c:1084 ../src/rootmenu.c:1184 +#: ../src/rootmenu.c:1088 ../src/rootmenu.c:1188 #, c-format msgid "%s:could not open/preprocess menu file" msgstr "%s: nelze otevøít nebo pøedzpracovat soubor s menu" -#: ../src/rootmenu.c:1096 ../src/rootmenu.c:1197 +#: ../src/rootmenu.c:1100 ../src/rootmenu.c:1201 #, c-format msgid "%s:could not open menu file" msgstr "%s:nelze otevøít soubor s menu" -#: ../src/rootmenu.c:1123 +#: ../src/rootmenu.c:1127 #, c-format msgid "%s:invalid menu file. MENU command is missing" msgstr "%s:syntaktická chyba v souboru s menu: oèekáván pøíkaz MENU" -#: ../src/rootmenu.c:1132 +#: ../src/rootmenu.c:1136 msgid "error reading preprocessed menu data" msgstr "chyba pøi ètení pøedzpracovaného souboru s menu" -#: ../src/rootmenu.c:1224 +#: ../src/rootmenu.c:1228 #, c-format msgid "%s:no title given for the root menu" msgstr "%s: pro hlavní menu nebyl urèen titulek" -#: ../src/rootmenu.c:1307 ../src/rootmenu.c:1374 ../src/rootmenu.c:1418 +#: ../src/rootmenu.c:1311 ../src/rootmenu.c:1378 ../src/rootmenu.c:1422 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "nedostatek pamìti pøi konstrukci menu z obsahu adresáøe %s" -#: ../src/rootmenu.c:1317 +#: ../src/rootmenu.c:1321 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:nelze provést 'stat' na soubory \"%s\" v adresáøi s menu" -#: ../src/rootmenu.c:1472 +#: ../src/rootmenu.c:1476 msgid "Commands" msgstr "Pøíkazy" -#: ../src/rootmenu.c:1475 +#: ../src/rootmenu.c:1479 msgid "Restart" msgstr "Restart" -#: ../src/rootmenu.c:1476 +#: ../src/rootmenu.c:1480 msgid "Exit..." msgstr "Konec..." -#: ../src/rootmenu.c:1549 +#: ../src/rootmenu.c:1553 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "nelze najít soubor s menu \"%s\", odkazovaný z WMRootMenu" -#: ../src/rootmenu.c:1556 +#: ../src/rootmenu.c:1560 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "není pøístup k souboru s menu \"%s\", odkazovaném z WMRootMenu" -#: ../src/rootmenu.c:1567 +#: ../src/rootmenu.c:1571 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " "not be found " msgstr "pou¾itý soubor s menu \"%s\", odkazovaný z WMRootMenu není nalezen " -#: ../src/rootmenu.c:1590 ../src/rootmenu.c:1666 +#: ../src/rootmenu.c:1594 ../src/rootmenu.c:1670 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:chybný formát v konfiguraci hlavního menu \"%s\"" -#: ../src/screen.c:423 +#: ../src/screen.c:428 msgid "could not load logo image for panels" msgstr "pro panely nelze naèíst logo" -#: ../src/screen.c:426 +#: ../src/screen.c:431 #, c-format msgid "error making logo image for panel:%s" msgstr "chyba pøi vytváøení obrázku s logem pro panel:%s" -#: ../src/screen.c:612 +#: ../src/screen.c:695 #, c-format msgid "could not initialize graphics library context: %s" msgstr "nelze inicializovat kontext grafické knihovny: %s" -#: ../src/screen.c:644 +#: ../src/screen.c:727 msgid "could not do initialization of WINGs widget set" msgstr "nelze provést inicalizovat pøípravky WINGs" -#: ../src/screen.c:961 +#: ../src/screen.c:1059 #, c-format msgid "could not save session state in %s" msgstr "stav sezení nelze do %s ulo¾it" -#: ../src/session.c:138 ../src/wdefaults.c:559 ../src/winspector.c:347 +#: ../src/session.c:182 ../src/wdefaults.c:559 ../src/winspector.c:345 #, c-format msgid "can't convert \"%s\" to boolean" msgstr "\"%s\" nelze zkonvertovat na boolean" -#: ../src/session.c:750 ../src/session.c:844 +#: ../src/session.c:875 ../src/session.c:969 msgid "end of memory while saving session state" msgstr "nedostatek pamìti pøi ukládání stavu sezení" @@ -965,77 +981,84 @@ msgstr "nedostatek pam #. * If the sm was the last client of session, then we'll die #. * anyway, otherwise we can continue doing our stuff. #. -#: ../src/session.c:978 +#: ../src/session.c:1103 msgid "connection to the session manager was lost" -msgstr "pøipojení ke správci sezení se ztratilo" +msgstr "pøipojení ke správci sezení bylo ztraceno" #: ../src/stacking.c:72 msgid "could not get window list!!" msgstr "nelze získat seznam oken!!!" -#: ../src/startup.c:194 +#: ../src/startup.c:195 #, c-format msgid "internal X error: %s\n" msgstr "interní chyba systému X: %s\n" -#: ../src/startup.c:257 +#: ../src/startup.c:258 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "pøijat signál %i (%s) - restartuji\n" -#: ../src/startup.c:259 +#: ../src/startup.c:260 #, c-format msgid "got signal %i - restarting\n" msgstr "pøijat signál %i - restartuji\n" -#: ../src/startup.c:273 +#: ../src/startup.c:275 #, c-format -msgid "%s: Received signal SIGTERM. Exiting..." -msgstr "%s: Pøijat signál SIGTERM. Konèím..." +msgid "got signal %i (%s) - exiting...\n" +msgstr "pøijat signál %i (%s) - konec...\n" -#: ../src/startup.c:285 +#: ../src/startup.c:277 +#, c-format +msgid "got signal %i - exiting...\n" +msgstr "pøijat signál %i - konec...\n" + +#: ../src/startup.c:290 #, c-format msgid "got signal %i (%s)\n" msgstr "pøijat signál %i (%s)\n" -#: ../src/startup.c:287 +#: ../src/startup.c:292 #, c-format msgid "got signal %i\n" msgstr "získán signál %i\n" -#: ../src/startup.c:293 +#: ../src/startup.c:298 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "pøi úklidu po neoèekávané chybe do¹lo opìt k této chybì. Okam¾itý konec." -#: ../src/startup.c:304 +#: ../src/startup.c:309 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." -msgstr "fatální chyba, pravdìpodobnì chyba ve Window Makeru. Prosím vyplòte soubor BUGFORM(anglicky) a po¹lete ho." +msgstr "" +"fatální chyba, pravdìpodobnì chyba ve Window Makeru. Prosím vyplòte soubor " +"BUGFORM(anglicky) a po¹lete ho." #. restart another window manager so that the X session doesn't #. * go to space -#: ../src/startup.c:311 +#: ../src/startup.c:316 msgid "trying to start alternative window manager..." msgstr "zkou¹ím odstartovat jiný okenní mana¾er" -#: ../src/startup.c:710 +#: ../src/startup.c:719 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "je nakonfigurována velikost ikony %i, to je ov¹em málo. Pou¾iji 16\n" -#: ../src/startup.c:754 +#: ../src/startup.c:763 msgid "it seems that there already is a window manager running" msgstr "mám ten pocit, ¾e zde ji¾ jeden mana¾er oken bì¾í" -#: ../src/startup.c:760 +#: ../src/startup.c:769 #, c-format msgid "could not manage screen %i" msgstr "nelze pøipojit obrazovku %i" -#: ../src/startup.c:820 +#: ../src/startup.c:829 msgid "could not manage any screen" msgstr "nelze pøipojit ¾ádnou obrazovku" @@ -1063,7 +1086,7 @@ msgstr "nelze vykreslit texturu: %s" msgid "could not find icon file \"%s\"" msgstr "nelze získat soubor s ikonou \"%s\"" -#: ../src/window.c:2305 ../src/window.c:2437 +#: ../src/window.c:2400 ../src/window.c:2532 msgid "" "the NumLock, ScrollLock or similar key seems to be turned on.\n" "Turn it off or some mouse actions and keyboard shortcuts will not work." @@ -1110,11 +1133,11 @@ msgstr "Zv #: ../src/winmenu.c:457 msgid "Select" -msgstr "Vyber" +msgstr "Vybrat" #: ../src/winmenu.c:465 msgid "Move To" -msgstr "Pøesuò na" +msgstr "Pøesunout na" #: ../src/winmenu.c:470 msgid "Attributes..." @@ -1136,27 +1159,27 @@ msgstr "Demaximalizace" msgid "Unshade" msgstr "Celé okno" -#: ../src/winspector.c:281 +#: ../src/winspector.c:279 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "Pro toto okno nelze najít specifikovanou ikonu (%s)" -#: ../src/winspector.c:297 +#: ../src/winspector.c:295 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "Nelze otevøít pecifikovanou ikonu \"%s\":%s" #: ../src/winspector.c:1016 msgid "Save" -msgstr "Ulo¾" +msgstr "Ulo¾it" #: ../src/winspector.c:1024 msgid "Apply" -msgstr "Nastav" +msgstr "Nastavit" #: ../src/winspector.c:1030 msgid "Reload" -msgstr "Znovu naèíst" +msgstr "Obnovit" #: ../src/winspector.c:1039 ../src/winspector.c:1049 msgid "Window Specification" @@ -1198,7 +1221,7 @@ msgstr "Atributy" #: ../src/winspector.c:1117 msgid "Disable titlebar" -msgstr "Zaka¾ titulek" +msgstr "Zakázat titulek" #: ../src/winspector.c:1121 msgid "Disable resizebar" @@ -1206,18 +1229,17 @@ msgstr "Nelze zv #: ../src/winspector.c:1125 msgid "Disable close button" -msgstr "Zaka¾ prvek pro uzavøení" +msgstr "Zakázat prvek pro uzavøení" #: ../src/winspector.c:1129 msgid "Disable miniaturize button" -msgstr "Zaka¾ minimalizaci" +msgstr "Zakázat minimalizaci" #: ../src/winspector.c:1133 msgid "Keep on top / floating" msgstr "V¾dy navrch / plovoucí" #: ../src/winspector.c:1137 -#, fuzzy msgid "Keep at bottom / sunken" msgstr "Dr¾et vespod" @@ -1239,7 +1261,7 @@ msgstr "Dal #: ../src/winspector.c:1177 msgid "Ignore HideOthers" -msgstr "Ignoruj \"Skryj Ostatní\"" +msgstr "Ignorovat \"Skrýt Ostatní\"" #: ../src/winspector.c:1181 msgid "Don't bind keyboard shortcuts" @@ -1255,7 +1277,7 @@ msgstr "V #: ../src/winspector.c:1193 msgid "Don't let it take focus" -msgstr "Nepovol zamìøení" +msgstr "Nepovolit zamìøení" #: ../src/winspector.c:1197 msgid "Don't Save Session" @@ -1275,11 +1297,11 @@ msgstr "" #: ../src/winspector.c:1223 msgid "Miniwindow Image" -msgstr "Ikona" +msgstr "Ikona miniokna" #: ../src/winspector.c:1242 msgid "Update" -msgstr "Zapi¹" +msgstr "Nastavit" #: ../src/winspector.c:1257 msgid "Icon file name:" @@ -1287,7 +1309,7 @@ msgstr "Soubor ikony:" #: ../src/winspector.c:1269 msgid "Ignore client supplied icon" -msgstr "Ignoruj klientovy ikony" +msgstr "Ignorovat klientovy ikony" #: ../src/winspector.c:1276 msgid "Initial Workspace" @@ -1295,7 +1317,7 @@ msgstr "Po #: ../src/winspector.c:1281 msgid "Nowhere in particular" -msgstr "Nikde neurèeno" +msgstr "Neurèena" #: ../src/winspector.c:1315 msgid "Application Wide" @@ -1303,32 +1325,32 @@ msgstr "Atributy aplikace" #: ../src/winspector.c:1325 msgid "Start Hidden" -msgstr "Startuj skrytì" +msgstr "Startovat skrytì" #: ../src/winspector.c:1329 msgid "No application icon" msgstr "Bez aplikaèní ikony" -#: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:512 +#: ../src/workspace.c:107 ../src/workspace.c:108 ../src/workspace.c:516 #, c-format msgid "Workspace %i" msgstr "Plocha %i" -#: ../src/workspace.c:569 +#: ../src/workspace.c:573 msgid "Workspaces" msgstr "Pracovní plochy" -#: ../src/workspace.c:571 +#: ../src/workspace.c:575 msgid "could not create Workspace menu" msgstr "nelze vytvoøit menu pracovních ploch" -#: ../src/workspace.c:578 +#: ../src/workspace.c:582 msgid "New" msgstr "Nová" -#: ../src/workspace.c:579 +#: ../src/workspace.c:583 msgid "Destroy Last" -msgstr "Zru¹ poslední" +msgstr "Zru¹it poslední" #: ../src/xutil.c:228 msgid "invalid data in selection" diff --git a/po/ko.po b/po/ko.po index 6650276b..10731eb8 100644 --- a/po/ko.po +++ b/po/ko.po @@ -1,1334 +1,1341 @@ -# Window Maker po file for korean. -# Copyright (C) 1998 Free Software Foundation, Inc. -# Byeong-Chan Kim , 1998. -# Update: CHOI Junho , 1998/12. -# -msgid "" -msgstr "" -"Project-Id-Version: 0.50.2\n" -"POT-Creation-Date: 1999-01-11 06:02+0900\n" -"PO-Revision-Date: 1999-01-10 06:47+0900\n" -"Last-Translator: Byeong-Chan Kim \n" -"Language-Team: Korean\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=EUC-KR\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: ../src/appicon.c:509 ../src/dialog.c:216 ../src/dialog.c:272 -#: ../src/dock.c:3059 ../src/dockedapp.c:206 ../src/winspector.c:283 -#: ../src/winspector.c:299 -msgid "Error" -msgstr "¿À·ù" - -#: ../src/appicon.c:510 -msgid "Could not open specified icon file" -msgstr "ÁöÁ¤ÇÑ ¾ÆÀÌÄÜÀ» ¿­Áö ¸øÇÔ." - -#: ../src/appicon.c:511 ../src/dialog.c:115 ../src/dialog.c:216 -#: ../src/dialog.c:272 ../src/dialog.c:460 ../src/dock.c:424 -#: ../src/dock.c:3060 ../src/dockedapp.c:206 ../src/dockedapp.c:350 -#: ../src/winspector.c:284 ../src/winspector.c:300 -msgid "OK" -msgstr "È®ÀÎ" - -#: ../src/appicon.c:532 ../src/dock.c:272 ../src/winmenu.c:123 -msgid "Kill Application" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç Á¾·á" - -#: ../src/appicon.c:533 ../src/dock.c:273 ../src/winmenu.c:124 -msgid "" -"This will kill the application.\n" -"Any unsaved changes will be lost.\n" -"Please confirm." -msgstr "" -"¾ÖÇø®ÄÉÀ̼ÇÀ» °­Á¦ Á¾·áÇÕ´Ï´Ù.\n" -"ÀúÀåÇÏÁö ¾ÊÀº º¯°æ »çÇ×Àº ÀÒ°Ô µË´Ï´Ù.\n" -"°è¼Ó ÇϽðڽÀ´Ï±î?" - -#: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 -msgid "Yes" -msgstr "¿¹" - -#: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 -msgid "No" -msgstr "¾Æ´Ï¿À" - -#: ../src/appicon.c:548 ../src/dock.c:1065 -msgid "Unhide Here" -msgstr "¼û±ä °Í ÀÌ°÷¿¡ º¸ÀÓ" - -#: ../src/appicon.c:549 ../src/appicon.c:574 ../src/winmenu.c:441 -msgid "Hide" -msgstr "¼û±è" - -#: ../src/appicon.c:550 -msgid "Set Icon..." -msgstr "¾ÆÀÌÄÜ ÁöÁ¤..." - -#: ../src/appicon.c:551 ../src/dock.c:1071 ../src/rootmenu.c:225 -#: ../src/rootmenu.c:239 ../src/winmenu.c:488 -msgid "Kill" -msgstr "Á¾·á" - -#: ../src/appicon.c:572 -msgid "Unhide" -msgstr "(¾È)¼û±è" - -#: ../src/defaults.c:735 ../src/startup.c:700 ../src/startup.c:718 -#: ../src/startup.c:724 -#, c-format -msgid "could not read domain \"%s\" from defaults database" -msgstr "±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ µµ¸ÞÀÎ \"%s\"¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/defaults.c:781 ../src/defaults.c:905 ../src/defaults.c:944 -#: ../src/defaults.c:974 -#, c-format -msgid "Domain %s (%s) of defaults database is corrupted!" -msgstr "±âº» µ¥ÀÌÅͺ£À̽ºÀÇ µµ¸ÞÀÎ %s (%s)ÀÌ ±úÁ³½À´Ï´Ù!" - -#: ../src/defaults.c:786 ../src/defaults.c:926 ../src/defaults.c:957 -#: ../src/defaults.c:983 -#, c-format -msgid "could not load domain %s from user defaults database" -msgstr "»ç¿ëÀÚ ±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ µµ¸ÞÀÎ %s¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/defaults.c:797 ../src/defaults.c:890 -#, c-format -msgid "Domain %s (%s) of global defaults database is corrupted!" -msgstr "Àü¿ª ±âº» µ¥ÀÌÅͺ£À̽ºÀÇ µµ¸ÞÀÎ %s (%s)´Â ±úÁ³½À´Ï´Ù!" - -#: ../src/defaults.c:816 ../src/defaults.c:895 -#, c-format -msgid "could not load domain %s from global defaults database" -msgstr "Àü¿ª ±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ µµ¸ÞÀÎ %s¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/defaults.c:1266 -#, c-format -msgid "wrong option value for key \"%s\". Should be one of %s" -msgstr "Å° \"%s\"ÀÇ ¿É¼Ç Æ÷¸ËÀÌ À߸øµÊ. %sÁß ÇϳªÀ̾î¾ß ÇÕ´Ï´Ù" - -#: ../src/defaults.c:1313 -#, c-format -msgid "can't convert \"%s\" to boolean for key \"%s\"" -msgstr "\"%s\"¸¦ Å° \"%s\"¿¡ ´ëÇØ ºÎ¿ï °ªÀ¸·Î º¯È¯ÇÒ ¼ö ¾ø½À´Ï´Ù" - -#: ../src/defaults.c:1318 ../src/defaults.c:1352 ../src/defaults.c:1384 -#: ../src/defaults.c:1397 ../src/defaults.c:1412 ../src/defaults.c:1426 -#: ../src/defaults.c:1498 ../src/defaults.c:1510 ../src/defaults.c:1858 -#: ../src/defaults.c:1875 ../src/defaults.c:1888 ../src/defaults.c:1921 -#: ../src/defaults.c:1940 ../src/defaults.c:1971 ../src/defaults.c:2048 -#, c-format -msgid "using default \"%s\" instead" -msgstr "±âº»°ªÀÎ \"%s\" ¸¦ ´ë½Å »ç¿ëÇÔ" - -#: ../src/defaults.c:1349 -#, c-format -msgid "can't convert \"%s\" to integer for key \"%s\"" -msgstr "\"%s\"¸¦ Å° \"%s\"¿¡ ´ëÇØ Á¤¼ö°ªÀ¸·Î º¯È¯ÇÒ ¼ö ¾ø½À´Ï´Ù" - -#: ../src/defaults.c:1379 ../src/defaults.c:1493 ../src/defaults.c:1853 -#: ../src/defaults.c:1870 ../src/defaults.c:1916 ../src/defaults.c:1966 -#: ../src/wdefaults.c:541 ../src/wdefaults.c:577 -#, c-format -msgid "Wrong option format for key \"%s\". Should be %s." -msgstr "\"%s\" Å°ÀÇ ¿É¼Ç Æ÷¸ËÀÌ À߸øµÊ. %s À̾î¾ß ÇÕ´Ï´Ù." - -#: ../src/defaults.c:1392 -#, c-format -msgid "Incorrect number of elements in array for key \"%s\"." -msgstr "Å° \"%s\"¿¡ ´ëÇÑ ¹è¿­ÀÇ ¿ø¼Ò ¼ö°¡ À߸øµÇ¾ú½À´Ï´Ù." - -#: ../src/defaults.c:1407 -#, c-format -msgid "Wrong value for key \"%s\". Should be Coordinate." -msgstr "\"%s\" Å° °ªÀÌ À߸øµÊ. ÁÂÇ¥°¡ µÇ¾î¾ß ÇÕ´Ï´Ù." - -#: ../src/defaults.c:1422 -#, c-format -msgid "can't convert array to integers for \"%s\"." -msgstr "\"%s\"¿¡ ´ëÇØ ¹è¿­À» Á¤¼ö°ªÀ¸·Î º¯È¯ÇÒ ¼ö ¾øÀ½." - -#: ../src/defaults.c:1619 ../src/defaults.c:1651 ../src/defaults.c:1667 -#: ../src/defaults.c:1713 ../src/defaults.c:1753 ../src/defaults.c:1791 -#: ../src/defaults.c:1807 -#, c-format -msgid "\"%s\" is not a valid color name" -msgstr "\"%s\" ´Â ¿Ã¹Ù¸¥ »ö»ó¸íÀÌ ¾Æ´Ô" - -#: ../src/defaults.c:1632 -msgid "bad number of arguments in gradient specification" -msgstr "±×·¡µð¾ðÆ® ÁöÁ¤½Ã ÀμöÀÇ ¼ö°¡ À߸øµÇ¾ú½À´Ï´Ù" - -#: ../src/defaults.c:1686 -msgid "too few arguments in multicolor gradient specification" -msgstr "´ÙÁß»ö ±×·¡µð¾ðÆ® ÁöÁ¤½Ã ÀμöÀÇ ¼ö°¡ ³Ê¹« Àû½À´Ï´Ù" - -#: ../src/defaults.c:1780 -msgid "bad number of arguments in textured gradient specification" -msgstr "±×·¡µð¾ðÆ® ÁöÁ¤½Ã ÀμöÀÇ ¼ö°¡ À߸øµÇ¾ú½À´Ï´Ù" - -#: ../src/defaults.c:1823 -#, c-format -msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" -msgstr "tgradient ÅؽºÃ³ \"%s\"¿¡ ¸ðÈ£ÇÑ °ªÀÌ ÀÖ½À´Ï´Ù. [0..255]¿©¾ß ÇÕ´Ï´Ù." - -#: ../src/defaults.c:1836 -#, c-format -msgid "invalid texture type %s" -msgstr "À߸øµÈ ÅؽºÃ³ À¯Çü %s" - -#: ../src/defaults.c:1883 -#, c-format -msgid "Error in texture specification for key \"%s\"" -msgstr "Å° \"%s\"ÀÇ ÅؽºÃ³ ÁöÁ¤¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù" - -#: ../src/defaults.c:1936 -msgid "Wrong type for workspace background. Should be a texture type." -msgstr "ÀÛ¾÷°ø°£ ¹è°æ Á¾·ù°¡ À߸øµÇ¾ú½À´Ï´Ù. ÅؽºÃ³¿©¾ß ÇÕ´Ï´Ù." - -#: ../src/defaults.c:1989 -#, c-format -msgid "Wrong type for background of workspace %i. Should be a texture." -msgstr "ÀÛ¾÷°ø°£ ¹è°æ Á¾·ù°¡ À߸øµÇ¾ú½À´Ï´Ù. ÅؽºÃ³¿©¾ß ÇÕ´Ï´Ù." - -#: ../src/defaults.c:2013 -msgid "could not load any usable font!!!" -msgstr "»ç¿ë °¡´ÉÇÑ ±Û²ÃÀ» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù!!!" - -#: ../src/defaults.c:2043 -#, c-format -msgid "could not get color for key \"%s\"" -msgstr "Å° \"%s\"ÀÇ »öÀ» ¾òÀ» ¼ö ¾øÀ½" - -#: ../src/defaults.c:2102 ../src/rootmenu.c:450 -#, c-format -msgid "%s:invalid key modifier \"%s\"" -msgstr "%s:À߸øµÈ Å° ¼öÁ¤ÀÚ \"%s\"" - -#: ../src/defaults.c:2114 -#, c-format -msgid "%s:invalid kbd shortcut specification \"%s\"" -msgstr "%s:À߸øµÈ Å°º¸µå ´ÜÃàÅ° ÁöÁ¤ \"%s\"" - -#: ../src/defaults.c:2121 -#, c-format -msgid "%s:invalid key in shortcut \"%s\"" -msgstr "%s:»¡¸®°¡±â \"%s\"¿¡ À߸øµÈ Å°" - -#: ../src/defaults.c:2147 -#, c-format -msgid "%s: modifier key %s is not valid" -msgstr "%s: À߸øµÈ ¼öÁ¤ÀÚ Å° %s" - -#: ../src/defaults.c:2223 -msgid "could not render texture for icon background" -msgstr "¾ÆÀÌÄÜ ¹è°æÀÇ ÅؽºÃ³¸¦ ±×¸± ¼ö ¾ø½À´Ï´Ù" - -#: ../src/dialog.c:115 ../src/dialog.c:467 ../src/dock.c:424 -#: ../src/dockedapp.c:356 ../src/rootmenu.c:187 ../src/rootmenu.c:225 -#: ../src/rootmenu.c:239 -msgid "Cancel" -msgstr "Ãë¼Ò" - -#: ../src/dialog.c:211 -msgid "Could not open directory " -msgstr "µð·ºÅ丮¸¦ ¿­ ¼ö ¾øÀ½ " - -#: ../src/dialog.c:267 -msgid "Could not load image file " -msgstr "À̹ÌÁö ÆÄÀÏÀ» ÀÐÀ» ¼ö ¾øÀ½ " - -#: ../src/dialog.c:404 -msgid "Directories" -msgstr "µð·ºÅ丮" - -#: ../src/dialog.c:413 -msgid "Icons" -msgstr "¾ÆÀÌÄÜ" - -#: ../src/dialog.c:450 -msgid "File Name:" -msgstr "ÆÄÀϸí:" - -#: ../src/dialog.c:473 -msgid "Choose File" -msgstr "ÆÄÀÏ ¼±ÅÃ" - -#: ../src/dialog.c:483 -msgid "Icon Chooser" -msgstr "¾ÆÀÌÄÜ ¼±Åñâ" - -#: ../src/dock.c:213 -#, c-format -msgid "Type the name for workspace %i:" -msgstr "ÀÛ¾÷°ø°£ %i ÀÇ À̸§À» ÀÔ·ÂÇϼ¼¿ä:" - -#: ../src/dock.c:214 ../src/dock.c:1044 -msgid "Rename Workspace" -msgstr "ÀÛ¾÷°ø°£ À̸§ ¹Ù²Þ" - -#: ../src/dock.c:422 -msgid "Workspace Clip" -msgstr "ÀÛ¾÷°ø°£ Ŭ¸³" - -#: ../src/dock.c:423 -msgid "All selected icons will be removed!" -msgstr "¼±ÅÃÇÑ ¸ðµç ¾ÆÀÌÄÜÀÌ ¾ø¾îÁú °ÍÀÔ´Ï´Ù!!" - -#: ../src/dock.c:470 -msgid "Keep Icon" -msgstr "¾ÆÀÌÄÜ À¯Áö" - -#: ../src/dock.c:471 ../src/dock.c:1977 ../src/dock.c:2106 -msgid "Type the command used to launch the application" -msgstr "¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇشµ¥ ÇÊ¿äÇÑ ¸í·ÉÀ» ÀÔ·ÂÇÕ´Ï´Ù" - -#: ../src/dock.c:857 -#, c-format -msgid "could not launch application %s\n" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç %sÀ» ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù\n" - -#: ../src/dock.c:912 -msgid "could not create workspace submenu for Clip menu" -msgstr "Ŭ¸³ ¸Þ´º¸¦ À§ÇÑ ÀÛ¾÷°ø°£ ÇϺθ޴º¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù" - -#: ../src/dock.c:975 -msgid "could not create options submenu for Clip menu" -msgstr "Ŭ¸³ ¸Þ´º¸¦ À§ÇÑ ¿É¼Ç ÇϺθ޴º¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù" - -#: ../src/dock.c:979 ../src/dock.c:1033 ../src/winmenu.c:383 -msgid "Keep on top" -msgstr "Ç×»ó À§·Î" - -#: ../src/dock.c:985 -msgid "Collapsed" -msgstr "¾ÆÀÌÄÜ ¼û±è" - -#: ../src/dock.c:991 -msgid "AutoCollapse" -msgstr "ÀÚµ¿ ¼û±è" - -#: ../src/dock.c:997 -msgid "AutoRaiseLower" -msgstr "ÀÚµ¿ ¿Ã¸²/³»¸²" - -#: ../src/dock.c:1003 -msgid "AutoAttract Icons" -msgstr "¾ÆÀÌÄÜ ÀÚµ¿ ¸ðÀ½" - -#: ../src/dock.c:1009 -msgid "Keep Attracted Icons" -msgstr "¸ðÀº ¾ÆÀÌÄÜ À¯Áö" - -#: ../src/dock.c:1039 -msgid "Clip Options" -msgstr "Ŭ¸³ ¿É¼Ç" - -#: ../src/dock.c:1046 -msgid "(Un)Select Icon" -msgstr "¾ÆÀÌÄÜ (¾È)¼±ÅÃ" - -#: ../src/dock.c:1048 -msgid "(Un)Select All Icons" -msgstr "¸ðµç ¾ÆÀÌÄÜ (¾È)¼±ÅÃ" - -#: ../src/dock.c:1051 -msgid "Keep Icon(s)" -msgstr "¾ÆÀÌÄÜ À¯Áö" - -#: ../src/dock.c:1053 -msgid "Move Icon(s) To" -msgstr "¾ÆÀÌÄÜ ¿Å±è :" - -#: ../src/dock.c:1058 -msgid "Remove Icon(s)" -msgstr "¾ÆÀÌÄÜ ¾ø¾Ú" - -#: ../src/dock.c:1060 -msgid "Attract Icons" -msgstr "¾ÆÀÌÄÜ ¸ðÀ½" - -#: ../src/dock.c:1063 -msgid "Launch" -msgstr "½ÇÇà" - -#: ../src/dock.c:1067 -msgid "(Un)Hide" -msgstr "(¾È)¼û±è" - -#: ../src/dock.c:1069 -msgid "Settings..." -msgstr "¼³Á¤..." - -#: ../src/dock.c:1454 ../src/dock.c:1468 ../src/dock.c:1482 ../src/dock.c:1492 -#, c-format -msgid "bad value in docked icon state info %s" -msgstr "Dock ¾ÆÀÌÄÜÀÇ »óÅÂÁ¤º¸¿¡ À߸øµÈ °ª %s" - -#: ../src/dock.c:1500 -#, c-format -msgid "bad value in docked icon position %i,%i" -msgstr "Dock ¾ÆÀÌÄÜÀÇ À§Ä¡°ª %i,%i ´Â À߸øµÈ °ª" - -#: ../src/dock.c:1744 -msgid "there are too many icons stored in dock. Ignoring what doesn't fit" -msgstr "Dock ¿¡ µé¾î°£ ¾ÆÀÌÄÜÀÌ ³Ê¹« ¸¹À½. ¸ÂÁö ¾Ê´Â °ÍÀº ¹«½ÃÇÕ´Ï´Ù" - -#. icon->forced_dock = 1; -#: ../src/dock.c:1976 ../src/dock.c:2105 -msgid "Dock Icon" -msgstr "Dock ¾ÆÀÌÄÜ" - -#: ../src/dock.c:3052 ../src/dock.c:3056 -#, c-format -msgid "Could not execute command \"%s\"" -msgstr "\"%s\" ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ¾øÀ½." - -#: ../src/dockedapp.c:128 -#, c-format -msgid "could not find icon %s, used in a docked application" -msgstr "µµÅ·µÈ ¾ÖÇø®ÄÉÀ̼ǿ¡ »ç¿ëÇÒ ¾ÆÀÌÄÜ %sÀ» ãÀ» ¼ö ¾øÀ½" - -#: ../src/dockedapp.c:205 -#, c-format -msgid "Could not open specified icon file:%s" -msgstr "ÁöÁ¤µÈ ¾ÆÀÌÄÜ ÆÄÀÏÀ» ¿­ ¼ö ¾øÀ½:%s" - -#: ../src/dockedapp.c:291 -msgid "Start when WindowMaker is started" -msgstr "Window Maker¸¦ ½ÇÇàÇÒ¶§ ½ÃÀÛÇÔ" - -#: ../src/dockedapp.c:298 -msgid "Application path and arguments" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç °æ·Î¿Í Àμö" - -#: ../src/dockedapp.c:309 -msgid "Command for files dropped with DND" -msgstr "µå·¢¿£µå·ÓÀ¸·Î ½ÇÇàÇÒ ¸í·É¾î" - -#: ../src/dockedapp.c:321 -#, c-format -msgid "%d will be replaced with the file name" -msgstr "%d´Â ÆÄÀÏ À̸§À¸·Î ´ëüÇÕ´Ï´Ù" - -#: ../src/dockedapp.c:325 -msgid "DND support was not compiled in" -msgstr "ÄÄÆÄÀϽà DND Áö¿øÀÌ Æ÷ÇÔµÇÁö ¾Ê¾Ò½À´Ï´Ù" - -#: ../src/dockedapp.c:331 -msgid "Icon Image" -msgstr "¾ÆÀÌÄÜ À̹ÌÁö" - -#: ../src/dockedapp.c:343 ../src/winspector.c:1235 -msgid "Browse..." -msgstr "ã±â..." - -#: ../src/dockedapp.c:388 -msgid "Docked Application Settings" -msgstr "Dock ¾ÖÇø®ÄÉÀÌ¼Ç ¼³Á¤" - -#: ../src/event.c:350 -msgid "stack overflow: too many dead processes" -msgstr "½ºÅà ¿À¹öÇ÷οì: Á×Àº ÇÁ·Î¼¼½º°¡ ³Ê¹« ¸¹À½" - -#: ../src/framewin.c:485 -#, c-format -msgid "could not render gradient: %s" -msgstr "±×·¡µð¾ðÆ®¸¦ Ç¥ÇöÇÏÁö ¸øÇÔ: %s" - -#: ../src/framewin.c:501 ../src/framewin.c:516 ../src/framewin.c:527 -#: ../src/framewin.c:534 ../src/framewin.c:541 ../src/icon.c:296 -#: ../src/texture.c:578 -#, c-format -msgid "error rendering image:%s" -msgstr "À̹ÌÁö ·»´õ¸µ ¿¡·¯:%s" - -#: ../src/icon.c:182 ../src/wdefaults.c:411 -#, c-format -msgid "error loading image file \"%s\"" -msgstr "À̹ÌÁö ÆÄÀÏ \"%s\"¸¦ Àд Áß ¿¡·¯" - -#: ../src/icon.c:430 ../src/icon.c:439 -#, c-format -msgid "could not create directory %s" -msgstr "µð·ºÅ丮 %s¸¦ ¸¸µé ¼ö ¾øÀ½" - -#: ../src/icon.c:706 -#, c-format -msgid "could not find default icon \"%s\"" -msgstr "±âº» ¾ÆÀÌÄÜ \"%s\"¸¦ ãÁö ¸øÇÔ" - -#: ../src/icon.c:712 -#, c-format -msgid "could not load default icon \"%s\":%s" -msgstr "±âº» ¾ÆÀÌÄÜ \"%s\"¸¦ ÀÐÁö ¸øÇÔ:%s" - -#: ../src/main.c:194 -msgid "could not exec window manager" -msgstr "â °ü¸®ÀÚ¸¦ ½ÇÇàÇÒ ¼ö ¾øÀ½" - -#: ../src/main.c:195 -msgid "Restart failed!!!" -msgstr "Àç½ÃÀÛ ½ÇÆÐ!!!" - -#: ../src/main.c:242 -#, c-format -msgid "%s aborted.\n" -msgstr "%s´Â ÁߴܵǾú½À´Ï´Ù.\n" - -#: ../src/main.c:253 -#, c-format -msgid "usage: %s [-options]\n" -msgstr "»ç¿ë¹ý: %s [-¿É¼Ç]\n" - -#: ../src/main.c:254 -msgid "options:" -msgstr "¿É¼Ç:" - -#: ../src/main.c:256 -msgid " -nocpp \t\tdisable preprocessing of configuration files" -msgstr " -nocpp \t\t¼³Á¤ÆÄÀÏÀÇ Àü󸮸¦ ÇÏÁö ¾ÊÀ½" - -#: ../src/main.c:258 -msgid " -nodock\t\tdo not open the application Dock" -msgstr " -nodock\t\t¾ÖÇø®ÄÉÀÌ¼Ç DockÀ» ¿­Áö ¾ÊÀ½" - -#: ../src/main.c:259 -msgid " -noclip\t\tdo not open the workspace Clip" -msgstr "-noclip\t\tÀÛ¾÷°ø°£ Ŭ¸³À» ¿­Áö ¾ÊÀ½" - -#. -#. puts(_(" -locale locale locale to use")); -#. -#: ../src/main.c:263 -msgid " -visualid visualid\tvisual id of visual to use" -msgstr "-visualid ºñÁÖ¾óID\t»ç¿ëÇÒ ºñÁÖ¾óÀÇ ºñÁÖ¾ó ID" - -#: ../src/main.c:264 -msgid " -display host:dpy\tdisplay to use" -msgstr " -display È£½ºÆ®:µð½ºÇ÷¹ÀÌ\t»ç¿ëÇÒ µð½ºÇ÷¹ÀÌ" - -#: ../src/main.c:265 -msgid " -static\t\tdo not update or save configurations" -msgstr " -static\t\t¼³Á¤À» °»½ÅÇϰųª ÀúÀåÇÏÁö ¾Ê´Â´Ù" - -#: ../src/main.c:266 -msgid " -version\t\tprint version and exit" -msgstr " -version\t\t¹öÀüÀ» Ç¥½ÃÇÏ°í Á¾·á" - -#: ../src/main.c:278 -#, c-format -msgid "" -"could not find user GNUstep directory (%s).\n" -"Make sure you have installed Window Maker correctly and run wmaker.inst" -msgstr "" -"»ç¿ëÀÚ GNUstep µð·ºÅ丮(%s)¸¦ ãÀ»¼ö ¾ø½À´Ï´Ù.\n" -"Window Maker°¡ Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö ´Ù½Ã È®ÀÎ ÈÄ wmaker.inst ¸¦ ½ÇÇàÇϽʽÿÀ" - -#: ../src/main.c:297 -#, c-format -msgid "%s:could not execute initialization script" -msgstr "%s:ÃʱâÈ­ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù." - -#: ../src/main.c:314 -#, c-format -msgid "%s:could not execute exit script" -msgstr "%s:Á¾·á ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù." - -#: ../src/main.c:368 ../src/main.c:375 ../src/main.c:382 ../src/main.c:396 -#, c-format -msgid "too few arguments for %s" -msgstr "%s¸¦ À§ÇÑ ÀÎÀÚ°¡ ºÎÁ·ÇÕ´Ï´Ù" - -#: ../src/main.c:386 -#, c-format -msgid "bad value for visualid: \"%s\"" -msgstr "ºñÁÖ¾ó ID¿¡ À߸øµÈ °ª: \"%s\"" - -#: ../src/main.c:444 -msgid "X server does not support locale" -msgstr "X ¼­¹ö°¡ ·ÎÄÉÀÏÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù" - -#: ../src/main.c:447 -msgid "cannot set locale modifiers" -msgstr "·ÎÄÉÀÏ ¼öÁ¤ÀÚ(modifier)¸¦ ¼³Á¤ÇÒ ¼ö ¾øÀ½" - -#: ../src/main.c:464 -#, c-format -msgid "could not open display \"%s\"" -msgstr "\"%s\" µð½ºÇ÷¹À̸¦ ¿­Áö ¸øÇÔ." - -#: ../src/menu.c:285 -msgid "wrealloc() failed while trying to add menu item" -msgstr "¸Þ´º ¾ÆÀÌÅÛ Ãß°¡ ½ÃµµÁß wrealloc() ½ÇÆÐ" - -#: ../src/misc.c:71 -#, c-format -msgid "could not define value for %s for cpp" -msgstr "cppÀÇ %s¸¦ À§ÇÑ °ªÀÌ Á¤ÀǵÇÁö ¾ÊÀ½" - -#: ../src/misc.c:101 -#, c-format -msgid "could not get password entry for UID %i" -msgstr "UID %iÀÇ ¾ÏÈ£ Ç׸ñ¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/misc.c:125 -#, c-format -msgid "your machine is misconfigured. HOSTNAME is set to %s" -msgstr "½Ã½ºÅÛ ¼³Á¤ÀÌ À߸øµÇ¾ú½À´Ï´Ù. HOSTNAMEÀ» %s·Î ¼³Á¤ÇÕ´Ï´Ù" - -#: ../src/misc.c:131 -#, c-format -msgid "your machine is misconfigured. HOST is set to %s" -msgstr "½Ã½ºÅÛ ¼³Á¤ÀÌ À߸øµÇ¾ú½À´Ï´Ù. HOST¸¦ %s·Î ¼³Á¤ÇÕ´Ï´Ù" - -#: ../src/misc.c:773 -msgid "selection timed-out" -msgstr "¼±Åýð£ ÃÊ°ú" - -#: ../src/misc.c:788 -msgid "Program Arguments" -msgstr "ÇÁ·Î±×·¥ Àμö" - -#: ../src/misc.c:789 -msgid "Enter command arguments:" -msgstr "¸í·É¾î Àμö¸¦ ÀÔ·ÂÇϼ¼¿ä:" - -#: ../src/misc.c:884 -msgid "unable to get dropped data from DND drop" -msgstr "DND µå·Ó¿¡¼­ ¶³¾î¶ß¸° µ¥ÀÌÅ͸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/misc.c:892 -msgid "error getting dropped data from DND drop" -msgstr "DND µå·Ó¿¡¼­ ¶³¾î¶ß¸° µ¥ÀÌÅ͸¦ ¾ò´Âµ¥ ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù" - -#: ../src/misc.c:898 -msgid "out of memory while getting data from DND drop" -msgstr "DND µå·Ó¿¡¼­ ¶³¾î¶ß¸° µ¥ÀÌÅ͸¦ ¾ò´Âµ¥ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÕ´Ï´Ù" - -#: ../src/misc.c:942 ../src/misc.c:1062 -#, c-format -msgid "out of memory during expansion of \"%s\"" -msgstr "\"%s\" ÀÇ È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" - -#: ../src/misc.c:996 -msgid "out of memory during expansion of \"%w\"" -msgstr "\"%w\" ÀÇ È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" - -#: ../src/misc.c:1015 -msgid "out of memory during expansion of \"%a\"" -msgstr "\"%a\" ÀÇ È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" - -#: ../src/misc.c:1041 -#, c-format -msgid "out of memory during expansion of \"%d\"" -msgstr "\"%d\" ÀÇ È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" - -#: ../src/misc.c:1055 -msgid "selection not available" -msgstr "¼±Åà ºÒ°¡´É" - -#: ../src/misc.c:1127 ../src/misc.c:1133 -#, c-format -msgid "bad window name value in %s state info" -msgstr "»óÅ Á¤º¸ %sÀÇ Ã¢ À̸§ÀÌ À߸øµÊ" - -#: ../src/misc.c:1387 -msgid "could not send message to background image helper" -msgstr "¹è°æ À̹ÌÁö \"%s\" ¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/pixmap.c:235 -#, c-format -msgid "could not load mask bitmap file \"%s\". Won't use mask" -msgstr "ºñÆ®¸Ê ÆÄÀÏ \"%s\"¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù. ¸¶½ºÅ©¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù" - -#: ../src/proplist.c:180 -msgid "unterminated string" -msgstr "Á¾·áÇÏÁö ¾ÊÀº ¹®ÀÚ¿­" - -#: ../src/proplist.c:247 -msgid "unterminated array" -msgstr "Á¾·áÇÏÁö ¾ÊÀº ¹®ÀÚ¿­" - -#: ../src/proplist.c:256 -msgid "missing , in array or unterminated array" -msgstr "¹è¿­¿¡¼­ ½°Ç¥°¡ ºüÁ³°Å³ª Á¾·áÇÏÁö ¾ÊÀº ¹è¿­" - -#: ../src/proplist.c:267 -msgid "could not get array element" -msgstr "¹è¿­ ¿ø¼Ò¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/proplist.c:297 -msgid "unterminated dictionary" -msgstr "Á¾·áÇÏÁö ¾ÊÀº »çÀü" - -#: ../src/proplist.c:315 -msgid "missing dictionary key" -msgstr "»çÀü Å° ¾øÀ½" - -#: ../src/proplist.c:317 -msgid "missing dictionary entry key or unterminated dictionary" -msgstr "»çÀü ¿£Æ®¸® Å°°¡ ¾ø°Å³ª Á¾·áÇÏÁö ¾ÊÀº »çÀü" - -#: ../src/proplist.c:323 -msgid "error parsing dictionary key" -msgstr "»çÀü Å°¸¦ Çؼ®Çϴµ¥ ¿À·ùÀÔ´Ï´Ù" - -#: ../src/proplist.c:332 -msgid "missing = in dictionary entry" -msgstr "»çÀü ¿£Æ®¸®¿¡ = °¡ ºüÁ® ÀÖ½À´Ï´Ù" - -#: ../src/proplist.c:351 -msgid "missing ; in dictionary entry" -msgstr "»çÀü ¿£Æ®¸®¿¡ ;°¡ ºüÁ® ÀÖ½À´Ï´Ù" - -#: ../src/proplist.c:432 -msgid "was expecting a string, dictionary, data or array." -msgstr "´Â ¹®ÀÚ¿­, »çÀü, µ¥ÀÌÅÍ ¶Ç´Â ¹è¿­ÀÌ ÇÊ¿äÇÕ´Ï´Ù" - -#: ../src/proplist.c:434 -msgid "Comments are not allowed inside WindowMaker owned domain files." -msgstr "ÁÖ¼®¹®Àº Window Maker µµ¸ÞÀÎ ÆÄÀÏ ³»¿¡¼­´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù." - -#: ../src/proplist.c:453 -#, c-format -msgid "could not open domain file %s" -msgstr "µµ¸ÞÀÎ ÆÄÀÏ %s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù" - -#: ../src/proplist.c:466 -msgid "extra data after end of file" -msgstr "ÆÄÀÏ ³¡ µÚ¿¡ µ¥ÀÌÅÍ°¡ ¶Ç ÀÖ½À´Ï´Ù" - -#: ../src/resources.c:71 -#, c-format -msgid "The following character sets are missing in %s:" -msgstr "´ÙÀ½ ¹®ÀÚ ¼ÂÀº %s¿¡¼­ ºüÁ® ÀÖ½À´Ï´Ù:" - -#: ../src/resources.c:76 -#, c-format -msgid "The string \"%s\" will be used in place" -msgstr "¹®ÀÚ¿­ \"%s\"ÀÌ ÀÌ ¹®ÀÚ¼ÂÀÇ ±ÛÀÚ¸¦" - -#: ../src/resources.c:78 -msgid "of any characters from those sets." -msgstr "´ë½ÅÇÏ¿© »ç¿ëµË´Ï´Ù." - -#: ../src/resources.c:81 -#, c-format -msgid "could not create font set %s. Trying fixed" -msgstr "%s ±Û²Ã ¼ÂÀ» ¸¸µéÁö ¸øÇÔ. fixed·Î ´ëüÇÕ´Ï´Ù" - -#: ../src/resources.c:98 -#, c-format -msgid "could not load font %s. Trying fixed" -msgstr "%s ±Û²ÃÀÌ ¾øÀ½. fixed·Î ´ëüÇÕ´Ï´Ù" - -#: ../src/resources.c:136 -#, c-format -msgid "could not parse color \"%s\"" -msgstr "»ö \"%s\"À» Çؼ®ÇÒ ¼ö ¾ø½À´Ï´Ù" - -#: ../src/resources.c:140 -#, c-format -msgid "could not allocate color \"%s\"" -msgstr "»ö \"%s\"À» ÇÒ´çÇÒ ¼ö ¾øÀ½" - -#: ../src/rootmenu.c:185 ../src/rootmenu.c:187 -msgid "Exit" -msgstr "Á¾·á" - -#: ../src/rootmenu.c:186 -msgid "Exit window manager?" -msgstr "â °ü¸®ÀÚ¸¦ Á¾·áÇϽðڽÀ´Ï±î?" - -#: ../src/rootmenu.c:222 -msgid "Close X session" -msgstr "X ¼¼¼Ç ´Ý±â" - -#: ../src/rootmenu.c:223 -msgid "" -"Close Window System session?\n" -"Kill might close applications with unsaved data." -msgstr "" -"À©µµ¿ì ½Ã½ºÅÛ ¼¼¼ÇÀ» Á¾·áÇÏ°Ú½À´Ï±î?\n" -"¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¾·áµÇ°í ÀúÀåÇÏÁö ¾ÊÀº ÀÚ·á´Â ÀÒ½À´Ï´Ù." - -#. -#. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); -#. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); -#. -#: ../src/rootmenu.c:225 ../src/winmenu.c:481 -msgid "Close" -msgstr "´Ý±â" - -#: ../src/rootmenu.c:236 -msgid "Kill X session" -msgstr "X ¼¼¼Ç Á¾·á" - -#: ../src/rootmenu.c:237 -msgid "" -"Kill Window System session?\n" -"(all applications will be closed)" -msgstr "" -"À©µµ¿ì ½Ã½ºÅÛ ¼¼¼ÇÀ» Á¾·áÇÏ°Ú½À´Ï±î?\n" -"(¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¾·áµË´Ï´Ù)" - -#: ../src/rootmenu.c:463 -#, c-format -msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" -msgstr "%s: À߸øµÈ Å°º¸µå ´ÜÃàÅ° ÁöÁ¤ \"%s\"(¿£Æ®¸® %s)" - -#: ../src/rootmenu.c:471 -#, c-format -msgid "%s:invalid key in shortcut \"%s\" for entry %s" -msgstr "%s: »¡¸®°¡±â \"%s\"(¿£Æ®¸® %s)¿¡ À߸øµÈ Å°" - -#: ../src/rootmenu.c:524 -#, c-format -msgid "%s: unmatched '\"' in menu file" -msgstr "%s: ¸Þ´º ÆÄÀÏÀÇ '\"' ¦ÀÌ ¸ÂÁö ¾ÊÀ½" - -#: ../src/rootmenu.c:574 -#, c-format -msgid "%s: missing command" -msgstr "%s: ¸í·É¾î°¡ ¾øÀ½" - -#: ../src/rootmenu.c:607 -#, c-format -msgid "invalid OPEN_MENU specification: %s" -msgstr "OPEN_MENU ÁöÁ¤ÀÌ À߸øµÊ: %s" - -#: ../src/rootmenu.c:680 -#, c-format -msgid "%s:could not stat menu" -msgstr "%s: ¸Þ´º ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö ¾øÀ½" - -#: ../src/rootmenu.c:688 -#, c-format -msgid "%s:could not stat menu:%s" -msgstr "%s: ¸Þ´º ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö ¾øÀ½ :%s" - -#: ../src/rootmenu.c:706 -#, c-format -msgid "too many parameters in OPEN_MENU: %s" -msgstr "OPEN_MENU¿¡ Àμö°¡ ³Ê¹« ¸¹À½: %s" - -#: ../src/rootmenu.c:742 -msgid "" -"There are more than one WORKSPACE_MENU commands in the applications menu. " -"Only one is allowed." -msgstr "" -"¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º¿¡ WORKSPACE_MENU ¸í·ÉÀÌ µÑ ÀÌ»ó ÀÖ½À´Ï´Ù. Çϳª¸¸ ÀÖ¾î¾ß " -"ÇÕ´Ï´Ù. " - -#: ../src/rootmenu.c:771 ../src/rootmenu.c:789 -#, c-format -msgid "%s:missing parameter for menu command \"%s\"" -msgstr "%s: ¸Þ´º ¸í·É¾î \"%s\" ÀÇ Àμö°¡ ºüÁ³À½" - -#: ../src/rootmenu.c:852 -#, c-format -msgid "%s:unknown command \"%s\" in menu config." -msgstr "%s:¸Þ´º ¼³Á¤ÀÇ \"%s\" ¸í·ÉÀ» ¾Ë ¼ö ¾øÀ½." - -#: ../src/rootmenu.c:860 -#, c-format -msgid "%s:can't add shortcut for entry \"%s\"" -msgstr "%s: ¿£Æ®¸® \"%s\"¿¡ »¡¸®°¡±â¸¦ Ãß°¡ÇÒ ¼ö ¾øÀ½" - -#: ../src/rootmenu.c:997 -#, c-format -msgid "%s:maximal line size exceeded in menu config: %s" -msgstr "%s:¸Þ´º ¼³Á¤ÀÇ ÃÖ´ë ÁÙ¼ö¸¦ ÃÊ°úÇÔ: %s" - -#: ../src/rootmenu.c:1019 ../src/rootmenu.c:1111 ../src/rootmenu.c:1212 -#, c-format -msgid "%s:missing command in menu config: %s" -msgstr "%s:¸Þ´º ¼³Á¤¿¡¼­ ¸í·ÉÀ» ãÀ» ¼ö ¾øÀ½: %s" - -#: ../src/rootmenu.c:1049 -#, c-format -msgid "%s:syntax error in menu file:END declaration missing" -msgstr "%s:¸Þ´ºÆÄÀÏ ¹®¹ý¿¡·¯:END ¼±¾ð¹® ¾øÀ½" - -#: ../src/rootmenu.c:1078 ../src/rootmenu.c:1177 -msgid "could not make arguments for menu file preprocessor" -msgstr "¸Þ´º ÆÄÀÏ Àü󸮱⸦ À§ÇÑ Àμö¸¦ ¸¸µé ¼ö ¾øÀ½" - -#: ../src/rootmenu.c:1084 ../src/rootmenu.c:1184 -#, c-format -msgid "%s:could not open/preprocess menu file" -msgstr "%s: ¸Þ´º ÆÄÀÏÀ» ¿­°Å³ª Àüó¸®ÇÒ ¼ö ¾øÀ½" - -#: ../src/rootmenu.c:1096 ../src/rootmenu.c:1197 -#, c-format -msgid "%s:could not open menu file" -msgstr "%s:¸Þ´º ÆÄÀÏÀ» ¿­ ¼ö ¾øÀ½" - -#: ../src/rootmenu.c:1123 -#, c-format -msgid "%s:invalid menu file. MENU command is missing" -msgstr "%s:À߸øµÈ ¸Þ´º ÆÄÀÏ. MENU ¸í·ÉÀÌ ºüÁ³½À´Ï´Ù" - -#: ../src/rootmenu.c:1132 -msgid "error reading preprocessed menu data" -msgstr "Àüó¸®µÈ ¸Þ´º µ¥ÀÌÅ͸¦ Àдµ¥ ¿À·ù" - -#: ../src/rootmenu.c:1224 -#, c-format -msgid "%s:no title given for the root menu" -msgstr "%s:ÃÖ»óÀ§ ¸Þ´º¿¡ Á¦¸ñÀÌ ¾ø½À´Ï´Ù" - -#: ../src/rootmenu.c:1307 ../src/rootmenu.c:1374 ../src/rootmenu.c:1418 -#, c-format -msgid "out of memory while constructing directory menu %s" -msgstr "µð·ºÅ丮 ¸Þ´º %s »ý¼º Áß ¸Þ¸ð¸® ºÎÁ·" - -#: ../src/rootmenu.c:1317 -#, c-format -msgid "%s:could not stat file \"%s\" in menu directory" -msgstr "%s: ¸Þ´º µð·ºÅ丮ÀÇ ÆÄÀÏ \"%s\"¿¡ Á¢±ÙÇÒ ¼ö ¾øÀ½" - -#: ../src/rootmenu.c:1472 -msgid "Commands" -msgstr "¸í·É¾î" - -#: ../src/rootmenu.c:1475 -msgid "Restart" -msgstr "Àç½ÃÀÛ" - -#: ../src/rootmenu.c:1476 -msgid "Exit..." -msgstr "Á¾·á..." - -#: ../src/rootmenu.c:1549 -#, c-format -msgid "could not find menu file \"%s\" referenced in WMRootMenu" -msgstr "WMRootMenu¿¡¼­ ÂüÁ¶ÇÏ´Â ¸Þ´º ÆÄÀÏ \"%s\"¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù" - -#: ../src/rootmenu.c:1556 -#, c-format -msgid "could not access menu \"%s\" referenced in WMRootMenu" -msgstr "WMRootMenu¿¡¼­ ÂüÁ¶ÇÏ´Â ¸Þ´º \"%s\"¿¡ Á¢±ÙÇÒ ¼ö ¾ø½À´Ï´Ù" - -#: ../src/rootmenu.c:1567 -#, c-format -msgid "" -"using default menu file \"%s\" as the menu referenced in WMRootMenu could " -"not be found " -msgstr "" -"WMRootMenu¿¡¼­ ÂüÁ¶ÇÏ´Â ¸Þ´º ÆÄÀÏÀ» ãÀ» ¼ö ¾øÀ¸¹Ç·Î \"%s\"¸¦ ±âº» ¸Þ´º " -"ÆÄÀÏ·Î »ç¿ëÇÕ´Ï´Ù" - -#: ../src/rootmenu.c:1590 ../src/rootmenu.c:1666 -#, c-format -msgid "%s:format error in root menu configuration \"%s\"" -msgstr "%s: ÃÖ»óÀ§ ¸Þ´º ¼³Á¤ \"%s\"ÀÇ Çü½Ä ¿À·ù" - -#: ../src/screen.c:423 -msgid "could not load logo image for panels" -msgstr "Æгο¡ ¾²ÀÏ ·Î°í À̹ÌÁö¸¦ ÀÐÁö ¸øÇÔ" - -#: ../src/screen.c:426 -#, c-format -msgid "error making logo image for panel:%s" -msgstr "Æгο¡ ¾²ÀÏ ·Î°í À̹ÌÁö¸¦ ¸¸µéÁö ¸øÇÔ:%s" - -#: ../src/screen.c:612 -#, c-format -msgid "could not initialize graphics library context: %s" -msgstr "±×·¡ÇÈ ¶óÀ̺귯¸® ȯ°æÀ» ÃʱâÈ­ ÇÒ¼ö ¾øÀ½: %s" - -#: ../src/screen.c:644 -msgid "could not do initialization of WINGs widget set" -msgstr "%s: ÃʱâÈ­ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù." - -#: ../src/screen.c:961 -#, c-format -msgid "could not save session state in %s" -msgstr "%sÀÇ ¼¼¼Ç »óŸ¦ ÀúÀåÇÏÁö ¸øÇÔ" - -#: ../src/session.c:138 ../src/wdefaults.c:559 ../src/winspector.c:347 -#, c-format -msgid "can't convert \"%s\" to boolean" -msgstr "\"%s\"¸¦ ºÎ¿ï °ªÀ¸·Î ¹Ù²Ü ¼ö ¾øÀ½" - -#: ../src/session.c:750 ../src/session.c:844 -msgid "end of memory while saving session state" -msgstr "¼¼¼Ç »óŸ¦ ÀúÀåÇÏ´Â Áß ¸Þ¸ð¸® ºÎÁ·" - -#. This is not fatal but can mean the session manager exited. -#. * If the session manager exited normally we would get a -#. * Die message, so this probably means an abnormal exit. -#. * If the sm was the last client of session, then we'll die -#. * anyway, otherwise we can continue doing our stuff. -#. -#: ../src/session.c:978 -msgid "connection to the session manager was lost" -msgstr "¼¼¼Ç °ü¸®ÀÚÀÇ ¿¬°áÀÌ ²÷¾îÁ³½À´Ï´Ù" - -#: ../src/stacking.c:72 -msgid "could not get window list!!" -msgstr "â ¸ñ·Ï¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù!!" - -#: ../src/startup.c:194 -#, c-format -msgid "internal X error: %s\n" -msgstr "X ³»ºÎ ¿¡·¯: %s\n" - -#: ../src/startup.c:257 -#, c-format -msgid "got signal %i (%s) - restarting\n" -msgstr "%i (%s) ½ÅÈ£ °¨Áö - Àç½Ãµ¿ÇÔ\n" - -#: ../src/startup.c:259 -#, c-format -msgid "got signal %i - restarting\n" -msgstr "%i ½ÅÈ£ °¨Áö - Àç½Ãµ¿ÇÔ\n" - -#: ../src/startup.c:273 -#, c-format -msgid "%s: Received signal SIGTERM. Exiting..." -msgstr "%s: SIGTERM ½ÅÈ£ ¹ÞÀ½. Á¾·á..." - -#: ../src/startup.c:285 -#, c-format -msgid "got signal %i (%s)\n" -msgstr "%i (%s) ½ÅÈ£ °¨Áö\n" - -#: ../src/startup.c:287 -#, c-format -msgid "got signal %i\n" -msgstr "%i ½ÅÈ£ °¨Áö\n" - -#: ../src/startup.c:293 -msgid "" -"crashed while trying to do some post-crash cleanup. Aborting immediatelly." -msgstr "" -"ºñÁ¤»ó Á¾·áÈÄ Ã³¸®¸¦ ÇÏ·Á´Â µ¿¾È¿¡ ºñÁ¤»ó Á¾·áµÇ¾ú½À´Ï´Ù. Áï½Ã Á¾·áÇÕ´Ï´Ù." - -#: ../src/startup.c:304 -msgid "" -"a fatal error has occured, probably due to a bug. Please fill the included " -"BUGFORM and report it." -msgstr "" -"Ä¡¸íÀûÀÎ ¿À·ù ¹ß»ý, ¾Æ¸¶µµ ¹ö±×ÀÎ °Í °°½À´Ï´Ù. BUGFORMÀ» ÀÛ¼ºÇØ º¸³»Áֽñæ " -"ºÎŹµå¸³´Ï´Ù." - -#. restart another window manager so that the X session doesn't -#. * go to space -#: ../src/startup.c:311 -msgid "trying to start alternative window manager..." -msgstr "´ëü¿ë â °ü¸®ÀÚ¸¦ ½ÃÀÛÇÏ°Ú½À´Ï´Ù..." - -#: ../src/startup.c:710 -#, c-format -msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" -msgstr "ÁöÁ¤µÈ ¾ÆÀÌÄÜ Å©±â(%i)°¡ ³Ê¹« ÀÛÀ½. ´ë½Å 16À¸·Î ¹Ù²ß´Ï´Ù\n" - -#: ../src/startup.c:754 -msgid "it seems that there already is a window manager running" -msgstr "ÀÌ¹Ì ´Ù¸¥ â °ü¸®ÀÚ°¡ µ¿ÀÛÇÏ°í ÀÖ´Â °Í °°½À´Ï´Ù" - -#: ../src/startup.c:760 -#, c-format -msgid "could not manage screen %i" -msgstr "È­¸é %i¸¦ Á¦¾îÇÒ ¼ö ¾øÀ½" - -#: ../src/startup.c:820 -msgid "could not manage any screen" -msgstr "¸ðµç È­¸éÀ» Á¦¾îÇÒ ¼ö ¾øÀ½" - -#: ../src/switchmenu.c:114 -msgid "Windows" -msgstr "â" - -#: ../src/texture.c:274 ../src/texture.c:318 -#, c-format -msgid "image file \"%s\" used as texture could not be found." -msgstr "ÅؽºÃ³·Î »ç¿ëÇÏ´Â À̹ÌÁö ÆÄÀÏ \"%s\"À» ãÀ» ¼ö ¾ø½À´Ï´Ù." - -#: ../src/texture.c:280 ../src/texture.c:324 -#, c-format -msgid "could not load texture pixmap \"%s\":%s" -msgstr "ÅؽºÃ³ ÇȽº¸Ê \"%s\"À» ¿­ ¼ö°¡ ¾øÀ½: %s" - -#: ../src/texture.c:463 ../src/texture.c:574 -#, c-format -msgid "could not render texture: %s" -msgstr "ÅؽºÃ³ ·»´õ¸µÀ» ÇÒ ¼ö ¾øÀ½: %s" - -#: ../src/wdefaults.c:405 -#, c-format -msgid "could not find icon file \"%s\"" -msgstr "¾ÆÀÌÄÜ ÆÄÀÏ \"%s\"À» ãÁö ¸øÇß½À´Ï´Ù" - -#: ../src/window.c:2277 ../src/window.c:2409 -msgid "" -"the NumLock, ScrollLock or similar key seems to be turned on.\n" -"Turn it off or some mouse actions and keyboard shortcuts will not work." -msgstr "" -"NumLock, ScrollLock À̳ª ´Ù¸¥ ºñ½ÁÇÑ Á¾·ùÀÇ Å°°¡ ÄÑÁ® ÀÖ´Â °Í °°½À´Ï´Ù.\n" -"²ôÁö ¾ÊÀ¸¸é ÀϺΠ¸¶¿ì½º µ¿ÀÛÀ̳ª Å°º¸µå ´ÜÃàÅ°°¡ µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù." - -#: ../src/winmenu.c:249 ../src/winmenu.c:257 -msgid "Set Shortcut" -msgstr "´ÜÃàÅ° ¼±ÅÃ" - -#: ../src/winmenu.c:333 ../src/winmenu.c:379 -msgid "could not create submenu for window menu" -msgstr "â ¸Þ´º¸¦ À§ÇÑ ºÎ¸Þ´º¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù" - -#: ../src/winmenu.c:388 -msgid "Keep at bottom" -msgstr "Ç×»ó ¾Æ·¡·Î/°¡¶ó¾ÉÀ½" - -#: ../src/winmenu.c:393 ../src/winspector.c:1141 -msgid "Omnipresent" -msgstr "Ç×»ó º¸ÀÓ" - -#. -#. * Warning: If you make some change that affects the order of the -#. * entries, you must update the command #defines in the top of -#. * this file. -#. -#: ../src/winmenu.c:416 ../src/winmenu.c:551 -msgid "Maximize" -msgstr "ÃÖ´ëÈ­" - -#: ../src/winmenu.c:424 ../src/winmenu.c:537 -msgid "Miniaturize" -msgstr "ÃÖ¼ÒÈ­" - -#: ../src/winmenu.c:433 ../src/winmenu.c:565 -msgid "Shade" -msgstr "°¡¸²" - -#: ../src/winmenu.c:449 -msgid "Resize/Move" -msgstr "Å©±â¹Ù²Þ/À̵¿" - -#: ../src/winmenu.c:457 -msgid "Select" -msgstr "¼±ÅÃ" - -#: ../src/winmenu.c:465 -msgid "Move To" -msgstr "À̵¿" - -#: ../src/winmenu.c:470 -msgid "Attributes..." -msgstr "¼Ó¼º ¼³Á¤..." - -#: ../src/winmenu.c:472 -msgid "Options" -msgstr "¿É¼Ç" - -#: ../src/winmenu.c:532 -msgid "Deminiaturize" -msgstr "º¸ÅëÅ©±â" - -#: ../src/winmenu.c:546 -msgid "Unmaximize" -msgstr "º¸ÅëÅ©±â" - -#: ../src/winmenu.c:560 -msgid "Unshade" -msgstr "º¸ÀÓ" - -#: ../src/winspector.c:281 -#, c-format -msgid "Could not find icon \"%s\" specified for this window" -msgstr "ÀÌ Ã¢¿¡¼­ ÁöÁ¤ÇÑ ¾ÆÀÌÄÜ \"%s\"À» ãÀ» ¼ö ¾øÀ½" - -#: ../src/winspector.c:297 -#, c-format -msgid "Could not open specified icon \"%s\":%s" -msgstr "ÁöÁ¤µÈ ¾ÆÀÌÄÜ \"%s\"À» ¿­ ¼ö ¾øÀ½:%s" - -#: ../src/winspector.c:1016 -msgid "Save" -msgstr "ÀúÀå" - -#: ../src/winspector.c:1024 -msgid "Apply" -msgstr "Àû¿ë" - -#: ../src/winspector.c:1030 -msgid "Reload" -msgstr "´Ù½ÃÀбâ" - -#: ../src/winspector.c:1039 ../src/winspector.c:1049 -msgid "Window Specification" -msgstr "â ¼±ÅÃ" - -#: ../src/winspector.c:1040 -msgid "Window Attributes" -msgstr "â ¼Ó¼º" - -#: ../src/winspector.c:1041 -msgid "Advanced Options" -msgstr "°í±Þ ¿É¼Ç" - -#: ../src/winspector.c:1042 -msgid "Icon and Initial Workspace" -msgstr "¾ÆÀÌÄÜ°ú Ãʱâ ÀÛ¾÷°ø°£" - -#: ../src/winspector.c:1043 -msgid "Application Specific" -msgstr "¾ÖÇø®ÄÉÀ̼ǿ¡ µû¶ó ´Ù¸¥ ¼³Á¤" - -#: ../src/winspector.c:1057 -msgid "Defaults for all windows" -msgstr "¸ðµç âÀÇ ±âº»°ªÀ¸·Î" - -#: ../src/winspector.c:1100 -msgid "" -"The configuration will apply to all\n" -"windows that have their WM_CLASS property set to the above selected\n" -"name, when saved." -msgstr "" -"¼³Á¤À» ÀúÀåÇϸé WM_CLASS Ư¼º°ªÀÌ\n" -"À§¿¡¼­ ÁöÁ¤ÇÑ À̸§À¸·Î µÇ¾î ÀÖ´Â\n" -"¸ðµç â¿¡ ±× ¼³Á¤ÀÌ Àû¿ëµË´Ï´Ù." - -#: ../src/winspector.c:1107 -msgid "Attributes" -msgstr "¼Ó¼º" - -#: ../src/winspector.c:1117 -msgid "Disable titlebar" -msgstr "Á¦¸ñ ¹Ù ¾ø¾Ú" - -#: ../src/winspector.c:1121 -msgid "Disable resizebar" -msgstr "Å©±âÁ¶Á¤ ¹Ù ¾ø¾Ú" - -#: ../src/winspector.c:1125 -msgid "Disable close button" -msgstr "´Ý±â ¹öÆ° ¾ø¾Ú" - -#: ../src/winspector.c:1129 -msgid "Disable miniaturize button" -msgstr "ÃÖ¼ÒÈ­ ¹öÆ° ¾ø¾Ú" - -#: ../src/winspector.c:1133 -msgid "Keep on top / floating" -msgstr "Ç×»ó À§·Î/¶ä" - -#: ../src/winspector.c:1137 -msgid "Keep at bottom / sunken" -msgstr "Ç×»ó ¾Æ·¡·Î/°¡¶ó¾ÉÀ½" - -#: ../src/winspector.c:1145 -msgid "Start Miniaturized" -msgstr "ÃÖ¼ÒÈ­ÇÏ¿© ½ÇÇà" - -#: ../src/winspector.c:1149 -msgid "Start Maximized" -msgstr "ÃÖ´ëÈ­ÇÏ¿© ½ÇÇà" - -#: ../src/winspector.c:1153 -msgid "Skip window list" -msgstr "â ¸ñ·Ï¿¡ ³ªÅ¸³ªÁö ¾ÊÀ½" - -#: ../src/winspector.c:1167 -msgid "Advanced" -msgstr "°í±Þ Ç׸ñ" - -#: ../src/winspector.c:1177 -msgid "Ignore HideOthers" -msgstr "´Ù¸¥ °Íµé ¼û±è ¹«½ÃÇÔ" - -#: ../src/winspector.c:1181 -msgid "Don't bind keyboard shortcuts" -msgstr "Å°º¸µå ´ÜÃàÅ° »ç¿ë ¾ÈÇÔ" - -#: ../src/winspector.c:1185 -msgid "Don't bind mouse clicks" -msgstr "¸¶¿ì½º Ŭ¸¯ »ç¿ë ¾ÈÇÔ" - -#: ../src/winspector.c:1189 -msgid "Keep inside screen" -msgstr "Ç×»ó È­¸é¾È¿¡ À§Ä¡" - -#: ../src/winspector.c:1193 -msgid "Don't let it take focus" -msgstr "È°¼ºÈ­ ¾ÈµÊ" - -#: ../src/winspector.c:1197 -msgid "Don't Save Session" -msgstr "¼¼¼ÇÀ» ÀúÀåÇÏÁö ¾ÊÀ½" - -#: ../src/winspector.c:1201 -msgid "Emulate Application Icon" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÀÌÄÜ Èä³»³»±â" - -#: ../src/winspector.c:1216 -msgid "" -"Enable the \"Don't bind...\" options to allow the application to receive all " -"mouse or keyboard events." -msgstr "" -"¾ÖÇø®ÄÉÀ̼ÇÀÌ ¸ðµç ¸¶¿ì½º¿Í Å°º¸µå À̺¥Æ®¸¦ ¹Þµµ·Ï \"... »ç¿ë ¾ÈÇÔ\" ¿É¼ÇÀ» " -"»ç¿ë °¡´ÉÇϵµ·Ï ÇÕ´Ï´Ù." - -#: ../src/winspector.c:1223 -msgid "Miniwindow Image" -msgstr "¾ÆÀÌÄÜ À̹ÌÁö" - -#: ../src/winspector.c:1242 -msgid "Update" -msgstr "°»½Å" - -#: ../src/winspector.c:1257 -msgid "Icon file name:" -msgstr "¾ÆÀÌÄÜ ÆÄÀϸí:" - -#: ../src/winspector.c:1269 -msgid "Ignore client supplied icon" -msgstr "Ŭ¶óÀ̾ðÆ® Á¦°ø ¾ÆÀÌÄÜ ¹«½ÃÇÔ" - -#: ../src/winspector.c:1276 -msgid "Initial Workspace" -msgstr "Ãʱâ ÀÛ¾÷°ø°£" - -#: ../src/winspector.c:1281 -msgid "Nowhere in particular" -msgstr "Ưº°ÇÑ ¼³Á¤ ¾øÀ½" - -#: ../src/winspector.c:1315 -msgid "Application Wide" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¿ÍÀ̵å" - -#: ../src/winspector.c:1325 -msgid "Start Hidden" -msgstr "¼û°Ü¼­ ½ÇÇà" - -#: ../src/winspector.c:1329 -msgid "No application icon" -msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÀÌÄÜ ¾øÀ½" - -#: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:472 -#, c-format -msgid "Workspace %i" -msgstr "ÀÛ¾÷°ø°£ %i" - -#: ../src/workspace.c:529 -msgid "Workspaces" -msgstr "ÀÛ¾÷°ø°£" - -#: ../src/workspace.c:531 -msgid "could not create Workspace menu" -msgstr "ÀÛ¾÷°ø°£ ¸Þ´º¸¦ ¸¸µé¼ö ¾øÀ½" - -#: ../src/workspace.c:538 -msgid "New" -msgstr "»õ ÀÛ¾÷°ø°£ ¸¸µë" - -#: ../src/workspace.c:539 -msgid "Destroy Last" -msgstr "¸¶Áö¸· ÀÛ¾÷°ø°£ ¾ø¾Ú" - -#: ../src/xutil.c:228 -msgid "invalid data in selection" -msgstr "¼±Åÿ¡ À߸øµÈ µ¥ÀÌÅÍ" +# Window Maker po file for korean. +# Copyright (C) 1998 Free Software Foundation, Inc. +# Byeong-Chan Kim , 1998. +# Update: CHOI Junho , 1998/12. +# +msgid "" +msgstr "" +"Project-Id-Version: 0.51.0\n" +"POT-Creation-Date: 1999-01-29 08:44+0900\n" +"PO-Revision-Date: 1999-01-29 08:47+0900\n" +"Last-Translator: Byeong-Chan Kim \n" +"Language-Team: Korean\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-KR\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: ../src/appicon.c:509 ../src/dialog.c:216 ../src/dialog.c:272 +#: ../src/dock.c:3060 ../src/dockedapp.c:208 ../src/winspector.c:281 +#: ../src/winspector.c:297 +msgid "Error" +msgstr "¿À·ù" + +#: ../src/appicon.c:510 +msgid "Could not open specified icon file" +msgstr "ÁöÁ¤ÇÑ ¾ÆÀÌÄÜÀ» ¿­Áö ¸øÇÔ." + +#: ../src/appicon.c:511 ../src/dialog.c:115 ../src/dialog.c:216 +#: ../src/dialog.c:272 ../src/dialog.c:460 ../src/dock.c:424 +#: ../src/dock.c:3061 ../src/dockedapp.c:208 ../src/dockedapp.c:352 +#: ../src/winspector.c:282 ../src/winspector.c:298 +msgid "OK" +msgstr "È®ÀÎ" + +#: ../src/appicon.c:532 ../src/dock.c:272 ../src/winmenu.c:123 +msgid "Kill Application" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç Á¾·á" + +#: ../src/appicon.c:533 ../src/dock.c:273 ../src/winmenu.c:124 +msgid "" +"This will kill the application.\n" +"Any unsaved changes will be lost.\n" +"Please confirm." +msgstr "" +"¾ÖÇø®ÄÉÀ̼ÇÀ» °­Á¦ Á¾·áÇÕ´Ï´Ù.\n" +"ÀúÀåÇÏÁö ¾ÊÀº º¯°æ »çÇ×Àº ÀÒ°Ô µË´Ï´Ù.\n" +"°è¼Ó ÇϽðڽÀ´Ï±î?" + +#: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 +msgid "Yes" +msgstr "¿¹" + +#: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 +msgid "No" +msgstr "¾Æ´Ï¿À" + +#: ../src/appicon.c:548 ../src/dock.c:1064 +msgid "Unhide Here" +msgstr "¼û±ä °Í ÀÌ°÷¿¡ º¸ÀÓ" + +#: ../src/appicon.c:549 ../src/appicon.c:574 ../src/dock.c:1066 +#: ../src/dock.c:1068 ../src/dock.c:3186 ../src/dock.c:3188 +#: ../src/winmenu.c:441 +msgid "Hide" +msgstr "¼û±è" + +#: ../src/appicon.c:550 +msgid "Set Icon..." +msgstr "¾ÆÀÌÄÜ ÁöÁ¤..." + +#: ../src/appicon.c:551 ../src/dock.c:1072 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 ../src/winmenu.c:488 +msgid "Kill" +msgstr "Á¾·á" + +#: ../src/appicon.c:572 ../src/dock.c:3184 +msgid "Unhide" +msgstr "(¾È)¼û±è" + +#: ../src/defaults.c:752 ../src/startup.c:709 ../src/startup.c:727 +#: ../src/startup.c:733 +#, c-format +msgid "could not read domain \"%s\" from defaults database" +msgstr "±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ µµ¸ÞÀÎ \"%s\"¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/defaults.c:798 ../src/defaults.c:922 ../src/defaults.c:961 +#: ../src/defaults.c:991 +#, c-format +msgid "Domain %s (%s) of defaults database is corrupted!" +msgstr "±âº» µ¥ÀÌÅͺ£À̽ºÀÇ µµ¸ÞÀÎ %s (%s)ÀÌ ±úÁ³½À´Ï´Ù!" + +#: ../src/defaults.c:803 ../src/defaults.c:943 ../src/defaults.c:974 +#: ../src/defaults.c:1000 +#, c-format +msgid "could not load domain %s from user defaults database" +msgstr "»ç¿ëÀÚ ±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ µµ¸ÞÀÎ %s¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/defaults.c:814 ../src/defaults.c:907 +#, c-format +msgid "Domain %s (%s) of global defaults database is corrupted!" +msgstr "Àü¿ª ±âº» µ¥ÀÌÅͺ£À̽ºÀÇ µµ¸ÞÀÎ %s (%s)´Â ±úÁ³½À´Ï´Ù!" + +#: ../src/defaults.c:833 ../src/defaults.c:912 +#, c-format +msgid "could not load domain %s from global defaults database" +msgstr "Àü¿ª ±âº» µ¥ÀÌÅͺ£À̽º¿¡¼­ µµ¸ÞÀÎ %s¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/defaults.c:1283 +#, c-format +msgid "wrong option value for key \"%s\". Should be one of %s" +msgstr "Å° \"%s\"ÀÇ ¿É¼Ç Æ÷¸ËÀÌ À߸øµÊ. %sÁß ÇϳªÀ̾î¾ß ÇÕ´Ï´Ù" + +#: ../src/defaults.c:1330 +#, c-format +msgid "can't convert \"%s\" to boolean for key \"%s\"" +msgstr "\"%s\"¸¦ Å° \"%s\"¿¡ ´ëÇØ ºÎ¿ï °ªÀ¸·Î º¯È¯ÇÒ ¼ö ¾ø½À´Ï´Ù" + +#: ../src/defaults.c:1335 ../src/defaults.c:1369 ../src/defaults.c:1401 +#: ../src/defaults.c:1414 ../src/defaults.c:1429 ../src/defaults.c:1443 +#: ../src/defaults.c:1515 ../src/defaults.c:1527 ../src/defaults.c:1875 +#: ../src/defaults.c:1892 ../src/defaults.c:1905 ../src/defaults.c:1938 +#: ../src/defaults.c:1954 ../src/defaults.c:1985 ../src/defaults.c:2058 +#, c-format +msgid "using default \"%s\" instead" +msgstr "±âº»°ªÀÎ \"%s\" ¸¦ ´ë½Å »ç¿ëÇÔ" + +#: ../src/defaults.c:1366 +#, c-format +msgid "can't convert \"%s\" to integer for key \"%s\"" +msgstr "\"%s\"¸¦ Å° \"%s\"¿¡ ´ëÇØ Á¤¼ö°ªÀ¸·Î º¯È¯ÇÒ ¼ö ¾ø½À´Ï´Ù" + +#: ../src/defaults.c:1396 ../src/defaults.c:1510 ../src/defaults.c:1870 +#: ../src/defaults.c:1887 ../src/defaults.c:1933 ../src/defaults.c:1980 +#: ../src/wdefaults.c:541 ../src/wdefaults.c:577 +#, c-format +msgid "Wrong option format for key \"%s\". Should be %s." +msgstr "\"%s\" Å°ÀÇ ¿É¼Ç Æ÷¸ËÀÌ À߸øµÊ. %s À̾î¾ß ÇÕ´Ï´Ù." + +#: ../src/defaults.c:1409 +#, c-format +msgid "Incorrect number of elements in array for key \"%s\"." +msgstr "Å° \"%s\"¿¡ ´ëÇÑ ¹è¿­ÀÇ ¿ø¼Ò ¼ö°¡ À߸øµÇ¾ú½À´Ï´Ù." + +#: ../src/defaults.c:1424 +#, c-format +msgid "Wrong value for key \"%s\". Should be Coordinate." +msgstr "\"%s\" Å° °ªÀÌ À߸øµÊ. ÁÂÇ¥°¡ µÇ¾î¾ß ÇÕ´Ï´Ù." + +#: ../src/defaults.c:1439 +#, c-format +msgid "can't convert array to integers for \"%s\"." +msgstr "\"%s\"¿¡ ´ëÇØ ¹è¿­À» Á¤¼ö°ªÀ¸·Î º¯È¯ÇÒ ¼ö ¾øÀ½." + +#: ../src/defaults.c:1636 ../src/defaults.c:1668 ../src/defaults.c:1684 +#: ../src/defaults.c:1730 ../src/defaults.c:1770 ../src/defaults.c:1808 +#: ../src/defaults.c:1824 +#, c-format +msgid "\"%s\" is not a valid color name" +msgstr "\"%s\" ´Â ¿Ã¹Ù¸¥ »ö»ó¸íÀÌ ¾Æ´Ô" + +#: ../src/defaults.c:1649 +msgid "bad number of arguments in gradient specification" +msgstr "±×·¡µð¾ðÆ® ÁöÁ¤½Ã ÀμöÀÇ ¼ö°¡ À߸øµÇ¾ú½À´Ï´Ù" + +#: ../src/defaults.c:1703 +msgid "too few arguments in multicolor gradient specification" +msgstr "´ÙÁß»ö ±×·¡µð¾ðÆ® ÁöÁ¤½Ã ÀμöÀÇ ¼ö°¡ ³Ê¹« Àû½À´Ï´Ù" + +#: ../src/defaults.c:1797 +msgid "bad number of arguments in textured gradient specification" +msgstr "±×·¡µð¾ðÆ® ÁöÁ¤½Ã ÀμöÀÇ ¼ö°¡ À߸øµÇ¾ú½À´Ï´Ù" + +#: ../src/defaults.c:1840 +#, c-format +msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" +msgstr "tgradient ÅؽºÃ³ \"%s\"¿¡ ¸ðÈ£ÇÑ °ªÀÌ ÀÖ½À´Ï´Ù. [0..255]¿©¾ß ÇÕ´Ï´Ù." + +#: ../src/defaults.c:1853 +#, c-format +msgid "invalid texture type %s" +msgstr "À߸øµÈ ÅؽºÃ³ À¯Çü %s" + +#: ../src/defaults.c:1900 +#, c-format +msgid "Error in texture specification for key \"%s\"" +msgstr "Å° \"%s\"ÀÇ ÅؽºÃ³ ÁöÁ¤¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù" + +#: ../src/defaults.c:1950 +msgid "Wrong type for workspace background. Should be a texture type." +msgstr "ÀÛ¾÷°ø°£ ¹è°æ Á¾·ù°¡ À߸øµÇ¾ú½À´Ï´Ù. ÅؽºÃ³¿©¾ß ÇÕ´Ï´Ù." + +#: ../src/defaults.c:1998 +#, c-format +msgid "Wrong type for background of workspace %i. Should be a texture." +msgstr "ÀÛ¾÷°ø°£ ¹è°æ Á¾·ù°¡ À߸øµÇ¾ú½À´Ï´Ù. ÅؽºÃ³¿©¾ß ÇÕ´Ï´Ù." + +#: ../src/defaults.c:2023 +msgid "could not load any usable font!!!" +msgstr "»ç¿ë °¡´ÉÇÑ ±Û²ÃÀ» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù!!!" + +#: ../src/defaults.c:2053 +#, c-format +msgid "could not get color for key \"%s\"" +msgstr "Å° \"%s\"ÀÇ »öÀ» ¾òÀ» ¼ö ¾øÀ½" + +#: ../src/defaults.c:2112 ../src/rootmenu.c:454 +#, c-format +msgid "%s:invalid key modifier \"%s\"" +msgstr "%s:À߸øµÈ Å° ¼öÁ¤ÀÚ \"%s\"" + +#: ../src/defaults.c:2124 +#, c-format +msgid "%s:invalid kbd shortcut specification \"%s\"" +msgstr "%s:À߸øµÈ Å°º¸µå ´ÜÃàÅ° ÁöÁ¤ \"%s\"" + +#: ../src/defaults.c:2131 +#, c-format +msgid "%s:invalid key in shortcut \"%s\"" +msgstr "%s:»¡¸®°¡±â \"%s\"¿¡ À߸øµÈ Å°" + +#: ../src/defaults.c:2157 +#, c-format +msgid "%s: modifier key %s is not valid" +msgstr "%s: À߸øµÈ ¼öÁ¤ÀÚ Å° %s" + +#: ../src/defaults.c:2233 +msgid "could not render texture for icon background" +msgstr "¾ÆÀÌÄÜ ¹è°æÀÇ ÅؽºÃ³¸¦ ±×¸± ¼ö ¾ø½À´Ï´Ù" + +#: ../src/dialog.c:115 ../src/dialog.c:467 ../src/dock.c:424 +#: ../src/dockedapp.c:358 ../src/rootmenu.c:188 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 +msgid "Cancel" +msgstr "Ãë¼Ò" + +#: ../src/dialog.c:211 +msgid "Could not open directory " +msgstr "µð·ºÅ丮¸¦ ¿­ ¼ö ¾øÀ½ " + +#: ../src/dialog.c:267 +msgid "Could not load image file " +msgstr "À̹ÌÁö ÆÄÀÏÀ» ÀÐÀ» ¼ö ¾øÀ½ " + +#: ../src/dialog.c:404 +msgid "Directories" +msgstr "µð·ºÅ丮" + +#: ../src/dialog.c:413 +msgid "Icons" +msgstr "¾ÆÀÌÄÜ" + +#: ../src/dialog.c:450 +msgid "File Name:" +msgstr "ÆÄÀϸí:" + +#: ../src/dialog.c:473 +msgid "Choose File" +msgstr "ÆÄÀÏ ¼±ÅÃ" + +#: ../src/dialog.c:490 ../src/dialog.c:492 +msgid "Icon Chooser" +msgstr "¾ÆÀÌÄÜ ¼±Åñâ" + +#: ../src/dock.c:213 +#, c-format +msgid "Type the name for workspace %i:" +msgstr "ÀÛ¾÷°ø°£ %i ÀÇ À̸§À» ÀÔ·ÂÇϼ¼¿ä:" + +#: ../src/dock.c:214 ../src/dock.c:1043 +msgid "Rename Workspace" +msgstr "ÀÛ¾÷°ø°£ À̸§ ¹Ù²Þ" + +#: ../src/dock.c:422 +msgid "Workspace Clip" +msgstr "ÀÛ¾÷°ø°£ Ŭ¸³" + +#: ../src/dock.c:423 +msgid "All selected icons will be removed!" +msgstr "¼±ÅÃÇÑ ¸ðµç ¾ÆÀÌÄÜÀÌ ¾ø¾îÁú °ÍÀÔ´Ï´Ù!!" + +#: ../src/dock.c:470 +msgid "Keep Icon" +msgstr "¾ÆÀÌÄÜ À¯Áö" + +#: ../src/dock.c:471 ../src/dock.c:1978 ../src/dock.c:2107 +msgid "Type the command used to launch the application" +msgstr "¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇشµ¥ ÇÊ¿äÇÑ ¸í·ÉÀ» ÀÔ·ÂÇÕ´Ï´Ù" + +#: ../src/dock.c:856 +#, c-format +msgid "could not launch application %s\n" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç %sÀ» ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù\n" + +#: ../src/dock.c:911 +msgid "could not create workspace submenu for Clip menu" +msgstr "Ŭ¸³ ¸Þ´º¸¦ À§ÇÑ ÀÛ¾÷°ø°£ ÇϺθ޴º¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù" + +#: ../src/dock.c:974 +msgid "could not create options submenu for Clip menu" +msgstr "Ŭ¸³ ¸Þ´º¸¦ À§ÇÑ ¿É¼Ç ÇϺθ޴º¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù" + +#: ../src/dock.c:978 ../src/dock.c:1032 ../src/winmenu.c:383 +msgid "Keep on top" +msgstr "Ç×»ó À§·Î" + +#: ../src/dock.c:984 +msgid "Collapsed" +msgstr "¾ÆÀÌÄÜ ¼û±è" + +#: ../src/dock.c:990 +msgid "AutoCollapse" +msgstr "ÀÚµ¿ ¼û±è" + +#: ../src/dock.c:996 +msgid "AutoRaiseLower" +msgstr "ÀÚµ¿ ¿Ã¸²/³»¸²" + +#: ../src/dock.c:1002 +msgid "AutoAttract Icons" +msgstr "¾ÆÀÌÄÜ ÀÚµ¿ ¸ðÀ½" + +#: ../src/dock.c:1008 +msgid "Keep Attracted Icons" +msgstr "¸ðÀº ¾ÆÀÌÄÜ À¯Áö" + +#: ../src/dock.c:1038 +msgid "Clip Options" +msgstr "Ŭ¸³ ¿É¼Ç" + +#: ../src/dock.c:1045 +msgid "(Un)Select Icon" +msgstr "¾ÆÀÌÄÜ (¾È)¼±ÅÃ" + +#: ../src/dock.c:1047 +msgid "(Un)Select All Icons" +msgstr "¸ðµç ¾ÆÀÌÄÜ (¾È)¼±ÅÃ" + +#: ../src/dock.c:1050 +msgid "Keep Icon(s)" +msgstr "¾ÆÀÌÄÜ À¯Áö" + +#: ../src/dock.c:1052 +msgid "Move Icon(s) To" +msgstr "¾ÆÀÌÄÜ ¿Å±è :" + +#: ../src/dock.c:1057 +msgid "Remove Icon(s)" +msgstr "¾ÆÀÌÄÜ ¾ø¾Ú" + +#: ../src/dock.c:1059 +msgid "Attract Icons" +msgstr "¾ÆÀÌÄÜ ¸ðÀ½" + +#: ../src/dock.c:1062 +msgid "Launch" +msgstr "½ÇÇà" + +#: ../src/dock.c:1070 +msgid "Settings..." +msgstr "¼³Á¤..." + +#: ../src/dock.c:1455 ../src/dock.c:1469 ../src/dock.c:1483 ../src/dock.c:1493 +#, c-format +msgid "bad value in docked icon state info %s" +msgstr "Dock ¾ÆÀÌÄÜÀÇ »óÅÂÁ¤º¸¿¡ À߸øµÈ °ª %s" + +#: ../src/dock.c:1501 +#, c-format +msgid "bad value in docked icon position %i,%i" +msgstr "Dock ¾ÆÀÌÄÜÀÇ À§Ä¡°ª %i,%i ´Â À߸øµÈ °ª" + +#: ../src/dock.c:1745 +msgid "there are too many icons stored in dock. Ignoring what doesn't fit" +msgstr "Dock ¿¡ µé¾î°£ ¾ÆÀÌÄÜÀÌ ³Ê¹« ¸¹À½. ¸ÂÁö ¾Ê´Â °ÍÀº ¹«½ÃÇÕ´Ï´Ù" + +#. icon->forced_dock = 1; +#: ../src/dock.c:1977 ../src/dock.c:2106 +msgid "Dock Icon" +msgstr "Dock ¾ÆÀÌÄÜ" + +#: ../src/dock.c:3053 ../src/dock.c:3057 +#, c-format +msgid "Could not execute command \"%s\"" +msgstr "\"%s\" ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ¾øÀ½." + +#: ../src/dockedapp.c:128 +#, c-format +msgid "could not find icon %s, used in a docked application" +msgstr "µµÅ·µÈ ¾ÖÇø®ÄÉÀ̼ǿ¡ »ç¿ëÇÒ ¾ÆÀÌÄÜ %sÀ» ãÀ» ¼ö ¾øÀ½" + +#: ../src/dockedapp.c:207 +#, c-format +msgid "Could not open specified icon file:%s" +msgstr "ÁöÁ¤µÈ ¾ÆÀÌÄÜ ÆÄÀÏÀ» ¿­ ¼ö ¾øÀ½:%s" + +#: ../src/dockedapp.c:293 +msgid "Start when WindowMaker is started" +msgstr "Window Maker¸¦ ½ÇÇàÇÒ¶§ ½ÃÀÛÇÔ" + +#: ../src/dockedapp.c:300 +msgid "Application path and arguments" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç °æ·Î¿Í Àμö" + +#: ../src/dockedapp.c:311 +msgid "Command for files dropped with DND" +msgstr "µå·¢¿£µå·ÓÀ¸·Î ½ÇÇàÇÒ ¸í·É¾î" + +#: ../src/dockedapp.c:323 +#, c-format +msgid "%d will be replaced with the file name" +msgstr "%d´Â ÆÄÀÏ À̸§À¸·Î ´ëüÇÕ´Ï´Ù" + +#: ../src/dockedapp.c:327 +msgid "DND support was not compiled in" +msgstr "ÄÄÆÄÀϽà DND Áö¿øÀÌ Æ÷ÇÔµÇÁö ¾Ê¾Ò½À´Ï´Ù" + +#: ../src/dockedapp.c:333 +msgid "Icon Image" +msgstr "¾ÆÀÌÄÜ À̹ÌÁö" + +#: ../src/dockedapp.c:345 ../src/winspector.c:1235 +msgid "Browse..." +msgstr "ã±â..." + +#: ../src/dockedapp.c:390 +msgid "Docked Application Settings" +msgstr "Dock ¾ÖÇø®ÄÉÀÌ¼Ç ¼³Á¤" + +#: ../src/event.c:352 +msgid "stack overflow: too many dead processes" +msgstr "½ºÅà ¿À¹öÇ÷οì: Á×Àº ÇÁ·Î¼¼½º°¡ ³Ê¹« ¸¹À½" + +#: ../src/framewin.c:485 +#, c-format +msgid "could not render gradient: %s" +msgstr "±×·¡µð¾ðÆ®¸¦ Ç¥ÇöÇÏÁö ¸øÇÔ: %s" + +#: ../src/framewin.c:501 ../src/framewin.c:516 ../src/framewin.c:527 +#: ../src/framewin.c:534 ../src/framewin.c:541 ../src/icon.c:296 +#: ../src/texture.c:578 +#, c-format +msgid "error rendering image:%s" +msgstr "À̹ÌÁö ·»´õ¸µ ¿¡·¯:%s" + +#: ../src/icon.c:182 ../src/wdefaults.c:411 +#, c-format +msgid "error loading image file \"%s\"" +msgstr "À̹ÌÁö ÆÄÀÏ \"%s\"¸¦ Àд Áß ¿¡·¯" + +#: ../src/icon.c:430 ../src/icon.c:439 +#, c-format +msgid "could not create directory %s" +msgstr "µð·ºÅ丮 %s¸¦ ¸¸µé ¼ö ¾øÀ½" + +#: ../src/icon.c:706 +#, c-format +msgid "could not find default icon \"%s\"" +msgstr "±âº» ¾ÆÀÌÄÜ \"%s\"¸¦ ãÁö ¸øÇÔ" + +#: ../src/icon.c:712 +#, c-format +msgid "could not load default icon \"%s\":%s" +msgstr "±âº» ¾ÆÀÌÄÜ \"%s\"¸¦ ÀÐÁö ¸øÇÔ:%s" + +#: ../src/main.c:195 +msgid "could not exec window manager" +msgstr "â °ü¸®ÀÚ¸¦ ½ÇÇàÇÒ ¼ö ¾øÀ½" + +#: ../src/main.c:196 +msgid "Restart failed!!!" +msgstr "Àç½ÃÀÛ ½ÇÆÐ!!!" + +#: ../src/main.c:243 +#, c-format +msgid "%s aborted.\n" +msgstr "%s´Â ÁߴܵǾú½À´Ï´Ù.\n" + +#: ../src/main.c:254 +#, c-format +msgid "Usage: %s [options]\n" +msgstr "»ç¿ë¹ý: %s [-¿É¼Ç]\n" + +#: ../src/main.c:255 +msgid "The Window Maker window manager for the X window system" +msgstr "" + +#: ../src/main.c:257 +msgid " -display host:dpy\tdisplay to use" +msgstr " -display È£½ºÆ®:µð½ºÇ÷¹ÀÌ\t»ç¿ëÇÒ µð½ºÇ÷¹ÀÌ" + +#: ../src/main.c:259 +msgid " --no-cpp \t\tdisable preprocessing of configuration files" +msgstr " --no-cpp \t\t¼³Á¤ÆÄÀÏÀÇ Àü󸮸¦ ÇÏÁö ¾ÊÀ½" + +#: ../src/main.c:261 +msgid " --no-dock\t\tdo not open the application Dock" +msgstr " --no-dock\t\t¾ÖÇø®ÄÉÀÌ¼Ç DockÀ» ¿­Áö ¾ÊÀ½" + +#: ../src/main.c:262 +msgid " --no-clip\t\tdo not open the workspace Clip" +msgstr " --no-clip\t\tÀÛ¾÷°ø°£ Ŭ¸³À» ¿­Áö ¾ÊÀ½" + +#: ../src/main.c:266 +msgid " --visual-id visualid\tvisual id of visual to use" +msgstr " --visual-id ºñÁÖ¾óID\t»ç¿ëÇÒ ºñÁÖ¾óÀÇ ºñÁÖ¾ó ID" + +#: ../src/main.c:267 +msgid " --static\t\tdo not update or save configurations" +msgstr " --static\t\t¼³Á¤À» °»½ÅÇϰųª ÀúÀåÇÏÁö ¾Ê´Â´Ù" + +#: ../src/main.c:268 +msgid " --version\t\tprint version and exit" +msgstr " --version\t\t¹öÀüÀ» Ç¥½ÃÇÏ°í Á¾·á" + +#: ../src/main.c:269 +msgid " --help\t\t\tshow this message" +msgstr " --help\t\t\tÀÌ È­¸éÀ» º¸¿©ÁÜ" + +#: ../src/main.c:281 +#, c-format +msgid "" +"could not find user GNUstep directory (%s).\n" +"Make sure you have installed Window Maker correctly and run wmaker.inst" +msgstr "" +"»ç¿ëÀÚ GNUstep µð·ºÅ丮(%s)¸¦ ãÀ»¼ö ¾ø½À´Ï´Ù.\n" +"Window Maker°¡ Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö ´Ù½Ã È®ÀÎ ÈÄ wmaker.inst ¸¦ ½ÇÇàÇϽʽÿÀ" + +#: ../src/main.c:300 +#, c-format +msgid "%s:could not execute initialization script" +msgstr "%s:ÃʱâÈ­ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù." + +#: ../src/main.c:317 +#, c-format +msgid "%s:could not execute exit script" +msgstr "%s:Á¾·á ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù." + +#: ../src/main.c:378 ../src/main.c:385 ../src/main.c:393 ../src/main.c:409 +#, c-format +msgid "too few arguments for %s" +msgstr "%s¸¦ À§ÇÑ ÀÎÀÚ°¡ ºÎÁ·ÇÕ´Ï´Ù" + +#: ../src/main.c:397 +#, c-format +msgid "bad value for visualid: \"%s\"" +msgstr "ºñÁÖ¾ó ID¿¡ À߸øµÈ °ª: \"%s\"" + +#: ../src/main.c:414 +#, c-format +msgid "%s: invalid argument '%s'" +msgstr "%s: '%s'¿¡ À߸øµÈ Å°" + +#: ../src/main.c:415 +#, c-format +msgid "Try '%s --help' for more information" +msgstr "´õ ¸¹Àº Á¤º¸¸¦ ¿øÇϽøé '%s --help' ÇϽñ⠹ٶø´Ï´Ù." + +#: ../src/main.c:458 +msgid "X server does not support locale" +msgstr "X ¼­¹ö°¡ ·ÎÄÉÀÏÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù" + +#: ../src/main.c:461 +msgid "cannot set locale modifiers" +msgstr "·ÎÄÉÀÏ ¼öÁ¤ÀÚ(modifier)¸¦ ¼³Á¤ÇÒ ¼ö ¾øÀ½" + +#: ../src/main.c:478 +#, c-format +msgid "could not open display \"%s\"" +msgstr "\"%s\" µð½ºÇ÷¹À̸¦ ¿­Áö ¸øÇÔ." + +#: ../src/menu.c:285 +msgid "wrealloc() failed while trying to add menu item" +msgstr "¸Þ´º ¾ÆÀÌÅÛ Ãß°¡ ½ÃµµÁß wrealloc() ½ÇÆÐ" + +#: ../src/misc.c:71 +#, c-format +msgid "could not define value for %s for cpp" +msgstr "cppÀÇ %s¸¦ À§ÇÑ °ªÀÌ Á¤ÀǵÇÁö ¾ÊÀ½" + +#: ../src/misc.c:101 +#, c-format +msgid "could not get password entry for UID %i" +msgstr "UID %iÀÇ ¾ÏÈ£ Ç׸ñ¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/misc.c:125 +#, c-format +msgid "your machine is misconfigured. HOSTNAME is set to %s" +msgstr "½Ã½ºÅÛ ¼³Á¤ÀÌ À߸øµÇ¾ú½À´Ï´Ù. HOSTNAMEÀ» %s·Î ¼³Á¤ÇÕ´Ï´Ù" + +#: ../src/misc.c:131 +#, c-format +msgid "your machine is misconfigured. HOST is set to %s" +msgstr "½Ã½ºÅÛ ¼³Á¤ÀÌ À߸øµÇ¾ú½À´Ï´Ù. HOST¸¦ %s·Î ¼³Á¤ÇÕ´Ï´Ù" + +#: ../src/misc.c:773 +msgid "selection timed-out" +msgstr "¼±Åýð£ ÃÊ°ú" + +#: ../src/misc.c:789 +msgid "Program Arguments" +msgstr "ÇÁ·Î±×·¥ Àμö" + +#: ../src/misc.c:790 +msgid "Enter command arguments:" +msgstr "¸í·É¾î Àμö¸¦ ÀÔ·ÂÇϼ¼¿ä:" + +#: ../src/misc.c:887 +msgid "unable to get dropped data from DND drop" +msgstr "DND µå·Ó¿¡¼­ ¶³¾î¶ß¸° µ¥ÀÌÅ͸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/misc.c:895 +msgid "error getting dropped data from DND drop" +msgstr "DND µå·Ó¿¡¼­ ¶³¾î¶ß¸° µ¥ÀÌÅ͸¦ ¾ò´Âµ¥ ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù" + +#: ../src/misc.c:901 +msgid "out of memory while getting data from DND drop" +msgstr "DND µå·Ó¿¡¼­ ¶³¾î¶ß¸° µ¥ÀÌÅ͸¦ ¾ò´Âµ¥ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÕ´Ï´Ù" + +#: ../src/misc.c:946 ../src/misc.c:1081 +#, c-format +msgid "out of memory during expansion of \"%s\"" +msgstr "\"%s\" È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" + +#: ../src/misc.c:1000 +msgid "out of memory during expansion of \"%w\"" +msgstr "\"%w\" È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" + +#: ../src/misc.c:1018 +msgid "out of memory during expansion of \"%W\"" +msgstr "\"%W\" È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" + +#: ../src/misc.c:1034 +msgid "out of memory during expansion of \"%a\"" +msgstr "\"%a\" È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" + +#: ../src/misc.c:1060 +#, c-format +msgid "out of memory during expansion of \"%d\"" +msgstr "\"%d\" È®Àå Áß ¸Þ¸ð¸® ºÎÁ·" + +#: ../src/misc.c:1074 +msgid "selection not available" +msgstr "¼±Åà ºÒ°¡´É" + +#: ../src/misc.c:1146 ../src/misc.c:1152 +#, c-format +msgid "bad window name value in %s state info" +msgstr "»óÅ Á¤º¸ %sÀÇ Ã¢ À̸§ÀÌ À߸øµÊ" + +#: ../src/misc.c:1406 +msgid "could not send message to background image helper" +msgstr "¹è°æ À̹ÌÁö \"%s\" ¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/pixmap.c:235 +#, c-format +msgid "could not load mask bitmap file \"%s\". Won't use mask" +msgstr "ºñÆ®¸Ê ÆÄÀÏ \"%s\"¸¦ ÀÐÀ» ¼ö ¾ø½À´Ï´Ù. ¸¶½ºÅ©¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù" + +#: ../src/proplist.c:180 +msgid "unterminated string" +msgstr "Á¾·áÇÏÁö ¾ÊÀº ¹®ÀÚ¿­" + +#: ../src/proplist.c:247 +msgid "unterminated array" +msgstr "Á¾·áÇÏÁö ¾ÊÀº ¹®ÀÚ¿­" + +#: ../src/proplist.c:256 +msgid "missing , in array or unterminated array" +msgstr "¹è¿­¿¡¼­ ½°Ç¥°¡ ºüÁ³°Å³ª Á¾·áÇÏÁö ¾ÊÀº ¹è¿­" + +#: ../src/proplist.c:267 +msgid "could not get array element" +msgstr "¹è¿­ ¿ø¼Ò¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/proplist.c:297 +msgid "unterminated dictionary" +msgstr "Á¾·áÇÏÁö ¾ÊÀº »çÀü" + +#: ../src/proplist.c:315 +msgid "missing dictionary key" +msgstr "»çÀü Å° ¾øÀ½" + +#: ../src/proplist.c:317 +msgid "missing dictionary entry key or unterminated dictionary" +msgstr "»çÀü ¿£Æ®¸® Å°°¡ ¾ø°Å³ª Á¾·áÇÏÁö ¾ÊÀº »çÀü" + +#: ../src/proplist.c:323 +msgid "error parsing dictionary key" +msgstr "»çÀü Å°¸¦ Çؼ®Çϴµ¥ ¿À·ùÀÔ´Ï´Ù" + +#: ../src/proplist.c:332 +msgid "missing = in dictionary entry" +msgstr "»çÀü ¿£Æ®¸®¿¡ = °¡ ºüÁ® ÀÖ½À´Ï´Ù" + +#: ../src/proplist.c:351 +msgid "missing ; in dictionary entry" +msgstr "»çÀü ¿£Æ®¸®¿¡ ;°¡ ºüÁ® ÀÖ½À´Ï´Ù" + +#: ../src/proplist.c:432 +msgid "was expecting a string, dictionary, data or array." +msgstr "´Â ¹®ÀÚ¿­, »çÀü, µ¥ÀÌÅÍ ¶Ç´Â ¹è¿­ÀÌ ÇÊ¿äÇÕ´Ï´Ù" + +#: ../src/proplist.c:434 +msgid "Comments are not allowed inside WindowMaker owned domain files." +msgstr "ÁÖ¼®¹®Àº Window Maker µµ¸ÞÀÎ ÆÄÀÏ ³»¿¡¼­´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù." + +#: ../src/proplist.c:453 +#, c-format +msgid "could not open domain file %s" +msgstr "µµ¸ÞÀÎ ÆÄÀÏ %s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù" + +#: ../src/proplist.c:466 +msgid "extra data after end of file" +msgstr "ÆÄÀÏ ³¡ µÚ¿¡ µ¥ÀÌÅÍ°¡ ¶Ç ÀÖ½À´Ï´Ù" + +#: ../src/resources.c:71 +#, c-format +msgid "The following character sets are missing in %s:" +msgstr "´ÙÀ½ ¹®ÀÚ ¼ÂÀº %s¿¡¼­ ºüÁ® ÀÖ½À´Ï´Ù:" + +#: ../src/resources.c:76 +#, c-format +msgid "The string \"%s\" will be used in place" +msgstr "¹®ÀÚ¿­ \"%s\"ÀÌ ÀÌ ¹®ÀÚ¼ÂÀÇ ±ÛÀÚ¸¦" + +#: ../src/resources.c:78 +msgid "of any characters from those sets." +msgstr "´ë½ÅÇÏ¿© »ç¿ëµË´Ï´Ù." + +#: ../src/resources.c:81 +#, c-format +msgid "could not create font set %s. Trying fixed" +msgstr "%s ±Û²Ã ¼ÂÀ» ¸¸µéÁö ¸øÇÔ. fixed·Î ´ëüÇÕ´Ï´Ù" + +#: ../src/resources.c:98 +#, c-format +msgid "could not load font %s. Trying fixed" +msgstr "%s ±Û²ÃÀÌ ¾øÀ½. fixed·Î ´ëüÇÕ´Ï´Ù" + +#: ../src/resources.c:136 +#, c-format +msgid "could not parse color \"%s\"" +msgstr "»ö \"%s\"À» Çؼ®ÇÒ ¼ö ¾ø½À´Ï´Ù" + +#: ../src/resources.c:140 +#, c-format +msgid "could not allocate color \"%s\"" +msgstr "»ö \"%s\"À» ÇÒ´çÇÒ ¼ö ¾øÀ½" + +#: ../src/rootmenu.c:186 ../src/rootmenu.c:188 +msgid "Exit" +msgstr "Á¾·á" + +#: ../src/rootmenu.c:187 +msgid "Exit window manager?" +msgstr "â °ü¸®ÀÚ¸¦ Á¾·áÇϽðڽÀ´Ï±î?" + +#: ../src/rootmenu.c:223 +msgid "Close X session" +msgstr "X ¼¼¼Ç ´Ý±â" + +#: ../src/rootmenu.c:224 +msgid "" +"Close Window System session?\n" +"Kill might close applications with unsaved data." +msgstr "" +"À©µµ¿ì ½Ã½ºÅÛ ¼¼¼ÇÀ» Á¾·áÇÏ°Ú½À´Ï±î?\n" +"¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¾·áµÇ°í ÀúÀåÇÏÁö ¾ÊÀº ÀÚ·á´Â ÀÒ½À´Ï´Ù." + +#: ../src/rootmenu.c:226 ../src/winmenu.c:481 +msgid "Close" +msgstr "´Ý±â" + +#: ../src/rootmenu.c:237 +msgid "Kill X session" +msgstr "X ¼¼¼Ç Á¾·á" + +#: ../src/rootmenu.c:238 +msgid "" +"Kill Window System session?\n" +"(all applications will be closed)" +msgstr "" +"À©µµ¿ì ½Ã½ºÅÛ ¼¼¼ÇÀ» Á¾·áÇÏ°Ú½À´Ï±î?\n" +"(¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¾·áµË´Ï´Ù)" + +#: ../src/rootmenu.c:467 +#, c-format +msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" +msgstr "%s: À߸øµÈ Å°º¸µå ´ÜÃàÅ° ÁöÁ¤ \"%s\"(¿£Æ®¸® %s)" + +#: ../src/rootmenu.c:475 +#, c-format +msgid "%s:invalid key in shortcut \"%s\" for entry %s" +msgstr "%s: »¡¸®°¡±â \"%s\"(¿£Æ®¸® %s)¿¡ À߸øµÈ Å°" + +#: ../src/rootmenu.c:528 +#, c-format +msgid "%s: unmatched '\"' in menu file" +msgstr "%s: ¸Þ´º ÆÄÀÏÀÇ '\"' ¦ÀÌ ¸ÂÁö ¾ÊÀ½" + +#: ../src/rootmenu.c:578 +#, c-format +msgid "%s: missing command" +msgstr "%s: ¸í·É¾î°¡ ¾øÀ½" + +#: ../src/rootmenu.c:611 +#, c-format +msgid "invalid OPEN_MENU specification: %s" +msgstr "OPEN_MENU ÁöÁ¤ÀÌ À߸øµÊ: %s" + +#: ../src/rootmenu.c:684 +#, c-format +msgid "%s:could not stat menu" +msgstr "%s: ¸Þ´º ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö ¾øÀ½" + +#: ../src/rootmenu.c:692 +#, c-format +msgid "%s:could not stat menu:%s" +msgstr "%s: ¸Þ´º ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö ¾øÀ½ :%s" + +#: ../src/rootmenu.c:710 +#, c-format +msgid "too many parameters in OPEN_MENU: %s" +msgstr "OPEN_MENU¿¡ Àμö°¡ ³Ê¹« ¸¹À½: %s" + +#: ../src/rootmenu.c:746 +msgid "" +"There are more than one WORKSPACE_MENU commands in the applications menu. " +"Only one is allowed." +msgstr "" +"¾ÖÇø®ÄÉÀÌ¼Ç ¸Þ´º¿¡ WORKSPACE_MENU ¸í·ÉÀÌ µÑ ÀÌ»ó ÀÖ½À´Ï´Ù. Çϳª¸¸ ÀÖ¾î¾ß " +"ÇÕ´Ï´Ù. " + +#: ../src/rootmenu.c:775 ../src/rootmenu.c:793 +#, c-format +msgid "%s:missing parameter for menu command \"%s\"" +msgstr "%s: ¸Þ´º ¸í·É¾î \"%s\" ÀÇ Àμö°¡ ºüÁ³À½" + +#: ../src/rootmenu.c:856 +#, c-format +msgid "%s:unknown command \"%s\" in menu config." +msgstr "%s:¸Þ´º ¼³Á¤ÀÇ \"%s\" ¸í·ÉÀ» ¾Ë ¼ö ¾øÀ½." + +#: ../src/rootmenu.c:864 +#, c-format +msgid "%s:can't add shortcut for entry \"%s\"" +msgstr "%s: ¿£Æ®¸® \"%s\"¿¡ »¡¸®°¡±â¸¦ Ãß°¡ÇÒ ¼ö ¾øÀ½" + +#: ../src/rootmenu.c:1001 +#, c-format +msgid "%s:maximal line size exceeded in menu config: %s" +msgstr "%s:¸Þ´º ¼³Á¤ÀÇ ÃÖ´ë ÁÙ¼ö¸¦ ÃÊ°úÇÔ: %s" + +#: ../src/rootmenu.c:1023 ../src/rootmenu.c:1115 ../src/rootmenu.c:1216 +#, c-format +msgid "%s:missing command in menu config: %s" +msgstr "%s:¸Þ´º ¼³Á¤¿¡¼­ ¸í·ÉÀ» ãÀ» ¼ö ¾øÀ½: %s" + +#: ../src/rootmenu.c:1053 +#, c-format +msgid "%s:syntax error in menu file:END declaration missing" +msgstr "%s:¸Þ´ºÆÄÀÏ ¹®¹ý¿¡·¯:END ¼±¾ð¹® ¾øÀ½" + +#: ../src/rootmenu.c:1082 ../src/rootmenu.c:1181 +msgid "could not make arguments for menu file preprocessor" +msgstr "¸Þ´º ÆÄÀÏ Àü󸮱⸦ À§ÇÑ Àμö¸¦ ¸¸µé ¼ö ¾øÀ½" + +#: ../src/rootmenu.c:1088 ../src/rootmenu.c:1188 +#, c-format +msgid "%s:could not open/preprocess menu file" +msgstr "%s: ¸Þ´º ÆÄÀÏÀ» ¿­°Å³ª Àüó¸®ÇÒ ¼ö ¾øÀ½" + +#: ../src/rootmenu.c:1100 ../src/rootmenu.c:1201 +#, c-format +msgid "%s:could not open menu file" +msgstr "%s:¸Þ´º ÆÄÀÏÀ» ¿­ ¼ö ¾øÀ½" + +#: ../src/rootmenu.c:1127 +#, c-format +msgid "%s:invalid menu file. MENU command is missing" +msgstr "%s:À߸øµÈ ¸Þ´º ÆÄÀÏ. MENU ¸í·ÉÀÌ ºüÁ³½À´Ï´Ù" + +#: ../src/rootmenu.c:1136 +msgid "error reading preprocessed menu data" +msgstr "Àüó¸®µÈ ¸Þ´º µ¥ÀÌÅ͸¦ Àдµ¥ ¿À·ù" + +#: ../src/rootmenu.c:1228 +#, c-format +msgid "%s:no title given for the root menu" +msgstr "%s:ÃÖ»óÀ§ ¸Þ´º¿¡ Á¦¸ñÀÌ ¾ø½À´Ï´Ù" + +#: ../src/rootmenu.c:1311 ../src/rootmenu.c:1378 ../src/rootmenu.c:1422 +#, c-format +msgid "out of memory while constructing directory menu %s" +msgstr "µð·ºÅ丮 ¸Þ´º %s »ý¼º Áß ¸Þ¸ð¸® ºÎÁ·" + +#: ../src/rootmenu.c:1321 +#, c-format +msgid "%s:could not stat file \"%s\" in menu directory" +msgstr "%s: ¸Þ´º µð·ºÅ丮ÀÇ ÆÄÀÏ \"%s\"¿¡ Á¢±ÙÇÒ ¼ö ¾øÀ½" + +#: ../src/rootmenu.c:1476 +msgid "Commands" +msgstr "¸í·É¾î" + +#: ../src/rootmenu.c:1479 +msgid "Restart" +msgstr "Àç½ÃÀÛ" + +#: ../src/rootmenu.c:1480 +msgid "Exit..." +msgstr "Á¾·á..." + +#: ../src/rootmenu.c:1553 +#, c-format +msgid "could not find menu file \"%s\" referenced in WMRootMenu" +msgstr "WMRootMenu¿¡¼­ ÂüÁ¶ÇÏ´Â ¸Þ´º ÆÄÀÏ \"%s\"¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù" + +#: ../src/rootmenu.c:1560 +#, c-format +msgid "could not access menu \"%s\" referenced in WMRootMenu" +msgstr "WMRootMenu¿¡¼­ ÂüÁ¶ÇÏ´Â ¸Þ´º \"%s\"¿¡ Á¢±ÙÇÒ ¼ö ¾ø½À´Ï´Ù" + +#: ../src/rootmenu.c:1571 +#, c-format +msgid "" +"using default menu file \"%s\" as the menu referenced in WMRootMenu could " +"not be found " +msgstr "" +"WMRootMenu¿¡¼­ ÂüÁ¶ÇÏ´Â ¸Þ´º ÆÄÀÏÀ» ãÀ» ¼ö ¾øÀ¸¹Ç·Î \"%s\"¸¦ ±âº» ¸Þ´º " +"ÆÄÀÏ·Î »ç¿ëÇÕ´Ï´Ù" + +#: ../src/rootmenu.c:1594 ../src/rootmenu.c:1670 +#, c-format +msgid "%s:format error in root menu configuration \"%s\"" +msgstr "%s: ÃÖ»óÀ§ ¸Þ´º ¼³Á¤ \"%s\"ÀÇ Çü½Ä ¿À·ù" + +#: ../src/screen.c:428 +msgid "could not load logo image for panels" +msgstr "Æгο¡ ¾²ÀÏ ·Î°í À̹ÌÁö¸¦ ÀÐÁö ¸øÇÔ" + +#: ../src/screen.c:431 +#, c-format +msgid "error making logo image for panel:%s" +msgstr "Æгο¡ ¾²ÀÏ ·Î°í À̹ÌÁö¸¦ ¸¸µéÁö ¸øÇÔ:%s" + +#: ../src/screen.c:695 +#, c-format +msgid "could not initialize graphics library context: %s" +msgstr "±×·¡ÇÈ ¶óÀ̺귯¸® ȯ°æÀ» ÃʱâÈ­ ÇÒ¼ö ¾øÀ½: %s" + +#: ../src/screen.c:727 +msgid "could not do initialization of WINGs widget set" +msgstr "%s: ÃʱâÈ­ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù." + +#: ../src/screen.c:1059 +#, c-format +msgid "could not save session state in %s" +msgstr "%sÀÇ ¼¼¼Ç »óŸ¦ ÀúÀåÇÏÁö ¸øÇÔ" + +#: ../src/session.c:182 ../src/wdefaults.c:559 ../src/winspector.c:345 +#, c-format +msgid "can't convert \"%s\" to boolean" +msgstr "\"%s\"¸¦ ºÎ¿ï °ªÀ¸·Î ¹Ù²Ü ¼ö ¾øÀ½" + +#: ../src/session.c:875 ../src/session.c:969 +msgid "end of memory while saving session state" +msgstr "¼¼¼Ç »óŸ¦ ÀúÀåÇÏ´Â Áß ¸Þ¸ð¸® ºÎÁ·" + +#. This is not fatal but can mean the session manager exited. +#. * If the session manager exited normally we would get a +#. * Die message, so this probably means an abnormal exit. +#. * If the sm was the last client of session, then we'll die +#. * anyway, otherwise we can continue doing our stuff. +#. +#: ../src/session.c:1103 +msgid "connection to the session manager was lost" +msgstr "¼¼¼Ç °ü¸®ÀÚÀÇ ¿¬°áÀÌ ²÷¾îÁ³½À´Ï´Ù" + +#: ../src/stacking.c:72 +msgid "could not get window list!!" +msgstr "â ¸ñ·Ï¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù!!" + +#: ../src/startup.c:195 +#, c-format +msgid "internal X error: %s\n" +msgstr "X ³»ºÎ ¿¡·¯: %s\n" + +#: ../src/startup.c:258 +#, c-format +msgid "got signal %i (%s) - restarting\n" +msgstr "%i (%s) ½ÅÈ£ °¨Áö - Àç½Ãµ¿ÇÔ\n" + +#: ../src/startup.c:260 +#, c-format +msgid "got signal %i - restarting\n" +msgstr "%i ½ÅÈ£ °¨Áö - Àç½Ãµ¿ÇÔ\n" + +#: ../src/startup.c:275 +#, c-format +msgid "got signal %i (%s) - exiting...\n" +msgstr "%i (%s) ½ÅÈ£ °¨Áö - Á¾·áÇÔ...\n" + +#: ../src/startup.c:277 +#, c-format +msgid "got signal %i - exiting...\n" +msgstr "%i ½ÅÈ£ °¨Áö - Á¾·áÇÔ...\n" + +#: ../src/startup.c:290 +#, c-format +msgid "got signal %i (%s)\n" +msgstr "%i (%s) ½ÅÈ£ °¨Áö\n" + +#: ../src/startup.c:292 +#, c-format +msgid "got signal %i\n" +msgstr "%i ½ÅÈ£ °¨Áö\n" + +#: ../src/startup.c:298 +msgid "" +"crashed while trying to do some post-crash cleanup. Aborting immediatelly." +msgstr "" +"ºñÁ¤»ó Á¾·áÈÄ Ã³¸®¸¦ ÇÏ·Á´Â µ¿¾È¿¡ ºñÁ¤»ó Á¾·áµÇ¾ú½À´Ï´Ù. Áï½Ã Á¾·áÇÕ´Ï´Ù." + +#: ../src/startup.c:309 +msgid "" +"a fatal error has occured, probably due to a bug. Please fill the included " +"BUGFORM and report it." +msgstr "" +"Ä¡¸íÀûÀÎ ¿À·ù ¹ß»ý, ¾Æ¸¶µµ ¹ö±×ÀÎ °Í °°½À´Ï´Ù. BUGFORMÀ» ÀÛ¼ºÇØ º¸³»Áֽñæ " +"ºÎŹµå¸³´Ï´Ù." + +#: ../src/startup.c:316 +msgid "trying to start alternative window manager..." +msgstr "´ëü¿ë â °ü¸®ÀÚ¸¦ ½ÃÀÛÇÏ°Ú½À´Ï´Ù..." + +#: ../src/startup.c:719 +#, c-format +msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" +msgstr "ÁöÁ¤µÈ ¾ÆÀÌÄÜ Å©±â(%i)°¡ ³Ê¹« ÀÛÀ½. ´ë½Å 16À¸·Î ¹Ù²ß´Ï´Ù\n" + +#: ../src/startup.c:763 +msgid "it seems that there already is a window manager running" +msgstr "ÀÌ¹Ì ´Ù¸¥ â °ü¸®ÀÚ°¡ µ¿ÀÛÇÏ°í ÀÖ´Â °Í °°½À´Ï´Ù" + +#: ../src/startup.c:769 +#, c-format +msgid "could not manage screen %i" +msgstr "È­¸é %i¸¦ Á¦¾îÇÒ ¼ö ¾øÀ½" + +#: ../src/startup.c:829 +msgid "could not manage any screen" +msgstr "¸ðµç È­¸éÀ» Á¦¾îÇÒ ¼ö ¾øÀ½" + +#: ../src/switchmenu.c:114 +msgid "Windows" +msgstr "â" + +#: ../src/texture.c:274 ../src/texture.c:318 +#, c-format +msgid "image file \"%s\" used as texture could not be found." +msgstr "ÅؽºÃ³·Î »ç¿ëÇÏ´Â À̹ÌÁö ÆÄÀÏ \"%s\"À» ãÀ» ¼ö ¾ø½À´Ï´Ù." + +#: ../src/texture.c:280 ../src/texture.c:324 +#, c-format +msgid "could not load texture pixmap \"%s\":%s" +msgstr "ÅؽºÃ³ ÇȽº¸Ê \"%s\"À» ¿­ ¼ö°¡ ¾øÀ½: %s" + +#: ../src/texture.c:463 ../src/texture.c:574 +#, c-format +msgid "could not render texture: %s" +msgstr "ÅؽºÃ³ ·»´õ¸µÀ» ÇÒ ¼ö ¾øÀ½: %s" + +#: ../src/wdefaults.c:405 +#, c-format +msgid "could not find icon file \"%s\"" +msgstr "¾ÆÀÌÄÜ ÆÄÀÏ \"%s\"À» ãÁö ¸øÇß½À´Ï´Ù" + +#: ../src/window.c:2377 ../src/window.c:2509 +msgid "" +"the NumLock, ScrollLock or similar key seems to be turned on.\n" +"Turn it off or some mouse actions and keyboard shortcuts will not work." +msgstr "" +"NumLock, ScrollLock À̳ª ´Ù¸¥ ºñ½ÁÇÑ Á¾·ùÀÇ Å°°¡ ÄÑÁ® ÀÖ´Â °Í °°½À´Ï´Ù.\n" +"²ôÁö ¾ÊÀ¸¸é ÀϺΠ¸¶¿ì½º µ¿ÀÛÀ̳ª Å°º¸µå ´ÜÃàÅ°°¡ µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù." + +#: ../src/winmenu.c:249 ../src/winmenu.c:257 +msgid "Set Shortcut" +msgstr "´ÜÃàÅ° ¼±ÅÃ" + +#: ../src/winmenu.c:333 ../src/winmenu.c:379 +msgid "could not create submenu for window menu" +msgstr "â ¸Þ´º¸¦ À§ÇÑ ºÎ¸Þ´º¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù" + +#: ../src/winmenu.c:388 +msgid "Keep at bottom" +msgstr "Ç×»ó ¾Æ·¡·Î/°¡¶ó¾ÉÀ½" + +#: ../src/winmenu.c:393 ../src/winspector.c:1141 +msgid "Omnipresent" +msgstr "Ç×»ó º¸ÀÓ" + +#: ../src/winmenu.c:416 ../src/winmenu.c:551 +msgid "Maximize" +msgstr "ÃÖ´ëÈ­" + +#: ../src/winmenu.c:424 ../src/winmenu.c:537 +msgid "Miniaturize" +msgstr "ÃÖ¼ÒÈ­" + +#: ../src/winmenu.c:433 ../src/winmenu.c:565 +msgid "Shade" +msgstr "°¡¸²" + +#: ../src/winmenu.c:449 +msgid "Resize/Move" +msgstr "Å©±â¹Ù²Þ/À̵¿" + +#: ../src/winmenu.c:457 +msgid "Select" +msgstr "¼±ÅÃ" + +#: ../src/winmenu.c:465 +msgid "Move To" +msgstr "À̵¿" + +#: ../src/winmenu.c:470 +msgid "Attributes..." +msgstr "¼Ó¼º ¼³Á¤..." + +#: ../src/winmenu.c:472 +msgid "Options" +msgstr "¿É¼Ç" + +#: ../src/winmenu.c:532 +msgid "Deminiaturize" +msgstr "º¸ÅëÅ©±â" + +#: ../src/winmenu.c:546 +msgid "Unmaximize" +msgstr "º¸ÅëÅ©±â" + +#: ../src/winmenu.c:560 +msgid "Unshade" +msgstr "º¸ÀÓ" + +#: ../src/winspector.c:279 +#, c-format +msgid "Could not find icon \"%s\" specified for this window" +msgstr "ÀÌ Ã¢¿¡¼­ ÁöÁ¤ÇÑ ¾ÆÀÌÄÜ \"%s\"À» ãÀ» ¼ö ¾øÀ½" + +#: ../src/winspector.c:295 +#, c-format +msgid "Could not open specified icon \"%s\":%s" +msgstr "ÁöÁ¤µÈ ¾ÆÀÌÄÜ \"%s\"À» ¿­ ¼ö ¾øÀ½:%s" + +#: ../src/winspector.c:1016 +msgid "Save" +msgstr "ÀúÀå" + +#: ../src/winspector.c:1024 +msgid "Apply" +msgstr "Àû¿ë" + +#: ../src/winspector.c:1030 +msgid "Reload" +msgstr "´Ù½ÃÀбâ" + +#: ../src/winspector.c:1039 ../src/winspector.c:1049 +msgid "Window Specification" +msgstr "â ¼±ÅÃ" + +#: ../src/winspector.c:1040 +msgid "Window Attributes" +msgstr "â ¼Ó¼º" + +#: ../src/winspector.c:1041 +msgid "Advanced Options" +msgstr "°í±Þ ¿É¼Ç" + +#: ../src/winspector.c:1042 +msgid "Icon and Initial Workspace" +msgstr "¾ÆÀÌÄÜ°ú Ãʱâ ÀÛ¾÷°ø°£" + +#: ../src/winspector.c:1043 +msgid "Application Specific" +msgstr "¾ÖÇø®ÄÉÀ̼ǿ¡ µû¶ó ´Ù¸¥ ¼³Á¤" + +#: ../src/winspector.c:1057 +msgid "Defaults for all windows" +msgstr "¸ðµç âÀÇ ±âº»°ªÀ¸·Î" + +#: ../src/winspector.c:1100 +msgid "" +"The configuration will apply to all\n" +"windows that have their WM_CLASS property set to the above selected\n" +"name, when saved." +msgstr "" +"¼³Á¤À» ÀúÀåÇϸé WM_CLASS Ư¼º°ªÀÌ\n" +"À§¿¡¼­ ÁöÁ¤ÇÑ À̸§À¸·Î µÇ¾î ÀÖ´Â\n" +"¸ðµç â¿¡ ±× ¼³Á¤ÀÌ Àû¿ëµË´Ï´Ù." + +#: ../src/winspector.c:1107 +msgid "Attributes" +msgstr "¼Ó¼º" + +#: ../src/winspector.c:1117 +msgid "Disable titlebar" +msgstr "Á¦¸ñ ¹Ù ¾ø¾Ú" + +#: ../src/winspector.c:1121 +msgid "Disable resizebar" +msgstr "Å©±âÁ¶Á¤ ¹Ù ¾ø¾Ú" + +#: ../src/winspector.c:1125 +msgid "Disable close button" +msgstr "´Ý±â ¹öÆ° ¾ø¾Ú" + +#: ../src/winspector.c:1129 +msgid "Disable miniaturize button" +msgstr "ÃÖ¼ÒÈ­ ¹öÆ° ¾ø¾Ú" + +#: ../src/winspector.c:1133 +msgid "Keep on top / floating" +msgstr "Ç×»ó À§·Î/¶ä" + +#: ../src/winspector.c:1137 +msgid "Keep at bottom / sunken" +msgstr "Ç×»ó ¾Æ·¡·Î/°¡¶ó¾ÉÀ½" + +#: ../src/winspector.c:1145 +msgid "Start Miniaturized" +msgstr "ÃÖ¼ÒÈ­ÇÏ¿© ½ÇÇà" + +#: ../src/winspector.c:1149 +msgid "Start Maximized" +msgstr "ÃÖ´ëÈ­ÇÏ¿© ½ÇÇà" + +#: ../src/winspector.c:1153 +msgid "Skip window list" +msgstr "â ¸ñ·Ï¿¡ ³ªÅ¸³ªÁö ¾ÊÀ½" + +#: ../src/winspector.c:1167 +msgid "Advanced" +msgstr "°í±Þ Ç׸ñ" + +#: ../src/winspector.c:1177 +msgid "Ignore HideOthers" +msgstr "´Ù¸¥ °Íµé ¼û±è ¹«½ÃÇÔ" + +#: ../src/winspector.c:1181 +msgid "Don't bind keyboard shortcuts" +msgstr "Å°º¸µå ´ÜÃàÅ° »ç¿ë ¾ÈÇÔ" + +#: ../src/winspector.c:1185 +msgid "Don't bind mouse clicks" +msgstr "¸¶¿ì½º Ŭ¸¯ »ç¿ë ¾ÈÇÔ" + +#: ../src/winspector.c:1189 +msgid "Keep inside screen" +msgstr "Ç×»ó È­¸é¾È¿¡ À§Ä¡" + +#: ../src/winspector.c:1193 +msgid "Don't let it take focus" +msgstr "È°¼ºÈ­ ¾ÈµÊ" + +#: ../src/winspector.c:1197 +msgid "Don't Save Session" +msgstr "¼¼¼ÇÀ» ÀúÀåÇÏÁö ¾ÊÀ½" + +#: ../src/winspector.c:1201 +msgid "Emulate Application Icon" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÀÌÄÜ Èä³»³»±â" + +#: ../src/winspector.c:1216 +msgid "" +"Enable the \"Don't bind...\" options to allow the application to receive all " +"mouse or keyboard events." +msgstr "" +"¾ÖÇø®ÄÉÀ̼ÇÀÌ ¸ðµç ¸¶¿ì½º¿Í Å°º¸µå À̺¥Æ®¸¦ ¹Þµµ·Ï \"... »ç¿ë ¾ÈÇÔ\" ¿É¼ÇÀ» " +"»ç¿ë °¡´ÉÇϵµ·Ï ÇÕ´Ï´Ù." + +#: ../src/winspector.c:1223 +msgid "Miniwindow Image" +msgstr "¾ÆÀÌÄÜ À̹ÌÁö" + +#: ../src/winspector.c:1242 +msgid "Update" +msgstr "°»½Å" + +#: ../src/winspector.c:1257 +msgid "Icon file name:" +msgstr "¾ÆÀÌÄÜ ÆÄÀϸí:" + +#: ../src/winspector.c:1269 +msgid "Ignore client supplied icon" +msgstr "Ŭ¶óÀ̾ðÆ® Á¦°ø ¾ÆÀÌÄÜ ¹«½ÃÇÔ" + +#: ../src/winspector.c:1276 +msgid "Initial Workspace" +msgstr "Ãʱâ ÀÛ¾÷°ø°£" + +#: ../src/winspector.c:1281 +msgid "Nowhere in particular" +msgstr "Ưº°ÇÑ ¼³Á¤ ¾øÀ½" + +#: ../src/winspector.c:1315 +msgid "Application Wide" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¿ÍÀ̵å" + +#: ../src/winspector.c:1325 +msgid "Start Hidden" +msgstr "¼û°Ü¼­ ½ÇÇà" + +#: ../src/winspector.c:1329 +msgid "No application icon" +msgstr "¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÀÌÄÜ ¾øÀ½" + +#: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:480 +#, c-format +msgid "Workspace %i" +msgstr "ÀÛ¾÷°ø°£ %i" + +#: ../src/workspace.c:537 +msgid "Workspaces" +msgstr "ÀÛ¾÷°ø°£" + +#: ../src/workspace.c:539 +msgid "could not create Workspace menu" +msgstr "ÀÛ¾÷°ø°£ ¸Þ´º¸¦ ¸¸µé¼ö ¾øÀ½" + +#: ../src/workspace.c:546 +msgid "New" +msgstr "»õ ÀÛ¾÷°ø°£ ¸¸µë" + +#: ../src/workspace.c:547 +msgid "Destroy Last" +msgstr "¸¶Áö¸· ÀÛ¾÷°ø°£ ¾ø¾Ú" + +#: ../src/xutil.c:228 +msgid "invalid data in selection" +msgstr "¼±Åÿ¡ À߸øµÈ µ¥ÀÌÅÍ" diff --git a/po/ru.po b/po/pl.po similarity index 59% copy from po/ru.po copy to po/pl.po index 4c78ddb9..f7743795 100644 --- a/po/ru.po +++ b/po/pl.po @@ -1,27 +1,31 @@ +# Pre-translation has bean done using PePeSza v0.6 +# get your own copy of PePeSza from http://www.ids.pl/~pkollegu/pepesza.html # -# Initial translation -# August S. Sigov -# -# Brought up-to-date for 0.17.5 -# Alexey Vyskubov -# Michael Sobolev +# Window Maker Polish translation. +# Copyright (C) 1999 Free Software Foundation, Inc. +# Piotr Dembiñski , 1998. # +#, fuzzy msgid "" msgstr "" -"POT-Creation-Date: 1999-01-16 22:08+0300\n" -"Language-Team: Russian\n" -"Content-Type: text/plain; charset=koi8-r\n" -"Date: ðÎÄ á×Ç 24 22:23:01 MSD 1998\n" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 1999-01-24 14:05+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Piotr Dembiñski \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO8859-2\n" +"Content-Transfer-Encoding: ISO8859-2\n" #: ../src/appicon.c:509 ../src/dialog.c:216 ../src/dialog.c:272 #: ../src/dock.c:3059 ../src/dockedapp.c:206 ../src/winspector.c:283 #: ../src/winspector.c:299 msgid "Error" -msgstr "ïÛÉÂËÁ" +msgstr "B³±d" #: ../src/appicon.c:510 msgid "Could not open specified icon file" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÕËÁÚÁÎÎÙÊ ÆÁÊÌ ÚÎÁÞËÁ" +msgstr "Nie mo¿na otworzyæ pliku z ikon±" #: ../src/appicon.c:511 ../src/dialog.c:115 ../src/dialog.c:216 #: ../src/dialog.c:272 ../src/dialog.c:460 ../src/dock.c:424 @@ -30,87 +34,80 @@ msgstr " msgid "OK" msgstr "OK" -# #: ../src/appicon.c:532 ../src/dock.c:272 ../src/winmenu.c:123 msgid "Kill Application" -msgstr "á×ÁÒÉÊÎÏÅ ÚÁ×ÅÒÛÅÎÉÅ" +msgstr "Zabij Aplikacjê" #: ../src/appicon.c:533 ../src/dock.c:273 ../src/winmenu.c:124 -msgid "" -"This will kill the application.\n" -"Any unsaved changes will be lost.\n" -"Please confirm." -msgstr "" -"üÔÏ ÆÏÒÓÉÒÏ×ÁÎÎÏ ÚÁ×ÅÒÛÉÔ ÐÒÉÌÏÖÅÎÉÅ.\n" -"÷ÓÅ ÎÅÓÏÈÒÁÎÅÎÎÙÅ ÉÚÍÅÎÅÎÉÑ ÂÕÄÕÔ ÐÏÔÅÒÑÎÙ.\n" -"ðÏÖÁÌÕÊÓÔÁ, ÐÏÄÔ×ÅÒÄÉÔÅ." +msgid "This will kill the application.\nAny unsaved changes will be lost.\nPlease confirm." +msgstr "To zabije aplikacjê.\nWszystkie nie zachowane zmiany zostan± stracone.\nProszê potwierdziæ." #: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 msgid "Yes" -msgstr "äÁ" +msgstr "Tak" #: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 msgid "No" -msgstr "îÅÔ" +msgstr "Nie" #: ../src/appicon.c:548 ../src/dock.c:1065 msgid "Unhide Here" -msgstr "òÁÓËÒÙÔØ ÚÄÅÓØ" +msgstr "Odkryj Tutaj" #: ../src/appicon.c:549 ../src/appicon.c:574 ../src/winmenu.c:441 msgid "Hide" -msgstr "óËÒÙÔØ" +msgstr "Ukryj" #: ../src/appicon.c:550 msgid "Set Icon..." -msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÏË..." +msgstr "Ustaw Ikonê..." #: ../src/appicon.c:551 ../src/dock.c:1071 ../src/rootmenu.c:225 #: ../src/rootmenu.c:239 ../src/winmenu.c:488 msgid "Kill" -msgstr "õÂÉÔØ" +msgstr "Zabij" #: ../src/appicon.c:572 msgid "Unhide" -msgstr "òÁÓËÒÙÔØ" +msgstr "Odkryj" #: ../src/defaults.c:735 ../src/startup.c:700 ../src/startup.c:718 #: ../src/startup.c:724 #, c-format msgid "could not read domain \"%s\" from defaults database" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÏÍÅÎÁ \"%s\"" +msgstr "nie mo¿na odczytaæ domeny \"%s\" z bazy danych" #: ../src/defaults.c:781 ../src/defaults.c:905 ../src/defaults.c:944 #: ../src/defaults.c:974 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" -msgstr "äÏÍÅÎ %s (%s) × ÆÁÊÌÅ ÕÓÔÁÎÏ×ÏË ÐÏ×ÒÅÖÄÅÎ!" +msgstr "Domena %s (%s) w bazie danych jest zniszczona!" #: ../src/defaults.c:786 ../src/defaults.c:926 ../src/defaults.c:957 #: ../src/defaults.c:983 #, c-format msgid "could not load domain %s from user defaults database" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÄÏÍÅÎ \"%s\" ÉÚ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÆÁÊÌÁ ÕÓÔÁÎÏ×ÏË" +msgstr "nie mo¿na za³adowaæ domeny %s z bazy danych u¿ytkownika" #: ../src/defaults.c:797 ../src/defaults.c:890 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" -msgstr "äÏÍÅÎ %s (%s) × ÇÌÏÂÁÌØÎÏÍ ÆÁÊÌÅ ÎÁÓÔÒÏÅË ÐÏ×ÒÅÖÄÅÎ!" +msgstr "Domena %s (%s) w globalnej bazie danych jest zniszczona!" #: ../src/defaults.c:816 ../src/defaults.c:895 #, c-format msgid "could not load domain %s from global defaults database" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÄÏÍÅÎ %s ÉÚ ÇÌÏÂÁÌØÎÏÇÏ ÆÁÊÌÁ ÎÁÓÔÒÏÅË" +msgstr "nie mo¿na za³adowaæ domeny %s z globalnej bazy danych" #: ../src/defaults.c:1266 -#, c-format +#, c-format, fuzzy msgid "wrong option value for key \"%s\". Should be one of %s" -msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÌÀÞÁ \"%s\". äÏÌÖÎÏ ÂÙÔØ ÏÄÎÏ ÉÚ %s." +msgstr "niew³a¶ciwa warto¶æ dla klucza \"%s\". Powinno byæ jedno z: %s" #: ../src/defaults.c:1313 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÌÏÇÉÞÅÓËÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÌÀÞÁ \"%s\"" +msgstr "nie mo¿na zmieniæ \"%s\" na warto¶æ logiczn± dla klucza \"%s\"" #: ../src/defaults.c:1318 ../src/defaults.c:1352 ../src/defaults.c:1384 #: ../src/defaults.c:1397 ../src/defaults.c:1412 ../src/defaults.c:1426 @@ -119,656 +116,631 @@ msgstr " #: ../src/defaults.c:1937 ../src/defaults.c:1968 ../src/defaults.c:2041 #, c-format msgid "using default \"%s\" instead" -msgstr "ÉÓÐÏÌØÚÕÅÍ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ (%s)" +msgstr "u¿ywam domy¶lnego \"%s\"" #: ../src/defaults.c:1349 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÃÅÌÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÌÀÞÁ \"%s\"" +msgstr "nie mo¿na zmieniæ \"%s\" na liczbê ca³kowit± dla klucza \"%s\"" #: ../src/defaults.c:1379 ../src/defaults.c:1493 ../src/defaults.c:1853 #: ../src/defaults.c:1870 ../src/defaults.c:1916 ../src/defaults.c:1963 #: ../src/wdefaults.c:541 ../src/wdefaults.c:577 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." -msgstr "îÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÐÁÒÁÍÅÔÒÁ ÄÌÑ ËÌÀÞÁ \"%s\". äÏÌÖÅÎ ÂÙÔØ %s." +msgstr "Niew³a¶ciwy format opcji dla klucza \"%s\". Powinno byæ %s." #: ../src/defaults.c:1392 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." -msgstr "îÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÜÌÅÍÅÎÔÏ× × ÍÁÓÓÉ×Å ÄÌÑ ËÌÀÞÁ \"%s\"." +msgstr "Niew³a¶ciwa liczba elementów w tablicy dla klucza \"%s\"." #: ../src/defaults.c:1407 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." -msgstr "îÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÐÁÒÁÍÅÔÒÁ ÄÌÑ ËÌÀÞÁ \"%s\". äÏÌÖÎÏ ÂÙÔØ Coordinate." +msgstr "Niew³a¶ciwa warto¶æ dla klucza \"%s\". Powinna byæ Wspó³rzêdna." #: ../src/defaults.c:1422 #, c-format msgid "can't convert array to integers for \"%s\"." -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÍÁÓÓÉ× × ÎÁÂÏÒ ÃÅÌÙÈ ÚÎÁÞÅÎÉÑ ÄÌÑ \"%s\"." +msgstr "nie mo¿na zamieniæ tablicy na liczby ca³kowite dla \"%s\"." #: ../src/defaults.c:1619 ../src/defaults.c:1651 ../src/defaults.c:1667 #: ../src/defaults.c:1713 ../src/defaults.c:1753 ../src/defaults.c:1791 #: ../src/defaults.c:1807 #, c-format msgid "\"%s\" is not a valid color name" -msgstr "\"%s\" ÎÅ Ñ×ÌÑÅÔÓÑ ÎÁÚ×ÁÎÉÅÍ ÉÚ×ÅÓÔÎÏÇÏ Ã×ÅÔÁ" +msgstr "\"%s\" nie jest w³a¶ciw± nazw± koloru" #: ../src/defaults.c:1632 msgid "bad number of arguments in gradient specification" -msgstr "ÎÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ× × ÓÐÅÃÉÆÉËÁÃÉÉ ÇÒÁÄÉÅÎÔÁ" +msgstr "niew³a¶ciwa liczba argumentów w okre¶leniu gradientu" #: ../src/defaults.c:1686 msgid "too few arguments in multicolor gradient specification" -msgstr "ÓÌÉÛËÏÍ ÍÁÌÏ ÁÒÇÕÍÅÎÔÏ× × ÓÐÅÃÉÆÉËÁÃÉÉ ÍÎÏÇÏÃ×ÅÔÎÏÇÏ ÇÒÁÄÉÅÎÔÁ" +msgstr "zbyt ma³o argumentów w okre¶leniu wielokolorowego gradientu" #: ../src/defaults.c:1780 msgid "bad number of arguments in textured gradient specification" -msgstr "ÎÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ× × ÓÐÅÃÉÆÉËÁÃÉÉ ÇÒÁÄÉÅÎÔÁ Ó ÔÅËÓÔÕÒÏÊ" +msgstr "niew³a¶ciwa liczba argumentów w okre¶leniu gradientu z tekstury" #: ../src/defaults.c:1823 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" -msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÐÒÏÚÒÁÞÎÏÓÔÉ ÄÌÑ t-ÇÒÁÄÉÅÎÔÁ Ó ÔÅËÓÔÕÒÏÊ \"%s\"; ÄÏÌÖÎÏ " -"ÂÙÔØ [0..255]" +msgstr "niew³a¶ciwa warto¶æ opacity dla gradientowanej tekstury \"%s\". Powinna byæ liczba z zakresu [0..255]" #: ../src/defaults.c:1836 #, c-format msgid "invalid texture type %s" -msgstr "Î×ÅÒÎÙÊ ÔÉÐ ÔÅËÓÔÕÒÙ (%s)" +msgstr "niew³a¶ciwy typ tekstury %s" #: ../src/defaults.c:1883 #, c-format msgid "Error in texture specification for key \"%s\"" -msgstr "ïÛÉÂËÁ × ÓÐÅÃÉÆÉËÁÃÉÉ ÔÅËÓÔÕÒÙ ÄÌÑ ËÌÀÞÁ \"%s\"" +msgstr "B³±d w okre¶leniu tekstury dla klucza \"%s\"" #: ../src/defaults.c:1933 msgid "Wrong type for workspace background. Should be a texture type." -msgstr "îÅ×ÅÒÎÙÊ ÔÉÐ ÄÌÑ ÆÏÎÁ òÁÂÏÞÅÇÏ ÍÅÓÔÁ; ÏÖÄÁÌÏÓØ ÚÎÁÞÅÎÉÅ ÔÉÐÁ \"ÔÅËÓÔÕÒÁ\"." +msgstr "Niew³a¶ciwy typ t³a pulpitu. Powinna byæ tekstura." #: ../src/defaults.c:1981 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." -msgstr "îÅ×ÅÒÎÙÊ ÔÉÐ ÄÌÑ ÆÏÎÁ òÁÂÏÞÅÇÏ ÍÅÓÔÁ #%i; ÏÖÄÁÌÏÓØ ÚÎÁÞÅÎÉÅ ÔÉÐÁ " -"\"ÔÅËÓÔÕÒÁ\"." +msgstr "Niew³a¶ciwy typ t³a pulpitu %i. Powinna byæ tekstura." #: ../src/defaults.c:2006 msgid "could not load any usable font!!!" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÐÏÄÈÏÄÑÝÉÊ ÛÒÉÆÔ!!!" +msgstr "nie mo¿na za³adowaæ ¿adnego fontu!!!" #: ../src/defaults.c:2036 #, c-format msgid "could not get color for key \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ Ã×ÅÔ ÄÌÑ ËÌÀÞÁ \"%s\"" +msgstr "nie mo¿na wzi±æ koloru dla klucza \"%s\"" #: ../src/defaults.c:2095 ../src/rootmenu.c:450 #, c-format msgid "%s:invalid key modifier \"%s\"" -msgstr "%s -- ÎÅ×ÅÒÎÙÊ ÍÏÄÉÆÉËÁÔÏÒ ËÌÀÞÁ \"%s\"" +msgstr "%s:niew³a¶ciwy modyfikator klucza \"%s\"" -# #: ../src/defaults.c:2107 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" -msgstr "%s:ÎÅÄÏÐÕÓÔÉÍÏÅ ÕËÁÚÁÎÉÅ ÓÏÞÅÔÁÎÉÑ ËÌÁ×ÉÛ \"%s\"" +msgstr "%s:niew³a¶ciwe okre¶lenie skrótu klawiaturowego \"%s\"" -# #: ../src/defaults.c:2114 #, c-format msgid "%s:invalid key in shortcut \"%s\"" -msgstr "%s:ÎÅ×ÅÒÎÁÑ ËÌÁ×ÉÛÁ × ÓÏÞÅÔÁÎÉÉ \"%s\"" +msgstr "%s:niew³a¶ciwy klawisz w skrócie \"%s\"" #: ../src/defaults.c:2140 #, c-format msgid "%s: modifier key %s is not valid" -msgstr "%s: ÍÏÄÉÆÉËÁÔÏÒ %s ÎÅÉÚ×ÅÓÔÅÎ" +msgstr "%s: klawisz zmiany %s nie jest w³a¶ciwy" #: ../src/defaults.c:2216 msgid "could not render texture for icon background" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÇÏÔÏ×ÉÔØ ÔÅËÓÔÕÒÕ ÄÌÑ ÆÏÎÁ ÚÎÁÞËÁ" +msgstr "nie mo¿na pokazaæ tekstury dla t³a ikony" #: ../src/dialog.c:115 ../src/dialog.c:467 ../src/dock.c:424 #: ../src/dockedapp.c:356 ../src/rootmenu.c:187 ../src/rootmenu.c:225 #: ../src/rootmenu.c:239 msgid "Cancel" -msgstr "ïÔËÁÚ" +msgstr "Anuluj" -# #: ../src/dialog.c:211 msgid "Could not open directory " -msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÁÔÁÌÏÇ " +msgstr "Nie mo¿na otworzyæ katalogu " #: ../src/dialog.c:267 msgid "Could not load image file " -msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÆÁÊÌ Ó ËÁÒÔÉÎËÏÊ " +msgstr "Nie mo¿na za³adowaæ pliku z obrazkiem " #: ../src/dialog.c:404 msgid "Directories" -msgstr "ëÁÔÁÌÏÇÉ" +msgstr "Katalogi" #: ../src/dialog.c:413 msgid "Icons" -msgstr "úÎÁÞËÉ" +msgstr "Ikony" -# #: ../src/dialog.c:450 msgid "File Name:" -msgstr "éÍÑ ÆÁÊÌÁ:" +msgstr "Nazwa Pliku:" #: ../src/dialog.c:473 msgid "Choose File" -msgstr "÷ÙÂÅÒÉÔÅ ÆÁÊÌ" +msgstr "Wybierz Plik" #: ../src/dialog.c:483 msgid "Icon Chooser" -msgstr "÷ÙÂÏÒ ÚÎÁÞËÁ" +msgstr "Katalog Ikon" #: ../src/dock.c:213 #, c-format msgid "Type the name for workspace %i:" -msgstr "÷×ÅÄÉÔÅ ÉÍÑ ÄÌÑ %i-ÇÏ ÒÁÂÏÞÅÇÏ ÍÅÓÔÁ:" +msgstr "Wpisz nazwê dla pulpitu %i:" -# #: ../src/dock.c:214 ../src/dock.c:1044 msgid "Rename Workspace" -msgstr "ðÅÒÅÉÍÅÎÏ×ÁÔØ òÁÂÏÞÅÅ ÍÅÓÔÏ" +msgstr "Zmieñ Nazwê Pulpitu" #: ../src/dock.c:422 msgid "Workspace Clip" -msgstr "ðÉÒÓ òÁÂÏÞÅÇÏ ÍÅÓÔÁ" +msgstr "Spinacz Pulpitu" #: ../src/dock.c:423 msgid "All selected icons will be removed!" -msgstr "÷ÓÅ ×ÙÄÅÌÅÎÎÙÅ ÚÎÁÞËÉ ÂÕÄÕÔ ÕÄÁÌÅÎÙ!" +msgstr "Wszystkie zaznaczone ikony zostan± usuniête!" #: ../src/dock.c:470 msgid "Keep Icon" -msgstr "õÄÅÒÖÉ×ÁÔØ ÚÎÁÞÏË" +msgstr "Trzymaj Ikonê" -# #: ../src/dock.c:471 ../src/dock.c:1977 ../src/dock.c:2106 msgid "Type the command used to launch the application" -msgstr "÷×ÅÄÉÔÅ ËÏÍÁÎÄÕ, ÉÓÐÏÌØÚÕÅÍÕÀ ÄÌÑ ÚÁÐÕÓËÁ ÐÒÉÌÏÖÅÎÉÑ" +msgstr "Wpisz polecenie u¿ywane do odpalenia aplikacji" -# #: ../src/dock.c:857 #, c-format msgid "could not launch application %s\n" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÐÕÓÔÉÔØ ÐÒÉÌÏÖÅÎÉÅ %s\n" +msgstr "nie mo¿na odpaliæ aplikacji %s\n" #: ../src/dock.c:912 msgid "could not create workspace submenu for Clip menu" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÐÏÄÍÅÎÀ ÒÁÂÏÞÉÈ ÍÅÓÔ ÄÌÑ ÍÅÎÀ ðÉÒÓÁ" +msgstr "nie mo¿na stworzyæ podmenu pulpitu dla menu Spinacza" #: ../src/dock.c:975 msgid "could not create options submenu for Clip menu" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÐÏÄÍÅÎÀ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ ÍÅÎÀ ðÉÒÓÁ" +msgstr "nie mo¿na stworzyæ podmenu opcji dla menu Spinacza" #: ../src/dock.c:979 ../src/dock.c:1033 ../src/winmenu.c:383 msgid "Keep on top" -msgstr "÷ÓÅÇÄÁ ÎÁ×ÅÒÈÕ" +msgstr "Trzymaj na wierzchu" #: ../src/dock.c:985 msgid "Collapsed" -msgstr "ó×ÅÒÎÕÔÏ" +msgstr "Zwiniêty" #: ../src/dock.c:991 msgid "AutoCollapse" -msgstr "á×ÔÏó×ÏÒÁÞÉ×ÁÔØ" +msgstr "AutoZwiniêty" #: ../src/dock.c:997 msgid "AutoRaiseLower" -msgstr "" +msgstr "AutoPodnie¶Opu¶æ" #: ../src/dock.c:1003 msgid "AutoAttract Icons" -msgstr "á×ÔÏðÒÉÔÑÇÉ×ÁÔØ ÚÎÁÞËÉ" +msgstr "Automatyczne Wy³apywanie Ikon" #: ../src/dock.c:1009 msgid "Keep Attracted Icons" -msgstr "õÄÅÒÖÉ×ÁÔØ ÐÒÉÔÑÎÕÔÙÅ ÚÎÁÞËÉ" +msgstr "Trzymaj Wy³apane Ikony" #: ../src/dock.c:1039 msgid "Clip Options" -msgstr "ðÁÒÁÍÅÔÒÙ ðÉÒÓÁ" +msgstr "Opcje Spinacza" #: ../src/dock.c:1046 msgid "(Un)Select Icon" -msgstr "÷ÙÄÅÌÅÎÉÅ/óÂÒÏÓ ×ÙÄÅÌÅÎÉÑ ÚÎÁÞËÁ" +msgstr "(Od)Zaznacz Ikonê" #: ../src/dock.c:1048 msgid "(Un)Select All Icons" -msgstr "÷ÙÄÅÌÅÎÉÅ/óÂÒÏÓ ×ÙÄÅÌÅÎÉÑ ×ÓÅÈ ÚÎÁÞËÏ×" +msgstr "(Od)Zaznacz Wszystkie Ikony" #: ../src/dock.c:1051 msgid "Keep Icon(s)" -msgstr "õÄÅÒÖÉ×ÁÔØ ÚÎÁÞÏË (ÚÎÁÞËÉ)" +msgstr "Trzymaj Ikonê(y)" #: ../src/dock.c:1053 msgid "Move Icon(s) To" -msgstr "ðÅÒÅÍÅÓÔÉÔØ ÚÎÁÞÏË (ÚÎÁÞËÉ)..." +msgstr "Przenie¶ Ikonê(y) Do" #: ../src/dock.c:1058 msgid "Remove Icon(s)" -msgstr "õÄÁÌÉÔØ ÚÎÁÞÏË (ÚÎÁÞËÉ)" +msgstr "Usuñ Ikonê(y)" #: ../src/dock.c:1060 msgid "Attract Icons" -msgstr "ðÒÉÔÑÇÉ×ÁÔØ ÚÎÁÞËÉ" +msgstr "Wy³ap Ikony" #: ../src/dock.c:1063 msgid "Launch" -msgstr "úÁÐÕÓË" +msgstr "Odpal" #: ../src/dock.c:1067 msgid "(Un)Hide" -msgstr "óËÒÙÔØ/òÁÓËÒÙÔØ" +msgstr "(Nie)Ukryj" #: ../src/dock.c:1069 msgid "Settings..." -msgstr "õÓÔÁÎÏ×ËÉ..." +msgstr "Ustawienia..." #: ../src/dock.c:1454 ../src/dock.c:1468 ../src/dock.c:1482 ../src/dock.c:1492 #, c-format msgid "bad value in docked icon state info %s" -msgstr "ïÛÉÂÏÞÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÏÓÔÏÑÎÉÉ ÐÒÉÛ×ÁÒÔÏ×ÁÎÎÏÇÏ ÚÎÁÞËÁ -- %s" +msgstr "z³a warto¶æ w informacji o stanie zadokowanej ikony %s" #: ../src/dock.c:1500 #, c-format msgid "bad value in docked icon position %i,%i" -msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ × ÐÏÚÉÃÉÉ ÐÒÉÞÁÌÁ %i,%i" +msgstr "z³a warto¶æ w pozycji zadokowanej ikony %i,%i" #: ../src/dock.c:1744 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" -msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÚÎÁÞËÏ× ÐÒÉÛ×ÁÒÔÏ×ÁÎÏ. îÅ ÚÁÍÅÞÁÀ ÎÅ ×ÌÅÚÁÀÝÉÅ" +msgstr "zbyt wiele ikon trzymanych w Doku. Ignorujê te, które siê nie mieszcz±" #. icon->forced_dock = 1; #: ../src/dock.c:1976 ../src/dock.c:2105 msgid "Dock Icon" -msgstr "úÎÁÞÏË ðÒÉÞÁÌÁ" +msgstr "Ikona Doku" #: ../src/dock.c:3052 ../src/dock.c:3056 #, c-format msgid "Could not execute command \"%s\"" -msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ \"%s\"" +msgstr "Nie mo¿na wykonaæ polecenia \"%s\"" #: ../src/dockedapp.c:128 #, c-format msgid "could not find icon %s, used in a docked application" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÆÁÊÌ ÚÎÁÞËÁ (%s), ÉÓÐÏÌØÚÕÅÍÙÊ × ÐÒÉÛ×ÁÒÔÏ×ÁÎÏÍ ÐÒÉÌÏÖÅÎÉÉ" +msgstr "nie mo¿na znale¼æ ikony %s, u¿ywanej w zadokowanej aplikacji" -# #: ../src/dockedapp.c:205 #, c-format msgid "Could not open specified icon file:%s" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÕËÁÚÁÎÎÙÊ ÆÁÊÌ ÚÎÁÞËÁ:%s" +msgstr "Nie mo¿na otworzyæ okre¶lonego pliku z ikon±:%s" #: ../src/dockedapp.c:291 msgid "Start when WindowMaker is started" -msgstr "úÁÐÕÓÔÉÔØ ÐÒÉ ÓÔÁÒÔÅ WindowMaker-Á" +msgstr "Wystartowaæ podczas startu WindowMakera" -# #: ../src/dockedapp.c:298 msgid "Application path and arguments" -msgstr "ðÕÔØ Ë ÐÒÉÌÏÖÅÎÉÀ É ÁÒÇÕÍÅÎÔÙ" +msgstr "¦cie¿ka do aplikacji i argumenty" #: ../src/dockedapp.c:309 msgid "Command for files dropped with DND" -msgstr "ëÏÍÁÎÄÁ ÄÌÑ ÐÅÒÅÔÁÝÅÎÎÙÈ ÆÁÊÌÏ×" +msgstr "Polecenie dla plików upuszczonych z DND" #: ../src/dockedapp.c:321 #, c-format msgid "%d will be replaced with the file name" -msgstr "%d ÂÕÄÅÔ ÚÁÍÅÎÅÎÏ ÎÁ ÉÍÑ ÆÁÊÌÁ" +msgstr "%d zostanie zast±pione nazw± pliku" #: ../src/dockedapp.c:325 msgid "DND support was not compiled in" -msgstr "ðÏÄÄÅÒÖËÁ ÄÌÑ ÐÅÒÅÔÁÓËÉ×ÁÎÉÑ ÄÁÎÎÙÈ ÎÅ ÂÙÌÁ ÓËÏÐÍÐÉÌÉÒÏ×ÁÎÁ" +msgstr "nie wkompilowano wspomagania DND" #: ../src/dockedapp.c:331 msgid "Icon Image" -msgstr "éÚÏÂÒÁÖÅÎÉÅ ÚÎÁÞËÁ" +msgstr "Obrazek Ikony" #: ../src/dockedapp.c:343 ../src/winspector.c:1235 msgid "Browse..." -msgstr "÷ÙÂÒÁÔØ..." +msgstr "Przegl±daj..." -# #: ../src/dockedapp.c:388 msgid "Docked Application Settings" -msgstr "ðÁÒÁÍÅÔÒÙ ÐÒÉÛ×ÁÒÔÏ×ÁÎÎÏÇÏ ÐÒÉÌÏÖÅÎÉÑ" +msgstr "Ustawienia Zadokowanej Aplikacji" #: ../src/event.c:350 msgid "stack overflow: too many dead processes" -msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ: ÓÌÉÛËÏÍ ÍÎÏÇÏ ÍÅÒÔ×ÙÈ ÐÒÏÃÅÓÓÏ×" +msgstr "przepe³nienie stosu: zbyt wiele martwych procesów" #: ../src/framewin.c:485 #, c-format msgid "could not render gradient: %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÇÏÔÏ×ÉÔØ ÇÒÁÄÉÅÎÔ: %s" +msgstr "nie mo¿na pokazaæ gradientu: %s" #: ../src/framewin.c:501 ../src/framewin.c:516 ../src/framewin.c:527 #: ../src/framewin.c:534 ../src/framewin.c:541 ../src/icon.c:296 #: ../src/texture.c:578 #, c-format msgid "error rendering image:%s" -msgstr "ÏÛÉÂËÁ ÐÒÉ ÐÏÄÇÏÔÏ×ËÅ ÉÚÏÂÒÁÖÅÎÉÑ:%s" +msgstr "b³±d podczas pokazywania obrazka:%s" #: ../src/icon.c:182 ../src/wdefaults.c:411 #, c-format msgid "error loading image file \"%s\"" -msgstr "ÏÛÉÂËÁ ÚÁÇÒÕÚËÉ ÆÁÊÌÁ ËÁÒÔÉÎËÉ \"%s\"" +msgstr "b³±d podczas ³adowania pliku z obrazkiem \"%s\"" -# #: ../src/icon.c:430 ../src/icon.c:439 #, c-format msgid "could not create directory %s" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ËÁÔÁÌÏÇ %s" +msgstr "nie mo¿na utworzyæ katalogu %s" #: ../src/icon.c:706 #, c-format msgid "could not find default icon \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÎÁÞÏË ÐÏ ÕÍÏÌÞÁÎÉÀ \"%s\"" +msgstr "nie mo¿na znale¼æ domy¶lnej ikony \"%s\"" #: ../src/icon.c:712 #, c-format msgid "could not load default icon \"%s\":%s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÚÎÁÞÏË ÐÏ ÕÍÏÌÏÞÁÎÉÀ (\"%s\"): %s" +msgstr "nie mo¿na za³adowaæ domy¶lnej ikony \"%s\":%s" #: ../src/main.c:194 msgid "could not exec window manager" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÐÕÓÔÉÔØ ÄÉÓÐÅÔÞÅÒ ÏËÏÎ" +msgstr "nie mo¿na wykonaæ programu mened¿era okien" #: ../src/main.c:195 msgid "Restart failed!!!" -msgstr "ðÅÒÅÚÁÐÕÓË ÎÅ ÕÄÁÌÓÑ!!!" +msgstr "Restart siê nie powiód³!!!" #: ../src/main.c:242 #, c-format msgid "%s aborted.\n" -msgstr "%s ÐÒÅÒ×ÁÎÏ.\n" +msgstr "%s zaniechany.\n" #: ../src/main.c:253 #, c-format msgid "usage: %s [-options]\n" -msgstr "ÚÁÐÕÓË: %s [-ÐÁÒÁÍÅÔÒÙ]\n" +msgstr "sk³adnia: %s [-options]\n" #: ../src/main.c:254 msgid "options:" -msgstr "ÐÁÒÁÍÅÔÒÙ:" +msgstr "opcje:" #: ../src/main.c:256 msgid " -nocpp \t\tdisable preprocessing of configuration files" -msgstr " -nocpp \t\tÚÁÐÒÅÔÉÔØ ÐÒÅÄÏÂÒÁÂÏÔËÕ ÆÁÊÌÏ× ÎÁÓÔÒÏÊËÉ" +msgstr " -nocpp \t\twy³±cz przetwarzanie plików konfiguracyjnych" #: ../src/main.c:258 msgid " -nodock\t\tdo not open the application Dock" -msgstr " -nodock\t\tÎÅ ÏÔËÒÙ×ÁÔØ ðÒÉÞÁÌ ÐÒÉÌÏÖÅÎÉÊ" +msgstr " -nodock\t\tbez Doku z aplikacjami" -# #: ../src/main.c:259 msgid " -noclip\t\tdo not open the workspace Clip" -msgstr "-nofiend\t\tÎÅ ÏÔËÒÙ×ÁÔØ ðÉÒÓ ÄÌÑ ÐÒÉÌÏÖÅÎÉÊ" +msgstr " -noclip\t\tbez Spinacza na pulpicie" #. #. puts(_(" -locale locale locale to use")); #. #: ../src/main.c:263 msgid " -visualid visualid\tvisual id of visual to use" -msgstr " -visualid visualid\t×ÉÚÕÁÌØÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ" +msgstr " -visualid visualid\tidentyfikator u¿ywanej palety" #: ../src/main.c:264 msgid " -display host:dpy\tdisplay to use" -msgstr " -display ÈÏÓÔ:ÄÉÓÐÌÅÊ\tÉÓÐÏÌØÚÏ×ÁÔØ ÄÁÎÎÙÊ ÄÉÓÐÌÅÊ" +msgstr " -display host:dpy\tu¿ywany panel graficzny" #: ../src/main.c:265 msgid " -static\t\tdo not update or save configurations" -msgstr " -static\t\tÎÅ ÏÂÎÏ×ÌÑÔØ ÉÌÉ ÓÏÈÒÁÎÑÔØ ËÏÎÆÉÇÕÒÁÃÉÀ" +msgstr " -static\t\tnie zapisuj ani od¶wie¿aj ustawieñ" #: ../src/main.c:266 msgid " -version\t\tprint version and exit" -msgstr " -version\t\t÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ É ×ÙÈÏÄ" +msgstr " -version\t\twy¶wietl informacjê o wersji i zakoñcz" #: ../src/main.c:278 #, c-format -msgid "" -"could not find user GNUstep directory (%s).\n" -"Make sure you have installed Window Maker correctly and run wmaker.inst" -msgstr "" -"ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ËÁÔÁÌÏÇ GNUstep ÐÏÌØÚÏ×ÁÔÅÌÑ (%s).\n" -"õÂÅÄÉÔÅÓØ, ÞÔÏ WindowMaker ÕÓÔÁÎÏ×ÌÅÎ ×ÅÒÎÏ, É ÚÁÐÕÓÔÉÔÅ wmaker.inst" +msgid "could not find user GNUstep directory (%s).\nMake sure you have installed Window Maker correctly and run wmaker.inst" +msgstr "nie mo¿na znale¼æ katalogu GNUstep u¿ytkownika (%s).\nUpewnij siê ¿e Window Maker zosta³ zainstalowany poprawnie i uruchom skrypt wmaker.inst" #: ../src/main.c:297 #, c-format msgid "%s:could not execute initialization script" -msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ×ÙÐÏÌÎÉÔØ ÉÎÉÃÉÁÌÉÚÁÃÉÏÎÎÙÊ ÓÃÅÎÁÒÉÊ" +msgstr "#s:nie mo¿na wykonaæ skryptu inicjalizacji" #: ../src/main.c:314 #, c-format msgid "%s:could not execute exit script" -msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ×ÙÐÏÌÎÉÔØ ÚÁ×ÅÒÛÁÀÝÉÊ ÓÃÅÎÁÒÉÊ" +msgstr "%s:nie mo¿na wykonaæ skryptu wyj¶ciowego" #: ../src/main.c:368 ../src/main.c:375 ../src/main.c:382 ../src/main.c:396 #, c-format msgid "too few arguments for %s" -msgstr "ÓÌÉÛËÏÍ ÍÁÌÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ %s" +msgstr "zbyt ma³o argumentów dla %s" #: ../src/main.c:386 #, c-format msgid "bad value for visualid: \"%s\"" -msgstr "ÏÛÉÂÏÞÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ visualid: \"%s\"" +msgstr "z³a warto¶æ id palety: \"%s\"" #: ../src/main.c:444 msgid "X server does not support locale" -msgstr "X ÓÅÒ×ÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÌÏËÁÌÉÚÁÃÉÀ" +msgstr "Serwer X nie wspiera locale" #: ../src/main.c:447 msgid "cannot set locale modifiers" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÐÁÒÁÍÅÔÒÙ ÌÏËÁÌÉÚÁÃÉÉ" +msgstr "nie mo¿na ustawiæ modyfikatorów locale" #: ../src/main.c:464 #, c-format msgid "could not open display \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÄÉÓÐÌÅÊ \"%s\"" +msgstr "nie mo¿na otworzyæ panelu graficznego \"%s\"" #: ../src/menu.c:285 msgid "wrealloc() failed while trying to add menu item" -msgstr "ÏÛÉÂËÁ × ×ÙÐÏÌÎÅÎÉÉ wrealloc() ÐÒÉ ÐÏÐÙÔËÅ ÄÏÂÁ×ÉÔØ ÜÌÅÍÅÎÔ ÍÅÎÀ" +msgstr "wykonanie wrealloc() nie powiod³o siê podczas próby dodania pozycji menu" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÚÎÁÞÅÎÉÑ ÄÌÑ %s ÄÌÑ cpp" +msgstr "nie mo¿na zdefiniowaæ warto¶ci %s dla cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ ÄÌÑ UID %i" +msgstr "nie mo¿na znale¼æ has³a dla UID %i" #: ../src/misc.c:125 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" -msgstr "÷ÁÛÁ ÍÁÛÉÎÁ ÎÁÓÔÒÏÅÎÁ ÎÅ×ÅÒÎÏ. HOSTNAME ÕÓÔÁÎÏ×ÌÅÎÏ × %s" +msgstr "twój komputer jest ¼le skonfigurowany. HOSTNAME jest ustawiony na %s" #: ../src/misc.c:131 #, c-format msgid "your machine is misconfigured. HOST is set to %s" -msgstr "÷ÁÛÁ ÍÁÛÉÎÁ ÎÁÓÔÒÏÅÎÁ ÎÅ×ÅÒÎÏ. HOST ÕÓÔÁÎÏ×ÌÅÎ × %s" +msgstr "twój komputer jest ¼le skonfigurowany. HOST jest ustawiony na %s" #: ../src/misc.c:773 msgid "selection timed-out" -msgstr "×ÙÄÅÌÅÎÉÅ ÕÓÔÁÒÅÌÏ" +msgstr "zaznaczenie straci³o wa¿no¶æ" #: ../src/misc.c:788 msgid "Program Arguments" -msgstr "áÒÇÕÍÅÎÔÙ ðÒÏÇÒÁÍÍÙ" +msgstr "Argumenty Programu" #: ../src/misc.c:789 msgid "Enter command arguments:" -msgstr "÷×ÅÄÉÔÅ ÁÒÇÕÍÅÎÔÙ ËÏÍÁÎÄÙ:" +msgstr "Wprowad¼ argumenty programu:" #: ../src/misc.c:884 msgid "unable to get dropped data from DND drop" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÄÁÎÎÙÅ ÏÔ DND drop" +msgstr "nie mo¿na wzi±æ upuszczonych danych protoko³u DND" #: ../src/misc.c:892 msgid "error getting dropped data from DND drop" -msgstr "ÏÛÉÂËÁ ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÄÁÎÎÙÈ ÏÔ DND drop" +msgstr "b³±d podczas brania upuszczonych danych protoko³u DND" #: ../src/misc.c:898 msgid "out of memory while getting data from DND drop" -msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÄÁÎÎÙÈ ÏÔ DND drop" +msgstr "wyczerpano pamiêæ podczas brania danych protoko³u DND" #: ../src/misc.c:942 ../src/misc.c:1062 #, c-format msgid "out of memory during expansion of \"%s\"" -msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%s\"" +msgstr "wyczerpano pamiêæ podczas rozwijania \"%s\"" #: ../src/misc.c:996 msgid "out of memory during expansion of \"%w\"" -msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%w\"" +msgstr "wyczerpano pamiêæ podczas rozwijania \"%w\"" #: ../src/misc.c:1015 msgid "out of memory during expansion of \"%a\"" -msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%a\"" +msgstr "wyczerpano pamiêæ podczas rozwijania \"%a\"" #: ../src/misc.c:1041 #, c-format msgid "out of memory during expansion of \"%d\"" -msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%d\"" +msgstr "wyczerpano pamiêæ podczas rozwijania \"%d\"" #: ../src/misc.c:1055 msgid "selection not available" -msgstr "ÎÅÔ ×ÙÄÅÌÅÎÉÑ" +msgstr "zaznaczenie niedostêpne" #: ../src/misc.c:1127 ../src/misc.c:1133 #, c-format msgid "bad window name value in %s state info" -msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÉÍÅÎÉ ÏËÎÁ × ÉÎÆÏÒÍÁÃÉÉ Ï ÓÏÓÔÏÑÎÉÉ ðÒÉÞÁÌÁ ÄÌÑ %s" +msgstr "z³a warto¶æ nazwy okna w polu %s informacji stanu" #: ../src/misc.c:1387 msgid "could not send message to background image helper" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÓÌÁÔØ ÓÏÏÂÝÅÎÉÅ ÐÒÉÌÏÖÅÎÉÀ ÆÏÎÏ×ÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ" +msgstr "nie mo¿na wys³aæ komunikatu do programu pomocniczego zajmuj±cego siê t³em pulpitu" #: ../src/pixmap.c:235 #, c-format msgid "could not load mask bitmap file \"%s\". Won't use mask" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÆÁÊÌ ÍÁÓËÉ \"%s\". íÁÓËÁ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÁ." +msgstr "nie mo¿na za³adowaæ bitmapy z mask± \"%s\". Maska nie zostanie u¿yta" #: ../src/proplist.c:180 msgid "unterminated string" -msgstr "ÎÅÚÁ×ÅÒÛÅÎÎÁÑ ÓÔÒÏËÁ" +msgstr "nie zakoñczony ³añcuch" #: ../src/proplist.c:247 msgid "unterminated array" -msgstr "ÎÅÚÁ×ÅÒÛÅÎÎÙÊ ÍÁÓÓÉ×" +msgstr "nie zakoñczona tablica" #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" -msgstr "× ÍÁÓÓÉ×Å ÐÒÏÐÕÝÅÎÁ ',' ÉÌÉ ÎÅÚÁ×ÅÒÛÅÎÎÙÊ ÍÁÓÓÉ×" +msgstr "brakuj±cy, w tablicy lub nie zakoñczonej tablicy" -# #: ../src/proplist.c:267 msgid "could not get array element" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÜÌÅÍÅÎÔ ÍÁÓÓÉ×Á" +msgstr "nie mo¿na wzi±æ elementu tablicy" #: ../src/proplist.c:297 msgid "unterminated dictionary" -msgstr "ÎÅÚÁ×ÅÒÛÅÎÎÙÊ ÓÌÏ×ÁÒØ" +msgstr "nie zakoñczony s³ownik" #: ../src/proplist.c:315 msgid "missing dictionary key" -msgstr "× ÜÌÅÍÅÎÔÅ ÓÌÏ×ÁÒÑ ÐÒÏÐÕÝÅÎ ËÌÀÞ" +msgstr "brakuj±cy klucz s³ownika" #: ../src/proplist.c:317 msgid "missing dictionary entry key or unterminated dictionary" -msgstr "× ÜÌÅÍÅÎÔÅ ÓÌÏ×ÁÒÑ ÐÒÏÐÕÝÅÎ ËÌÀÞ ÉÌÉ ÓÌÏ×ÁÒØ ÎÅÚÁ×ÅÒÛÅÎ" +msgstr "brakuj±cy wpis s³ownika lub nie zakoñczony s³ownik" #: ../src/proplist.c:323 msgid "error parsing dictionary key" -msgstr "ÏÛÉÂËÁ ÒÁÚÂÏÒÁ ËÌÀÞÁ ÜÌÅÍÅÎÔÁ ÓÌÏ×ÁÒÑ" +msgstr "b³±d podczas przetwarzania klucza s³ownika" #: ../src/proplist.c:332 msgid "missing = in dictionary entry" -msgstr "× ÜÌÅÍÅÎÔÅ ÓÌÏ×ÁÒÑ ÐÒÏÐÕÝÅÎ '='" +msgstr "brakuj±cy znak = we wpisie s³ownika" #: ../src/proplist.c:351 msgid "missing ; in dictionary entry" -msgstr "× ÜÌÅÍÅÎÔÅ ÓÌÏ×ÁÒÑ ÐÒÏÐÕÝÅÎÁ ';'" +msgstr "brakuj±cy znak ; we wpisie s³ownika" #: ../src/proplist.c:432 msgid "was expecting a string, dictionary, data or array." -msgstr "ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÁ, ÓÌÏ×ÁÒØ, ÄÁÎÎÙÅ ÉÌÉ ÍÁÓÓÉ×." +msgstr "oczekiwano ³añcucha, s³ownika, danych lub tablicy." #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." -msgstr "÷ÎÕÔÒÉ ÆÁÊÌÏ× ÄÏÍÅÎÏ×, ÐÒÉÎÁÄÌÅÖÁÝÉÈ WindowMaker, ËÏÍÍÅÎÔÁÒÉÉ ÎÅ " -"ÄÏÐÕÓËÁÀÔÓÑ." +msgstr "Komentarze nie s± dozwolone we w³asnych plikach domenowych WindowMakera." -# #: ../src/proplist.c:453 #, c-format msgid "could not open domain file %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÄÏÍÅÎÁ %s" +msgstr "nie mo¿na otworzyæ pliku domeny %s" #: ../src/proplist.c:466 msgid "extra data after end of file" -msgstr "ËÁËÉÅ-ÔÏ ÄÁÎÎÙÅ ÐÏÓÌÅ ËÏÎÃÁ ÆÁÊÌÁ" +msgstr "nadmiarowe dane poza koñcem pliku" #: ../src/resources.c:71 #, c-format msgid "The following character sets are missing in %s:" -msgstr "óÌÅÄÕÀÝÉÅ ÎÁÂÏÒÙ ÓÉÍ×ÏÌÏ× ÏÔÓÕÔÓÔ×ÕÀÔ × %s:" +msgstr "Brakuje nastêpuj±cych zbiorów znaków w %s:" #: ../src/resources.c:76 #, c-format msgid "The string \"%s\" will be used in place" -msgstr "óÔÒÏËÁ \"%s\" ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÁ ×ÍÅÓÔÏ" +msgstr "£añcuch \"%s\" zostanie u¿yty w miejscu" #: ../src/resources.c:78 msgid "of any characters from those sets." -msgstr "ÌÀÂÙÈ ÓÉÍ×ÏÌÏ× ÉÚ ÜÔÉÈ ÎÁÂÏÒÏ×." +msgstr "dowolnego znaku z tych zbiorów." #: ../src/resources.c:81 #, c-format msgid "could not create font set %s. Trying fixed" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÛÒÉÆÔ %s. éÓÐÏÌØÚÕÅÔÓÑ fixed" +msgstr "nie mo¿na stworzyæ zbioru czcionek %s. Próbujê fixed" #: ../src/resources.c:98 #, c-format msgid "could not load font %s. Trying fixed" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÛÒÉÆÔ %s. éÓÐÏÌØÚÕÅÔÓÑ fixed" +msgstr "nie mo¿na za³adowaæ czcionki %s. Próbujê fixed" #: ../src/resources.c:136 #, c-format msgid "could not parse color \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ Ã×ÅÔ \"%s\"" +msgstr "nie mo¿na przetworzyæ koloru \"%s\"" #: ../src/resources.c:140 #, c-format msgid "could not allocate color \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÔØ Ã×ÅÔ \"%s\"" +msgstr "nie mo¿na zaalokowaæ koloru \"%s\"" #: ../src/rootmenu.c:185 ../src/rootmenu.c:187 msgid "Exit" -msgstr "÷ÙÈÏÄ" +msgstr "Zakoñcz" #: ../src/rootmenu.c:186 msgid "Exit window manager?" -msgstr "÷ÙÊÔÉ ÉÚ ÄÉÓÐÅÔÞÅÒÁ ÏËÏÎ?" +msgstr "Czy opu¶ciæ mened¿era okien?" #: ../src/rootmenu.c:222 msgid "Close X session" -msgstr "úÁ×ÅÒÛÉÔØ ÓÅÁÎÓ ÒÁÂÏÔÙ" +msgstr "Zamknij sesjê X" #: ../src/rootmenu.c:223 -msgid "" -"Close Window System session?\n" -"Kill might close applications with unsaved data." -msgstr "" -"úÁËÒÙÔØ ÓÅÁÎÓ ïËÏÎÎÏÊ óÉÓÔÅÍÙ?\n" -"üÔÏ ÍÏÖÅÔ Á×ÁÒÉÊÎÏ ÚÁ×ÅÒÛÉÔØ ÐÒÉÌÏÖÅÎÉÑ Ó ÎÅÓÏÈÒÁÎÅÎÎÏÊ ÉÎÆÏÒÍÁÃÉÅÊ." +msgid "Close Window System session?\nKill might close applications with unsaved data." +msgstr "Czy zamkn±æ sesjê X Window System?\nMo¿liwe ¿e niektóre dzia³aj±ce teraz programy nie zapisz± swoich danych." #. #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); @@ -776,203 +748,191 @@ msgstr "" #. #: ../src/rootmenu.c:225 ../src/winmenu.c:481 msgid "Close" -msgstr "úÁËÒÙÔØ" +msgstr "Zamknij" #: ../src/rootmenu.c:236 msgid "Kill X session" -msgstr "á×ÁÒÉÊÎÏ ÚÁ×ÅÒÛÉÔØ ÓÅÁÎÓ ÒÁÂÏÔÙ" +msgstr "Zamknij sesjê X Window" #: ../src/rootmenu.c:237 -msgid "" -"Kill Window System session?\n" -"(all applications will be closed)" -msgstr "" -"úÁËÒÙÔØ ÓÅÁÎÓ ïËÏÎÎÏÊ óÉÓÔÅÍÙ?\n" -"(×ÓÅ ÐÒÉÌÏÖÅÎÉÑ ÂÕÄÕÔ ÚÁ×ÅÒÛÅÎÙ)" +msgid "Kill Window System session?\n(all applications will be closed)" +msgstr "Czy zamkn±æ sesjê X Window?\n?(wszystkie programy zostan± zakoñczone)" #: ../src/rootmenu.c:463 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" -msgstr "%s -- ÎÅ×ÅÒÎÏÅ ÕËÁÚÁÎÉÅ ËÏÍÂÉÎÁÃÉÉ ËÌÁ×ÉÛ \"%s\" ÄÌÑ ÚÁÐÉÓÉ %s" +msgstr "%s:niew³a¶ciwe okre¶lenie skrótu klawiaturowego \"%s\" dla pozycji %s" #: ../src/rootmenu.c:471 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" -msgstr "%s -- ÎÅ×ÅÒÎÁÑ ËÌÁ×ÉÛÁ × ËÏÍÂÉÎÁÃÉÉ \"%s\" ÄÌÑ ÚÁÐÉÓÉ %s" +msgstr "%s:niew³a¶ciwy klawisz w skrócie \"%s\" dla pozycji %s" #: ../src/rootmenu.c:524 #, c-format msgid "%s: unmatched '\"' in menu file" -msgstr "%s -- ÎÅÐÁÒÎÁÑ '\"' × ÆÁÊÌÅ ÍÅÎÀ" +msgstr "%s: nie zakoñczone '\"' w pliku menu" #: ../src/rootmenu.c:574 #, c-format msgid "%s: missing command" -msgstr "%s -- ÏÔÓÕÔÓÔ×ÕÀÝÁÑ ËÏÍÁÎÄÁ" +msgstr "%s: brakuj±ce polecenie" #: ../src/rootmenu.c:607 #, c-format msgid "invalid OPEN_MENU specification: %s" -msgstr "ÎÅ×ÅÒÎÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ OPEN_MENU: %s" +msgstr "niew³a¶ciwe okre¶lenie OPEN_MENU: %s" #: ../src/rootmenu.c:680 #, c-format msgid "%s:could not stat menu" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÍÅÎÀ" +msgstr "%s:niezrozumia³e menu" #: ../src/rootmenu.c:688 #, c-format msgid "%s:could not stat menu:%s" -msgstr "%s:ÎÕ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÍÅÎÀ:%s" +msgstr "%s:niezrozumia³e menu:%s" #: ../src/rootmenu.c:706 #, c-format msgid "too many parameters in OPEN_MENU: %s" -msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ OPEN_MENU: %s" +msgstr "zbyt wiele parametrów w OPEN_MENU: %s" #: ../src/rootmenu.c:742 -msgid "" -"There are more than one WORKSPACE_MENU commands in the applications menu. " -"Only one is allowed." -msgstr "" -"÷ ÇÌÁ×ÎÏÍ ÍÅÎÀ ÐÒÉÓÕÔÓÔ×ÕÅÔ ÂÏÌØÛÅ ÏÄÎÏÊ ËÏÍÁÎÄÙ WORKSPACE_MENU. äÏÐÕÓÔÉÍÁ " -"ÔÏÌØËÏ ÏÄÎÁ" +msgid "There are more than one WORKSPACE_MENU commands in the applications menu. Only one is allowed." +msgstr "Jest wiêcej ni¿ jedno polecenie WORKSPACE_MENU w menu aplikacji. Tylko jedno jest dozwolone." #: ../src/rootmenu.c:771 ../src/rootmenu.c:789 #, c-format msgid "%s:missing parameter for menu command \"%s\"" -msgstr "%s:ÎÅÄÏÓÔÁÀÝÉÊ ÐÁÒÁÍÅÔÒ ÄÌÑ ËÏÍÁÎÄÙ ÍÅÎÀ \"%s\"" +msgstr "%s:brakuj±cy parametr w poleceniu menu \"%s\"" #: ../src/rootmenu.c:852 #, c-format msgid "%s:unknown command \"%s\" in menu config." -msgstr "%s:ÎÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ \"%s\" × ÎÁÓÔÒÏÊËÅ ÍÅÎÀ" +msgstr "%s:nieznane polecenie \"%s\" w ustawieniach menu." #: ../src/rootmenu.c:860 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ËÏÍÂÉÎÁÃÉÀ ËÌÁ×ÉÛ ÄÌÑ ËÏÍÁÎÄÙ \"%s\"" +msgstr "%s:nie mo¿na dodaæ skrótu do pozycji \"%s\"" #: ../src/rootmenu.c:997 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" -msgstr "%s:ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÓÔÒÏËÉ × ÎÁÓÔÒÏÊËÅ ÍÅÎÀ: %s" +msgstr "%s:przekroczono maksymaln± dopuszczaln± d³ugo¶æ linii w ustawieniach menu: %s" #: ../src/rootmenu.c:1019 ../src/rootmenu.c:1111 ../src/rootmenu.c:1212 #, c-format msgid "%s:missing command in menu config: %s" -msgstr "%s:ÏÔÓÕÔÓÔ×ÕÅÔ ËÏÍÁÎÄÁ × ÎÁÓÔÒÏÊËÅ ÍÅÎÀ: %s" +msgstr "%s:brakujêce polecenie e ustawieniach menu: %s" #: ../src/rootmenu.c:1049 #, c-format msgid "%s:syntax error in menu file:END declaration missing" -msgstr "%s:ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ÆÁÊÌÅ ÍÅÎÀ: ÏÔÓÕÔÓÔ×ÕÅÔ END" +msgstr "%s:b³±d sk³adniowy w pliku menu:brak deklaracji END" #: ../src/rootmenu.c:1078 ../src/rootmenu.c:1177 msgid "could not make arguments for menu file preprocessor" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÓÔÁ×ÉÔØ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ÐÒÅÐÒÏÃÅÓÓÏÒÁ ÆÁÊÌÁ ÍÅÎÀ" +msgstr "nie mo¿na stworzyæ argumentów do programu przetwarzaj±cego menu" #: ../src/rootmenu.c:1084 ../src/rootmenu.c:1184 #, c-format msgid "%s:could not open/preprocess menu file" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ/ÐÒÅÄÏÂÒÁÂÏÔÁÔØ ÆÁÊÌ ÍÅÎÀ" +msgstr "%s:nie mo¿na otworzyæ/przetworzyæ pliku menu" #: ../src/rootmenu.c:1096 ../src/rootmenu.c:1197 #, c-format msgid "%s:could not open menu file" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÍÅÎÀ" +msgstr "%s:nie mo¿na otworzyæ pliku menu" #: ../src/rootmenu.c:1123 #, c-format msgid "%s:invalid menu file. MENU command is missing" -msgstr "%s: ÆÁÊÌ ÍÅÎÀ ÎÅ×ÅÒÅÎ. ïÔÓÔÕÔÓ×ÕÅÔ ËÏÍÍÁÎÄÁ MENU" +msgstr "%s:niew³a¶ciwy plik menu. Brak polecenia MENU" #: ../src/rootmenu.c:1132 msgid "error reading preprocessed menu data" -msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ ÏÂÒÁÂÏÔÁÎÎÙÈ ÄÁÎÎÙÈ ÍÅÎÀ" +msgstr "b³±d podczas czytania przetworzonego menu" #: ../src/rootmenu.c:1224 #, c-format msgid "%s:no title given for the root menu" -msgstr "%s: ÎÅÔ ÚÁÇÏÌÏ×ËÁ ÄÌÑ ËÏÒÎÅ×ÏÇÏ ÍÅÎÀ" +msgstr "%s:g³ówne menu nie ma tytu³u" #: ../src/rootmenu.c:1307 ../src/rootmenu.c:1374 ../src/rootmenu.c:1418 #, c-format msgid "out of memory while constructing directory menu %s" -msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ÐÒÉ ÓÏÚÄÁÎÉÉ ËÁÔÁÌÏÇÁ ÍÅÎÀ %s" +msgstr "wyczerpano pamiêæ podczas tworzenia menu katalogu %s" #: ../src/rootmenu.c:1317 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" -msgstr "%s:ÎÅÔ ÉÎÆÏÒÍÁÃÉÉ Ï ÆÁÊÌÅ \"%s\" × ËÁÔÁÌÏÇÅ ÍÅÎÀ" +msgstr "%s:nie mo¿na znale¼æ pliku \"%s\" w katalogu menu" #: ../src/rootmenu.c:1472 msgid "Commands" -msgstr "ëÏÍÁÎÄÙ" +msgstr "Polecenia" #: ../src/rootmenu.c:1475 msgid "Restart" -msgstr "ðÅÒÅÚÁÐÕÓË" +msgstr "Restart" #: ../src/rootmenu.c:1476 msgid "Exit..." -msgstr "÷ÙÈÏÄ..." +msgstr "Koniec..." #: ../src/rootmenu.c:1549 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÆÁÊÌ ÍÅÎÀ \"%s\", ÕËÁÚÁÎÎÙÊ × WMRootMenu" +msgstr "nie mo¿na znale¼æ pliku menu \"%s\" okre¶lonego w WMRootMenu" #: ../src/rootmenu.c:1556 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÍÅÎÀ \"%s\", ÕËÁÚÁÎÎÏÅ × WMRootMenu" +msgstr "brak dostêpu do menu \"%s\" okre¶lonego w WMRootMenu" #: ../src/rootmenu.c:1567 #, c-format -msgid "" -"using default menu file \"%s\" as the menu referenced in WMRootMenu could " -"not be found " -msgstr "" -"×ÍÅÓÔÏ ÍÅÎÀ, ÕËÁÚÁÎÎÏÇÏ × ÆÁÊÌÅ WMRootMenu, ÉÓÐÏÌØÚÕÅÔÓÑ ÍÅÎÀ ÐÏ ÕÍÏÌÞÁÎÉÀ " -"(%s) " +msgid "using default menu file \"%s\" as the menu referenced in WMRootMenu could not be found " +msgstr "u¿yto domy¶lnego pliku menu \"%s\" poniewa¿ nie znaleziono pliku okre¶lonego w WMRootMenu " #: ../src/rootmenu.c:1590 ../src/rootmenu.c:1666 #, c-format msgid "%s:format error in root menu configuration \"%s\"" -msgstr "%s:ÏÛÉÂËÁ ÆÏÒÍÁÔÁ × ÎÁÓÔÒÏÊËÅ ËÏÒÎÅ×ÏÇÏ ÍÅÎÀ \"%s\"" +msgstr "%s:b³±d formatowania w ustawieniach menu g³ównego \"%s\"" #: ../src/screen.c:423 msgid "could not load logo image for panels" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÚÁÓÔÁ×ËÕ ÄÌÑ ÐÁÎÅÌÅÊ" +msgstr "nie mo¿na za³adowaæ obrazka z logo dla paneli" #: ../src/screen.c:426 #, c-format msgid "error making logo image for panel:%s" -msgstr "ÏÛÉÂËÁ ÐÒÉ ÐÏÄÇÏÔÏ×ËÅ ÚÁÓÔÁ×ËÉ ÄÌÑ ÐÁÎÅÌÉ: %s" +msgstr "b³±d podczas tworzenia obrazka logo dla panelu:%s" #: ../src/screen.c:612 #, c-format msgid "could not initialize graphics library context: %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ËÏÎÔÅËÓÔ ÇÒÁÆÉÞÅÓËÏÊ ÂÉÂÌÉÏÔÅËÉ: %s" +msgstr "nie mo¿na zainicjalizowaæ graficznego kontekstu biblioteki: %s" #: ../src/screen.c:644 msgid "could not do initialization of WINGs widget set" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÂÉÂÌÉÏÔÅËÕ WINGs" +msgstr "nie mo¿na zainicjalizowaæ biblioteki WINGs" #: ../src/screen.c:961 #, c-format msgid "could not save session state in %s" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÈÒÁÎÉÔØ ÓÏÓÔÏÑÎÉÑ ÓÅÁÎÓÁ × %s" +msgstr "nie mo¿na zapisaæ stanu sesji w %s" #: ../src/session.c:138 ../src/wdefaults.c:559 ../src/winspector.c:347 #, c-format msgid "can't convert \"%s\" to boolean" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÂÕÌÅ×ÓËÕÀ ×ÅÌÉÞÉÎÕ" +msgstr "nie mo¿na zamieniæ \"%s\" na warto¶æ logiczn±" #: ../src/session.c:750 ../src/session.c:844 msgid "end of memory while saving session state" -msgstr "ÎÅ È×ÁÔÉÌÏ ÐÁÍÑÔÉ ÐÒÉ ÓÏÈÒÁÎÅÎÉÉ ÓÏÓÔÏÑÎÉÑ ÓÅÁÎÓÁ" +msgstr "zabrak³o pamiêci podczas zapisywania stanu sesji" #. This is not fatal but can mean the session manager exited. #. * If the session manager exited normally we would get a @@ -982,130 +942,117 @@ msgstr " #. #: ../src/session.c:978 msgid "connection to the session manager was lost" -msgstr "ÐÏÔÅÒÑÎÏ ÓÏÅÄÉÎÅÎÉÅ Ó ÄÉÓÐÅÔÞÅÒÏÍ ÓÅÓÓÉÊ" +msgstr "stracono po³±czenie z zarz±dc± sesji" #: ../src/stacking.c:72 msgid "could not get window list!!" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÏËÏÎ!!!" +msgstr "nie mo¿na wzi±æ listy okien!!" #: ../src/startup.c:194 #, c-format msgid "internal X error: %s\n" -msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ X ÓÅÒ×ÅÒÁ: %s\n" +msgstr "wewnêtrzny b³±d X: %s\n" #: ../src/startup.c:257 #, c-format msgid "got signal %i (%s) - restarting\n" -msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i (%s) -- ÐÅÒÅÚÁÐÕÓË\n" +msgstr "z³apano wygna³ %i (%s) - ponowne uruchamianie\n" #: ../src/startup.c:259 #, c-format msgid "got signal %i - restarting\n" -msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i - ÐÅÒÅÚÁÐÕÓË\n" +msgstr "z³apano sygna³ %i - ponowne uruchamianie\n" #: ../src/startup.c:273 #, c-format msgid "%s: Received signal SIGTERM. Exiting..." -msgstr ":%s: ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ SIGTERM. úÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ..." +msgstr "%s: Otrzymano sygna³ SIGTERM. Koñczenie..." #: ../src/startup.c:285 #, c-format msgid "got signal %i (%s)\n" -msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i (%s)\n" +msgstr "z³apano sygna³ %i (%s)\n" #: ../src/startup.c:287 #, c-format msgid "got signal %i\n" -msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i\n" +msgstr "z³apano sygna³ %i\n" #: ../src/startup.c:293 -msgid "" -"crashed while trying to do some post-crash cleanup. Aborting immediatelly." -msgstr "" -"ËÒÉÔÉÞÅÓËÁÑ ÏÛÉÂËÁ ×Ï ×ÒÅÍÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ ÐÏÓÌÅ ÓÅÒØÅÚÎÏÊ ÏÛÉÂËÉ. " -"îåíåäìåîîïå ÚÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ." +msgid "crashed while trying to do some post-crash cleanup. Aborting immediatelly." +msgstr "za³amanie podczas próby uporz±dkowania po za³amaniu. Wyj¶cie awaryjne." #: ../src/startup.c:304 -msgid "" -"a fatal error has occured, probably due to a bug. Please fill the included " -"BUGFORM and report it." -msgstr "" -"ÉÍÅÅÔ ÍÅÓÔÏ ÂÙÔØ ËÒÉÔÉÞÅÓËÁÑ ÏÛÉÂËÁ, ×ÏÚÍÏÖÎÏ, ËÁË ÒÅÚÕÌØÔÁÔ ÏÛÉÂËÅ × " -"ÐÒÏÇÒÁÍÍÅ. ðÏÖÁÌÕÊÓÔÁ, ÚÁÐÏÌÎÉÔÅ ÆÁÊÌ BUGFORM Ï ÐÒÉÛÌÉÔÅ ÅÇÏ." +msgid "a fatal error has occured, probably due to a bug. Please fill the included BUGFORM and report it." +msgstr "wyst±pi³ powa¿ny b³±d, prawdopodobnie pluskwa. Prosimy o wype³nienie formularza BUGFORM i wys³anie go do nas." #. restart another window manager so that the X session doesn't #. * go to space #: ../src/startup.c:311 msgid "trying to start alternative window manager..." -msgstr "ÐÏÐÙÔËÁ ÚÁÐÕÓËÁ ÁÌØÔÅÒÎÁÔÉ×ÎÏÇÏ ÄÉÓÐÅÔÞÅÒÁ ÏËÏÎ..." +msgstr "próbujê wystartowaæ alternatywny mened¿er okien..." #: ../src/startup.c:710 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" -msgstr "" -"ÒÁÚÍÅÒ ÚÎÁÞËÁ ÕÓÔÁÎÏ×ÌÅÎ × %i, ÎÏ ÜÔÏ ÓÌÉÛËÏÍ ÍÁÌÏ. éÓÐÏÌØÚÕÅÔÓÑ 16.\n" +msgstr "rozmiar ikony jest ustawiony na %i, lecz jest zbyt ma³y. U¿yto 16\n" #: ../src/startup.c:754 msgid "it seems that there already is a window manager running" -msgstr "ðÏÈÏÖÅ, ÞÔÏ ÁËÔÉ×ÅÎ ÄÒÕÇÏÊ ÄÉÓÐÅÔÞÅÒ ÏËÏÎ" +msgstr "wygl±da na to ¿e ju¿ dzia³a jaki¶ mened¿er okien" #: ../src/startup.c:760 #, c-format msgid "could not manage screen %i" -msgstr "" +msgstr "nie mogê uzyskaæ kontroli nad ekranem %i" #: ../src/startup.c:820 msgid "could not manage any screen" -msgstr "" +msgstr "nie mogê uzyskaæ kontroli nad ekranem" #: ../src/switchmenu.c:114 msgid "Windows" -msgstr "óÐÉÓÏË ÏËÏÎ" +msgstr "Okna" #: ../src/texture.c:274 ../src/texture.c:318 #, c-format msgid "image file \"%s\" used as texture could not be found." -msgstr "ÆÁÊÌ ÔÅËÓÔÕÒÙ \"%s\" ÎÅ ÎÁÊÄÅÎ." +msgstr "nie mo¿na znale¼æ pliku z obrazkiem \"%s\" u¿ywanym jako tekstura." #: ../src/texture.c:280 ../src/texture.c:324 #, c-format msgid "could not load texture pixmap \"%s\":%s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÒÁÓÔÒÏ×ÙÊ ÒÉÓÕÎÏË Ó ÔÅËÓÔÕÒÏÊ \"%s\": %s" +msgstr "nie mo¿na za³adowaæ pixmapy z tekstur± \"%s\":%s" #: ../src/texture.c:463 ../src/texture.c:574 #, c-format msgid "could not render texture: %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÇÏÔÏ×ÉÔØ ÔÅËÓÔÕÒÕ: %s" +msgstr "nie mo¿na pokazaæ tekstury: %s" #: ../src/wdefaults.c:405 #, c-format msgid "could not find icon file \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÎÁÞÏË \"%s\"" +msgstr "nie mo¿na znale¼æ pliku z ikon± \"%s\"" #: ../src/window.c:2282 ../src/window.c:2414 -msgid "" -"the NumLock, ScrollLock or similar key seems to be turned on.\n" -"Turn it off or some mouse actions and keyboard shortcuts will not work." -msgstr "" -"ðÏÈÏÖÅ, ÞÔÏ NumLock, ScrollLock ÉÌÉ ÁÎÁÌÏÇÉÞÎÁÑ ËÌÁ×ÉÛÁ ×ËÌÀÞÅÎÁ.\n" -"÷ÙËÌÀÞÉÔÅ ÅÅ ÉÌÉ ÎÅËÏÔÏÒÙÅ ÏÐÅÒÁÃÉÉ ÍÙÛØÀ ÉÌÉ ËÏÍÂÉÎÁÃÉÉ ËÌÁ×ÉÛ ÎÅ ÂÕÄÕÔ " -"ÒÁÂÏÔÁÔØ." +msgid "the NumLock, ScrollLock or similar key seems to be turned on.\nTurn it off or some mouse actions and keyboard shortcuts will not work." +msgstr "wygl±da na to, ¿e klawisze NumLock, ScrollLock lub podobne s± w³±czone.\nWy³±cz je lub niektóre akcje myszki i klawiatury nie zadzia³aj±." #: ../src/winmenu.c:249 ../src/winmenu.c:257 msgid "Set Shortcut" -msgstr "õÓÔÁÎÏ×ÉÔØ ËÏÍÂÉÎÁÃÉÀ ËÌÁ×ÉÛ" +msgstr "Ustaw Skrót" #: ../src/winmenu.c:333 ../src/winmenu.c:379 msgid "could not create submenu for window menu" -msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÐÏÄÍÅÎÀ ÄÌÑ ÍÅÎÀ ÏËÎÁ" +msgstr "nie mo¿na utworzyæ podmenu dla menu okien" #: ../src/winmenu.c:388 msgid "Keep at bottom" -msgstr "÷ÓÅÇÄÁ ×ÎÉÚÕ" +msgstr "Trzymaj na dole" #: ../src/winmenu.c:393 ../src/winspector.c:1141 msgid "Omnipresent" -msgstr "ðÒÉÓÕÔÓÔ×ÕÅÔ ×ÅÚÄÅ" +msgstr "Zawsze widoczny" #. #. * Warning: If you make some change that affects the order of the @@ -1114,247 +1061,231 @@ msgstr " #. #: ../src/winmenu.c:416 ../src/winmenu.c:551 msgid "Maximize" -msgstr "òÁÚ×ÅÒÎÕÔØ" +msgstr "Powiêksz" #: ../src/winmenu.c:424 ../src/winmenu.c:537 msgid "Miniaturize" -msgstr "ó×ÅÒÎÕÔØ" +msgstr "Pomniejsz" #: ../src/winmenu.c:433 ../src/winmenu.c:565 msgid "Shade" -msgstr "÷ÔÑÎÕÔØ" +msgstr "Zwiñ" #: ../src/winmenu.c:449 msgid "Resize/Move" -msgstr "éÚÍÅÎÉÔØ ÒÁÚÍÅÒ/ÐÅÒÅÍÅÓÔÉÔØ" +msgstr "Zmieñ Rozmiar/Pozycjê" #: ../src/winmenu.c:457 msgid "Select" -msgstr "÷ÙÄÅÌÉÔØ" +msgstr "Zaznacz" #: ../src/winmenu.c:465 msgid "Move To" -msgstr "ðÅÒÅÍÅÓÔÉÔØ..." +msgstr "Przenie¶ Do" #: ../src/winmenu.c:470 msgid "Attributes..." -msgstr "ó×ÏÊÓÔ×Á..." +msgstr "Atrybuty..." #: ../src/winmenu.c:472 msgid "Options" -msgstr "ðÁÒÁÍÅÔÒÙ" +msgstr "Ustawienia" #: ../src/winmenu.c:532 msgid "Deminiaturize" -msgstr "òÁÚ×ÅÒÎÕÔØ" +msgstr "Odwróæ Pomniejszenie" #: ../src/winmenu.c:546 msgid "Unmaximize" -msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ" +msgstr "Odwróæ Powiêkszenie" #: ../src/winmenu.c:560 msgid "Unshade" -msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ" +msgstr "Rozwiñ" #: ../src/winspector.c:281 #, c-format msgid "Could not find icon \"%s\" specified for this window" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÆÁÊÌ ÚÎÁÞËÁ (%s), ÕËÁÚÁÎÎÙÊ ÄÌÑ ÜÔÏÇÏ ÏËÎÁ" +msgstr "Nie mo¿na znale¼æ ikony \"%s\" ustawionej dla tego okna" #: ../src/winspector.c:297 #, c-format msgid "Could not open specified icon \"%s\":%s" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÕËÁÚÁÎÎÙÊ ÆÁÊÌ ÚÎÁÞËÁ (%s): %s" +msgstr "Nie mo¿na otworzyæ okre¶lonej ikony \"%s\":%s" #: ../src/winspector.c:1016 msgid "Save" -msgstr "óÏÈÒÁÎÉÔØ" +msgstr "Zachowaj" #: ../src/winspector.c:1024 msgid "Apply" -msgstr "ðÒÉÍÅÎÉÔØ" +msgstr "Zastosuj" #: ../src/winspector.c:1030 msgid "Reload" -msgstr "ðÅÒÅÇÒÕÚÉÔØ" +msgstr "Za³aduj Ponownie" #: ../src/winspector.c:1039 ../src/winspector.c:1049 msgid "Window Specification" -msgstr "óÐÅÃÉÆÉËÁÃÉÑ ÏËÎÁ" +msgstr "Okre¶lenie Okna" #: ../src/winspector.c:1040 msgid "Window Attributes" -msgstr "áÔÒÉÂÕÔÙ ÏËÎÁ" +msgstr "Atrybuty Okna" #: ../src/winspector.c:1041 msgid "Advanced Options" -msgstr "äÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÁÒÁÍÅÔÒÙ" +msgstr "Opcje Zaawansowane" #: ../src/winspector.c:1042 msgid "Icon and Initial Workspace" -msgstr "éÓÈÏÄÎÏÅ òÁÂÏÞÅÅ ÍÅÓÔÏ" +msgstr "Ikona i Pocz±tkowy Pulpit" #: ../src/winspector.c:1043 msgid "Application Specific" -msgstr "ó×ÏÊÓÔ×Á ÐÒÉÌÏÖÅÎÉÑ" +msgstr "W³a¶ciwe dla Aplikacji" #: ../src/winspector.c:1057 msgid "Defaults for all windows" -msgstr "÷ÓÅ ÏËÎÁ" +msgstr "Domy¶lne dla wszystkich okien" #: ../src/winspector.c:1100 -msgid "" -"The configuration will apply to all\n" -"windows that have their WM_CLASS property set to the above selected\n" -"name, when saved." -msgstr "" -"äÁÎÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ ÂÕÄÅÔ ÐÒÉÍÅÎÅÎÁ ËÏ ×ÓÅÍ\n" -"ÏËÎÁÍ, Õ ËÏÔÏÒÙÈ ÁÔÒÉÂÕÔ WM_CLASS ÕÓÔÁÎÏ×ÌÅÎ × ×ÙÂÒÁÎÎÏÅ ÷ÁÍÉ\n" -"ÚÎÁÞÅÎÉÅ, ÚÁÔÅÍ ÓÏÈÒÁÎÅÎÁ." +msgid "The configuration will apply to all\nwindows that have their WM_CLASS property set to the above selected\nname, when saved." +msgstr "Po zachowaniu, konfiguracja zostanie zastosowana do wszystkich\nokien które maj± w³a¶ciwo¶æ WM_CLASS odpowiedni± do zaznaczonej powy¿ej\nnazwy." #: ../src/winspector.c:1107 msgid "Attributes" -msgstr "ó×ÏÊÓÔ×Á" +msgstr "Atrybuty" #: ../src/winspector.c:1117 msgid "Disable titlebar" -msgstr "ïÔËÌÀÞÉÔØ ÚÁÇÏÌÏ×ÏË" +msgstr "Wy³±cz pasek tytu³owy" #: ../src/winspector.c:1121 msgid "Disable resizebar" -msgstr "ïÔËÌÀÞÉÔØ ÒÁÍËÕ ÉÚÍÅÎÅÎÉÑ ÒÁÚÍÅÒÁ" +msgstr "Wy³±cz pasek zmiany rozmiaru" #: ../src/winspector.c:1125 msgid "Disable close button" -msgstr "õÂÒÁÔØ ËÎÏÐËÕ ÚÁËÒÙÔÉÑ" +msgstr "Wy³±cz przycisk zamkniêcia" #: ../src/winspector.c:1129 msgid "Disable miniaturize button" -msgstr "ïÔËÌÀÞÉÔØ ËÎÏÐËÕ ÍÉÎÉÁÔÀÒÉÚÁÃÉÉ" +msgstr "Wy³±cz przycisk pomniejszenia" #: ../src/winspector.c:1133 -#, fuzzy msgid "Keep on top / floating" -msgstr "÷ÓÅÇÄÁ ÎÁ×ÅÒÈÕ" +msgstr "Trzymaj na wierzchu / p³ywaj±cy" #: ../src/winspector.c:1137 -#, fuzzy msgid "Keep at bottom / sunken" -msgstr "÷ÓÅÇÄÁ ×ÎÉÚÕ" +msgstr "Trzymaj na dnie / zatopiony" #: ../src/winspector.c:1145 msgid "Start Miniaturized" -msgstr "úÁÐÕÓË × Ó×ÅÒÎÕÔÏÍ ÓÏÓÔÏÑÎÉÉ" +msgstr "Wystartuj Pomniejszony" #: ../src/winspector.c:1149 msgid "Start Maximized" -msgstr "úÁÐÕÓË × ÒÁÚ×ÅÒÎÕÔÏÍ ÓÏÓÔÏÑÎÉÉ" +msgstr "Uruchom Powiêkszony" #: ../src/winspector.c:1153 msgid "Skip window list" -msgstr "îÅ ÐÏËÁÚÙ×ÁÔØ × ÓÐÉÓËÅ ÏËÏÎ" +msgstr "Przeskocz w li¶cie okien" #: ../src/winspector.c:1167 msgid "Advanced" -msgstr "äÏÐÏÌÎÉÔÅÌØÎÏ" +msgstr "Zaawansowane" #: ../src/winspector.c:1177 msgid "Ignore HideOthers" -msgstr "éÇÎÏÒÏ×ÁÔØ \"óËÒÙÔØ ÏÓÔÁÌØÎÙÅ\"" +msgstr "Zignoruj UkryjInne" #: ../src/winspector.c:1181 msgid "Don't bind keyboard shortcuts" -msgstr "îÅ ÐÒÏ×ÅÒÑÔØ ÓÏÞÅÔÁÎÉÑ ËÌÁ×ÉÛ" +msgstr "Nie stosuj skrótów klawiaturowych" #: ../src/winspector.c:1185 msgid "Don't bind mouse clicks" -msgstr "îÅ ÐÒÏ×ÅÒÑÔØ ÝÅÌÞËÉ ÍÙÛÉ" +msgstr "Nie stosuj klikniêæ mysz±" #: ../src/winspector.c:1189 msgid "Keep inside screen" -msgstr "÷ÓÅÇÄÁ ×ÎÕÔÒÉ ÜËÒÁÎÁ" +msgstr "Trzymaj wewn±trz ekranu" #: ../src/winspector.c:1193 msgid "Don't let it take focus" -msgstr "îÅ ÄÁ×ÁÔØ ÆÏËÕÓ" +msgstr "Nie pozwól byæ aktywnym oknem" #: ../src/winspector.c:1197 msgid "Don't Save Session" -msgstr "îÅ ÓÏÈÒÁÎÑÔØ ÓÅÁÎÓ" +msgstr "Nie Zachowuj Sesji" -# #: ../src/winspector.c:1201 msgid "Emulate Application Icon" -msgstr "üÍÕÌÉÒÏ×ÁÔØ ÚÎÁÞÏË ÐÒÉÌÏÖÅÎÉÑ" +msgstr "Emuluj Ikonê Aplikacji" #: ../src/winspector.c:1216 -msgid "" -"Enable the \"Don't bind...\" options to allow the application to receive all " -"mouse or keyboard events." -msgstr "" -"õÓÔÁÎÏ×ÉÔÅ \"îÅ ÐÒÉ×ÑÚÙ×ÁÔØ...\" ÐÁÒÁÍÅÔÒÙ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÚ×ÏÌÉÔØ " -"ÐÒÉÌÏÖÅÎÉÀ ÐÒÉÎÉÍÁÔØ ×ÓÅ ÓÏÏÂÝÅÎÉÑ ÏÔ ËÌÁ×ÉÁÔÕÒÙ É/ÉÌÉ ÍÙÛÉ" +msgid "Enable the \"Don't bind...\" options to allow the application to receive all mouse or keyboard events." +msgstr "W³±cz wszystkie opcje typu \"Nie stosuj...\" by pozwoliæ aplikacji na odbiór wszystkich zdarzeñ od myszy i klawiatury." #: ../src/winspector.c:1223 msgid "Miniwindow Image" -msgstr "íÉÎÉÁÔÀÒÎÏÅ éÚÏÂÒÁÖÅÎÉÅ" +msgstr "Obrazek Miniokna" #: ../src/winspector.c:1242 msgid "Update" -msgstr "ïÂÎÏ×ÉÔØ" +msgstr "Odnów" #: ../src/winspector.c:1257 msgid "Icon file name:" -msgstr "éÍÑ ÆÁÊÌÁ ÚÎÁÞËÁ:" +msgstr "Nazwa pliku z ikon±:" #: ../src/winspector.c:1269 msgid "Ignore client supplied icon" -msgstr "éÇÎÏÒÉÒÏ×ÁÔØ ×ÎÕÔÒÅÎÎÉÊ ÚÎÁÞÏË ÐÒÉÌÏÖÅÎÉÑ" +msgstr "Ignoruj ikonê dostarczon± przez klienta" #: ../src/winspector.c:1276 msgid "Initial Workspace" -msgstr "îÁÞÁÌØÎÏÅ òÁÂÏÞÅÅ ÍÅÓÔÏ" +msgstr "Pocz±tkowy Pulpit" #: ../src/winspector.c:1281 msgid "Nowhere in particular" -msgstr "çÄÅ ÕÇÏÄÎÏ" +msgstr "Nigdzie w szczególno¶ci" #: ../src/winspector.c:1315 msgid "Application Wide" -msgstr "äÌÑ ×ÓÅÇÏ ÐÒÉÌÏÖÅÎÉÑ" +msgstr "W Ca³ej Aplikacji" #: ../src/winspector.c:1325 msgid "Start Hidden" -msgstr "úÁÐÕÓÔÉÔØ ÓËÒÙÔÙÍ" +msgstr "Wystartuj Ukryty" #: ../src/winspector.c:1329 msgid "No application icon" -msgstr "îÅ ÐÏËÁÚÙ×ÁÔØ ÚÎÁÞÏË" +msgstr "Brak ikony aplikacji" #: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:472 #, c-format msgid "Workspace %i" -msgstr "òÁÂÏÞÅÅ ÍÅÓÔÏ %i" +msgstr "Pulpit %i" #: ../src/workspace.c:529 msgid "Workspaces" -msgstr "òÁÂÏÞÉÅ ÍÅÓÔÁ" +msgstr "Pulpity" #: ../src/workspace.c:531 msgid "could not create Workspace menu" -msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÍÅÎÀ òÁÂÏÞÉÈ ÍÅÓÔ" +msgstr "nie mo¿na stworzyæ menu Pulpitu" #: ../src/workspace.c:538 msgid "New" -msgstr "óÏÚÄÁÔØ" +msgstr "Nowy" #: ../src/workspace.c:539 msgid "Destroy Last" -msgstr "õÄÁÌÉÔØ ÐÏÓÌÅÄÎÅÅ" +msgstr "Zniszcz Ostatni" #: ../src/xutil.c:228 msgid "invalid data in selection" -msgstr "ÎÅÄÏÐÕÓÔÉÍÙÅ ÄÁÎÎÙÅ × ×ÙÄÅÌÅÎÉÉ" - -#~ msgid "Too few elements in array for key \"WorkspaceBack\"." -#~ msgstr "óÌÉÛËÏÍ ÍÁÌÏ ÜÌÅÍÅÎÔÏ× × ÍÁÓÓÉ×Å ÄÌÑ ËÌÀÞÁ \"WorkspaceBack\"." +msgstr "niew³a¶ciwe dane w zaznaczeniu" diff --git a/po/ru.po b/po/ru.po index 4c78ddb9..a92d2ffd 100644 --- a/po/ru.po +++ b/po/ru.po @@ -3,19 +3,21 @@ # August S. Sigov # # Brought up-to-date for 0.17.5 +# and maintained up to 0.51.0 by # Alexey Vyskubov # Michael Sobolev # +#, fuzzy msgid "" msgstr "" -"POT-Creation-Date: 1999-01-16 22:08+0300\n" +"POT-Creation-Date: 1999-01-29 23:29+0300\n" +"PO-Revision-Date: 1999-01-29 22:33+0300\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=koi8-r\n" -"Date: ðÎÄ á×Ç 24 22:23:01 MSD 1998\n" #: ../src/appicon.c:509 ../src/dialog.c:216 ../src/dialog.c:272 -#: ../src/dock.c:3059 ../src/dockedapp.c:206 ../src/winspector.c:283 -#: ../src/winspector.c:299 +#: ../src/dock.c:3060 ../src/dockedapp.c:208 ../src/winspector.c:281 +#: ../src/winspector.c:297 msgid "Error" msgstr "ïÛÉÂËÁ" @@ -25,8 +27,8 @@ msgstr " #: ../src/appicon.c:511 ../src/dialog.c:115 ../src/dialog.c:216 #: ../src/dialog.c:272 ../src/dialog.c:460 ../src/dock.c:424 -#: ../src/dock.c:3060 ../src/dockedapp.c:206 ../src/dockedapp.c:350 -#: ../src/winspector.c:284 ../src/winspector.c:300 +#: ../src/dock.c:3061 ../src/dockedapp.c:208 ../src/dockedapp.c:352 +#: ../src/winspector.c:282 ../src/winspector.c:298 msgid "OK" msgstr "OK" @@ -53,11 +55,13 @@ msgstr " msgid "No" msgstr "îÅÔ" -#: ../src/appicon.c:548 ../src/dock.c:1065 +#: ../src/appicon.c:548 ../src/dock.c:1064 msgid "Unhide Here" msgstr "òÁÓËÒÙÔØ ÚÄÅÓØ" -#: ../src/appicon.c:549 ../src/appicon.c:574 ../src/winmenu.c:441 +#: ../src/appicon.c:549 ../src/appicon.c:574 ../src/dock.c:1066 +#: ../src/dock.c:1068 ../src/dock.c:3186 ../src/dock.c:3188 +#: ../src/winmenu.c:441 msgid "Hide" msgstr "óËÒÙÔØ" @@ -65,172 +69,175 @@ msgstr " msgid "Set Icon..." msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÏË..." -#: ../src/appicon.c:551 ../src/dock.c:1071 ../src/rootmenu.c:225 -#: ../src/rootmenu.c:239 ../src/winmenu.c:488 +#: ../src/appicon.c:551 ../src/dock.c:1072 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 ../src/winmenu.c:488 msgid "Kill" msgstr "õÂÉÔØ" -#: ../src/appicon.c:572 +#: ../src/appicon.c:572 ../src/dock.c:3184 msgid "Unhide" msgstr "òÁÓËÒÙÔØ" -#: ../src/defaults.c:735 ../src/startup.c:700 ../src/startup.c:718 -#: ../src/startup.c:724 +#: ../src/defaults.c:752 ../src/startup.c:709 ../src/startup.c:727 +#: ../src/startup.c:733 #, c-format msgid "could not read domain \"%s\" from defaults database" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÏÍÅÎÁ \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÏÍÅÎÁ \"%s\"" -#: ../src/defaults.c:781 ../src/defaults.c:905 ../src/defaults.c:944 -#: ../src/defaults.c:974 +#: ../src/defaults.c:798 ../src/defaults.c:922 ../src/defaults.c:961 +#: ../src/defaults.c:991 #, c-format msgid "Domain %s (%s) of defaults database is corrupted!" msgstr "äÏÍÅÎ %s (%s) × ÆÁÊÌÅ ÕÓÔÁÎÏ×ÏË ÐÏ×ÒÅÖÄÅÎ!" -#: ../src/defaults.c:786 ../src/defaults.c:926 ../src/defaults.c:957 -#: ../src/defaults.c:983 +#: ../src/defaults.c:803 ../src/defaults.c:943 ../src/defaults.c:974 +#: ../src/defaults.c:1000 #, c-format msgid "could not load domain %s from user defaults database" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÄÏÍÅÎ \"%s\" ÉÚ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÆÁÊÌÁ ÕÓÔÁÎÏ×ÏË" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÄÏÍÅÎ \"%s\" ÉÚ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÆÁÊÌÁ ÕÓÔÁÎÏ×ÏË" -#: ../src/defaults.c:797 ../src/defaults.c:890 +#: ../src/defaults.c:814 ../src/defaults.c:907 #, c-format msgid "Domain %s (%s) of global defaults database is corrupted!" -msgstr "äÏÍÅÎ %s (%s) × ÇÌÏÂÁÌØÎÏÍ ÆÁÊÌÅ ÎÁÓÔÒÏÅË ÐÏ×ÒÅÖÄÅÎ!" +msgstr "äÏÍÅÎ %s (%s) × ÇÌÏÂÁÌØÎÏÍ ÆÁÊÌÅ ÕÓÔÁÎÏ×ÏË ÐÏ×ÒÅÖÄÅÎ!" -#: ../src/defaults.c:816 ../src/defaults.c:895 +#: ../src/defaults.c:833 ../src/defaults.c:912 #, c-format msgid "could not load domain %s from global defaults database" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÄÏÍÅÎ %s ÉÚ ÇÌÏÂÁÌØÎÏÇÏ ÆÁÊÌÁ ÎÁÓÔÒÏÅË" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÄÏÍÅÎ %s ÉÚ ÇÌÏÂÁÌØÎÏÇÏ ÆÁÊÌÁ ÕÓÔÁÎÏ×ÏË" -#: ../src/defaults.c:1266 +#: ../src/defaults.c:1283 #, c-format msgid "wrong option value for key \"%s\". Should be one of %s" msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÌÀÞÁ \"%s\". äÏÌÖÎÏ ÂÙÔØ ÏÄÎÏ ÉÚ %s." -#: ../src/defaults.c:1313 +#: ../src/defaults.c:1330 #, c-format msgid "can't convert \"%s\" to boolean for key \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÌÏÇÉÞÅÓËÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÌÀÞÁ \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÌÏÇÉÞÅÓËÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÌÀÞÁ \"%s\"" -#: ../src/defaults.c:1318 ../src/defaults.c:1352 ../src/defaults.c:1384 -#: ../src/defaults.c:1397 ../src/defaults.c:1412 ../src/defaults.c:1426 -#: ../src/defaults.c:1498 ../src/defaults.c:1510 ../src/defaults.c:1858 -#: ../src/defaults.c:1875 ../src/defaults.c:1888 ../src/defaults.c:1921 -#: ../src/defaults.c:1937 ../src/defaults.c:1968 ../src/defaults.c:2041 +#: ../src/defaults.c:1335 ../src/defaults.c:1369 ../src/defaults.c:1401 +#: ../src/defaults.c:1414 ../src/defaults.c:1429 ../src/defaults.c:1443 +#: ../src/defaults.c:1515 ../src/defaults.c:1527 ../src/defaults.c:1875 +#: ../src/defaults.c:1892 ../src/defaults.c:1905 ../src/defaults.c:1938 +#: ../src/defaults.c:1954 ../src/defaults.c:1985 ../src/defaults.c:2058 #, c-format msgid "using default \"%s\" instead" msgstr "ÉÓÐÏÌØÚÕÅÍ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ (%s)" -#: ../src/defaults.c:1349 +#: ../src/defaults.c:1366 #, c-format msgid "can't convert \"%s\" to integer for key \"%s\"" msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÃÅÌÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÌÀÞÁ \"%s\"" -#: ../src/defaults.c:1379 ../src/defaults.c:1493 ../src/defaults.c:1853 -#: ../src/defaults.c:1870 ../src/defaults.c:1916 ../src/defaults.c:1963 +#: ../src/defaults.c:1396 ../src/defaults.c:1510 ../src/defaults.c:1870 +#: ../src/defaults.c:1887 ../src/defaults.c:1933 ../src/defaults.c:1980 #: ../src/wdefaults.c:541 ../src/wdefaults.c:577 #, c-format msgid "Wrong option format for key \"%s\". Should be %s." msgstr "îÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÐÁÒÁÍÅÔÒÁ ÄÌÑ ËÌÀÞÁ \"%s\". äÏÌÖÅÎ ÂÙÔØ %s." -#: ../src/defaults.c:1392 +#: ../src/defaults.c:1409 #, c-format msgid "Incorrect number of elements in array for key \"%s\"." msgstr "îÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÜÌÅÍÅÎÔÏ× × ÍÁÓÓÉ×Å ÄÌÑ ËÌÀÞÁ \"%s\"." -#: ../src/defaults.c:1407 +#: ../src/defaults.c:1424 #, c-format msgid "Wrong value for key \"%s\". Should be Coordinate." msgstr "îÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÐÁÒÁÍÅÔÒÁ ÄÌÑ ËÌÀÞÁ \"%s\". äÏÌÖÎÏ ÂÙÔØ Coordinate." -#: ../src/defaults.c:1422 +#: ../src/defaults.c:1439 #, c-format msgid "can't convert array to integers for \"%s\"." -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÍÁÓÓÉ× × ÎÁÂÏÒ ÃÅÌÙÈ ÚÎÁÞÅÎÉÑ ÄÌÑ \"%s\"." +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÍÁÓÓÉ× × ÎÁÂÏÒ ÃÅÌÙÈ ÚÎÁÞÅÎÉÑ ÄÌÑ \"%s\"." -#: ../src/defaults.c:1619 ../src/defaults.c:1651 ../src/defaults.c:1667 -#: ../src/defaults.c:1713 ../src/defaults.c:1753 ../src/defaults.c:1791 -#: ../src/defaults.c:1807 +#: ../src/defaults.c:1636 ../src/defaults.c:1668 ../src/defaults.c:1684 +#: ../src/defaults.c:1730 ../src/defaults.c:1770 ../src/defaults.c:1808 +#: ../src/defaults.c:1824 #, c-format msgid "\"%s\" is not a valid color name" -msgstr "\"%s\" ÎÅ Ñ×ÌÑÅÔÓÑ ÎÁÚ×ÁÎÉÅÍ ÉÚ×ÅÓÔÎÏÇÏ Ã×ÅÔÁ" +msgstr "\"%s\" ÎÅ Ñ×ÌÑÅÔÓÑ ÉÚ×ÅÓÔÎÙÍ ÎÁÚ×ÁÎÉÅÍ Ã×ÅÔÁ" -#: ../src/defaults.c:1632 +#: ../src/defaults.c:1649 msgid "bad number of arguments in gradient specification" -msgstr "ÎÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ× × ÓÐÅÃÉÆÉËÁÃÉÉ ÇÒÁÄÉÅÎÔÁ" +msgstr "ÎÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ× × ÏÐÒÅÄÅÌÅÎÉÉ ÇÒÁÄÉÅÎÔÁ" -#: ../src/defaults.c:1686 +#: ../src/defaults.c:1703 msgid "too few arguments in multicolor gradient specification" -msgstr "ÓÌÉÛËÏÍ ÍÁÌÏ ÁÒÇÕÍÅÎÔÏ× × ÓÐÅÃÉÆÉËÁÃÉÉ ÍÎÏÇÏÃ×ÅÔÎÏÇÏ ÇÒÁÄÉÅÎÔÁ" +msgstr "ÓÌÉÛËÏÍ ÍÁÌÏ ÁÒÇÕÍÅÎÔÏ× × ÏÐÒÅÄÅÌÅÎÉÉ ÍÎÏÇÏÃ×ÅÔÎÏÇÏ ÇÒÁÄÉÅÎÔÁ" -#: ../src/defaults.c:1780 +#: ../src/defaults.c:1797 msgid "bad number of arguments in textured gradient specification" -msgstr "ÎÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ× × ÓÐÅÃÉÆÉËÁÃÉÉ ÇÒÁÄÉÅÎÔÁ Ó ÔÅËÓÔÕÒÏÊ" +msgstr "ÎÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ× × ÏÐÒÅÄÅÌÅÎÉÉ ÇÒÁÄÉÅÎÔÁ Ó ÔÅËÓÔÕÒÏÊ" -#: ../src/defaults.c:1823 +#: ../src/defaults.c:1840 #, c-format msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" -msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÐÒÏÚÒÁÞÎÏÓÔÉ ÄÌÑ t-ÇÒÁÄÉÅÎÔÁ Ó ÔÅËÓÔÕÒÏÊ \"%s\"; ÄÏÌÖÎÏ " +msgstr "" +"ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÐÒÏÚÒÁÞÎÏÓÔÉ ÄÌÑ t-ÇÒÁÄÉÅÎÔÁ Ó ÔÅËÓÔÕÒÏÊ \"%s\"; ÄÏÌÖÎÏ " "ÂÙÔØ [0..255]" -#: ../src/defaults.c:1836 +#: ../src/defaults.c:1853 #, c-format msgid "invalid texture type %s" -msgstr "Î×ÅÒÎÙÊ ÔÉÐ ÔÅËÓÔÕÒÙ (%s)" +msgstr "ÎÅ×ÅÒÎÙÊ ÔÉÐ ÔÅËÓÔÕÒÙ (%s)" -#: ../src/defaults.c:1883 +#: ../src/defaults.c:1900 #, c-format msgid "Error in texture specification for key \"%s\"" -msgstr "ïÛÉÂËÁ × ÓÐÅÃÉÆÉËÁÃÉÉ ÔÅËÓÔÕÒÙ ÄÌÑ ËÌÀÞÁ \"%s\"" +msgstr "ïÛÉÂËÁ × ÏÐÒÅÄÅÌÅÎÉÉ ÔÅËÓÔÕÒÙ ÄÌÑ ËÌÀÞÁ \"%s\"" -#: ../src/defaults.c:1933 +#: ../src/defaults.c:1950 msgid "Wrong type for workspace background. Should be a texture type." -msgstr "îÅ×ÅÒÎÙÊ ÔÉÐ ÄÌÑ ÆÏÎÁ òÁÂÏÞÅÇÏ ÍÅÓÔÁ; ÏÖÄÁÌÏÓØ ÚÎÁÞÅÎÉÅ ÔÉÐÁ \"ÔÅËÓÔÕÒÁ\"." +msgstr "" +"îÅ×ÅÒÎÙÊ ÔÉÐ ÄÌÑ ÆÏÎÁ òÁÂÏÞÅÇÏ ÍÅÓÔÁ; ÏÖÉÄÁÌÏÓØ ÚÎÁÞÅÎÉÅ ÔÉÐÁ \"ÔÅËÓÔÕÒÁ\"." -#: ../src/defaults.c:1981 +#: ../src/defaults.c:1998 #, c-format msgid "Wrong type for background of workspace %i. Should be a texture." -msgstr "îÅ×ÅÒÎÙÊ ÔÉÐ ÄÌÑ ÆÏÎÁ òÁÂÏÞÅÇÏ ÍÅÓÔÁ #%i; ÏÖÄÁÌÏÓØ ÚÎÁÞÅÎÉÅ ÔÉÐÁ " +msgstr "" +"îÅ×ÅÒÎÙÊ ÔÉÐ ÄÌÑ ÆÏÎÁ òÁÂÏÞÅÇÏ ÍÅÓÔÁ #%i; ÏÖÉÄÁÌÏÓØ ÚÎÁÞÅÎÉÅ ÔÉÐÁ " "\"ÔÅËÓÔÕÒÁ\"." -#: ../src/defaults.c:2006 +#: ../src/defaults.c:2023 msgid "could not load any usable font!!!" msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÐÏÄÈÏÄÑÝÉÊ ÛÒÉÆÔ!!!" -#: ../src/defaults.c:2036 +#: ../src/defaults.c:2053 #, c-format msgid "could not get color for key \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ Ã×ÅÔ ÄÌÑ ËÌÀÞÁ \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ Ã×ÅÔ ÄÌÑ ËÌÀÞÁ \"%s\"" -#: ../src/defaults.c:2095 ../src/rootmenu.c:450 +#: ../src/defaults.c:2112 ../src/rootmenu.c:454 #, c-format msgid "%s:invalid key modifier \"%s\"" -msgstr "%s -- ÎÅ×ÅÒÎÙÊ ÍÏÄÉÆÉËÁÔÏÒ ËÌÀÞÁ \"%s\"" +msgstr "%s:ÎÅ×ÅÒÎÙÊ ÍÏÄÉÆÉËÁÔÏÒ ËÌÁ×ÉÛÉ \"%s\"" # -#: ../src/defaults.c:2107 +#: ../src/defaults.c:2124 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\"" msgstr "%s:ÎÅÄÏÐÕÓÔÉÍÏÅ ÕËÁÚÁÎÉÅ ÓÏÞÅÔÁÎÉÑ ËÌÁ×ÉÛ \"%s\"" # -#: ../src/defaults.c:2114 +#: ../src/defaults.c:2131 #, c-format msgid "%s:invalid key in shortcut \"%s\"" msgstr "%s:ÎÅ×ÅÒÎÁÑ ËÌÁ×ÉÛÁ × ÓÏÞÅÔÁÎÉÉ \"%s\"" -#: ../src/defaults.c:2140 +#: ../src/defaults.c:2157 #, c-format msgid "%s: modifier key %s is not valid" msgstr "%s: ÍÏÄÉÆÉËÁÔÏÒ %s ÎÅÉÚ×ÅÓÔÅÎ" -#: ../src/defaults.c:2216 +#: ../src/defaults.c:2233 msgid "could not render texture for icon background" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÇÏÔÏ×ÉÔØ ÔÅËÓÔÕÒÕ ÄÌÑ ÆÏÎÁ ÚÎÁÞËÁ" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÄÇÏÔÏ×ÉÔØ ÔÅËÓÔÕÒÕ ÄÌÑ ÆÏÎÁ ÚÎÁÞËÁ" #: ../src/dialog.c:115 ../src/dialog.c:467 ../src/dock.c:424 -#: ../src/dockedapp.c:356 ../src/rootmenu.c:187 ../src/rootmenu.c:225 -#: ../src/rootmenu.c:239 +#: ../src/dockedapp.c:358 ../src/rootmenu.c:188 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 msgid "Cancel" msgstr "ïÔËÁÚ" @@ -260,7 +267,7 @@ msgstr " msgid "Choose File" msgstr "÷ÙÂÅÒÉÔÅ ÆÁÊÌ" -#: ../src/dialog.c:483 +#: ../src/dialog.c:490 ../src/dialog.c:492 msgid "Icon Chooser" msgstr "÷ÙÂÏÒ ÚÎÁÞËÁ" @@ -270,7 +277,7 @@ msgid "Type the name for workspace %i:" msgstr "÷×ÅÄÉÔÅ ÉÍÑ ÄÌÑ %i-ÇÏ ÒÁÂÏÞÅÇÏ ÍÅÓÔÁ:" # -#: ../src/dock.c:214 ../src/dock.c:1044 +#: ../src/dock.c:214 ../src/dock.c:1043 msgid "Rename Workspace" msgstr "ðÅÒÅÉÍÅÎÏ×ÁÔØ òÁÂÏÞÅÅ ÍÅÓÔÏ" @@ -287,108 +294,104 @@ msgid "Keep Icon" msgstr "õÄÅÒÖÉ×ÁÔØ ÚÎÁÞÏË" # -#: ../src/dock.c:471 ../src/dock.c:1977 ../src/dock.c:2106 +#: ../src/dock.c:471 ../src/dock.c:1978 ../src/dock.c:2107 msgid "Type the command used to launch the application" msgstr "÷×ÅÄÉÔÅ ËÏÍÁÎÄÕ, ÉÓÐÏÌØÚÕÅÍÕÀ ÄÌÑ ÚÁÐÕÓËÁ ÐÒÉÌÏÖÅÎÉÑ" # -#: ../src/dock.c:857 +#: ../src/dock.c:856 #, c-format msgid "could not launch application %s\n" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÐÕÓÔÉÔØ ÐÒÉÌÏÖÅÎÉÅ %s\n" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÐÕÓÔÉÔØ ÐÒÉÌÏÖÅÎÉÅ %s\n" -#: ../src/dock.c:912 +#: ../src/dock.c:911 msgid "could not create workspace submenu for Clip menu" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÐÏÄÍÅÎÀ ÒÁÂÏÞÉÈ ÍÅÓÔ ÄÌÑ ÍÅÎÀ ðÉÒÓÁ" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÐÏÄÍÅÎÀ ÒÁÂÏÞÉÈ ÍÅÓÔ ÄÌÑ ÍÅÎÀ ðÉÒÓÁ" -#: ../src/dock.c:975 +#: ../src/dock.c:974 msgid "could not create options submenu for Clip menu" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÐÏÄÍÅÎÀ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ ÍÅÎÀ ðÉÒÓÁ" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÐÏÄÍÅÎÀ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ ÍÅÎÀ ðÉÒÓÁ" -#: ../src/dock.c:979 ../src/dock.c:1033 ../src/winmenu.c:383 +#: ../src/dock.c:978 ../src/dock.c:1032 ../src/winmenu.c:383 msgid "Keep on top" msgstr "÷ÓÅÇÄÁ ÎÁ×ÅÒÈÕ" -#: ../src/dock.c:985 +#: ../src/dock.c:984 msgid "Collapsed" msgstr "ó×ÅÒÎÕÔÏ" -#: ../src/dock.c:991 +#: ../src/dock.c:990 msgid "AutoCollapse" -msgstr "á×ÔÏó×ÏÒÁÞÉ×ÁÔØ" +msgstr "á×ÔÏÓ×ÏÒÁÞÉ×ÁÔØ" -#: ../src/dock.c:997 +#: ../src/dock.c:996 msgid "AutoRaiseLower" -msgstr "" +msgstr "á×ÔÏÏÐÕÓËÁÔØ" -#: ../src/dock.c:1003 +#: ../src/dock.c:1002 msgid "AutoAttract Icons" -msgstr "á×ÔÏðÒÉÔÑÇÉ×ÁÔØ ÚÎÁÞËÉ" +msgstr "á×ÔÏÐÒÉÔÑÇÉ×ÁÔØ ÚÎÁÞËÉ" -#: ../src/dock.c:1009 +#: ../src/dock.c:1008 msgid "Keep Attracted Icons" msgstr "õÄÅÒÖÉ×ÁÔØ ÐÒÉÔÑÎÕÔÙÅ ÚÎÁÞËÉ" -#: ../src/dock.c:1039 +#: ../src/dock.c:1038 msgid "Clip Options" msgstr "ðÁÒÁÍÅÔÒÙ ðÉÒÓÁ" -#: ../src/dock.c:1046 +#: ../src/dock.c:1045 msgid "(Un)Select Icon" msgstr "÷ÙÄÅÌÅÎÉÅ/óÂÒÏÓ ×ÙÄÅÌÅÎÉÑ ÚÎÁÞËÁ" -#: ../src/dock.c:1048 +#: ../src/dock.c:1047 msgid "(Un)Select All Icons" msgstr "÷ÙÄÅÌÅÎÉÅ/óÂÒÏÓ ×ÙÄÅÌÅÎÉÑ ×ÓÅÈ ÚÎÁÞËÏ×" -#: ../src/dock.c:1051 +#: ../src/dock.c:1050 msgid "Keep Icon(s)" -msgstr "õÄÅÒÖÉ×ÁÔØ ÚÎÁÞÏË (ÚÎÁÞËÉ)" +msgstr "õÄÅÒÖÉ×ÁÔØ ÚÎÁÞËÉ" -#: ../src/dock.c:1053 +#: ../src/dock.c:1052 msgid "Move Icon(s) To" -msgstr "ðÅÒÅÍÅÓÔÉÔØ ÚÎÁÞÏË (ÚÎÁÞËÉ)..." +msgstr "ðÅÒÅÍÅÓÔÉÔØ ÚÎÁÞËÉ..." -#: ../src/dock.c:1058 +#: ../src/dock.c:1057 msgid "Remove Icon(s)" -msgstr "õÄÁÌÉÔØ ÚÎÁÞÏË (ÚÎÁÞËÉ)" +msgstr "õÄÁÌÉÔØ ÚÎÁÞËÉ" -#: ../src/dock.c:1060 +#: ../src/dock.c:1059 msgid "Attract Icons" msgstr "ðÒÉÔÑÇÉ×ÁÔØ ÚÎÁÞËÉ" -#: ../src/dock.c:1063 +#: ../src/dock.c:1062 msgid "Launch" msgstr "úÁÐÕÓË" -#: ../src/dock.c:1067 -msgid "(Un)Hide" -msgstr "óËÒÙÔØ/òÁÓËÒÙÔØ" - -#: ../src/dock.c:1069 +#: ../src/dock.c:1070 msgid "Settings..." msgstr "õÓÔÁÎÏ×ËÉ..." -#: ../src/dock.c:1454 ../src/dock.c:1468 ../src/dock.c:1482 ../src/dock.c:1492 +#: ../src/dock.c:1455 ../src/dock.c:1469 ../src/dock.c:1483 ../src/dock.c:1493 #, c-format msgid "bad value in docked icon state info %s" msgstr "ïÛÉÂÏÞÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÏÓÔÏÑÎÉÉ ÐÒÉÛ×ÁÒÔÏ×ÁÎÎÏÇÏ ÚÎÁÞËÁ -- %s" -#: ../src/dock.c:1500 +#: ../src/dock.c:1501 #, c-format msgid "bad value in docked icon position %i,%i" msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ × ÐÏÚÉÃÉÉ ÐÒÉÞÁÌÁ %i,%i" -#: ../src/dock.c:1744 +#: ../src/dock.c:1745 msgid "there are too many icons stored in dock. Ignoring what doesn't fit" -msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÚÎÁÞËÏ× ÐÒÉÛ×ÁÒÔÏ×ÁÎÏ. îÅ ÚÁÍÅÞÁÀ ÎÅ ×ÌÅÚÁÀÝÉÅ" +msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÚÎÁÞËÏ× ÐÒÉÛ×ÁÒÔÏ×ÁÎÏ. þÁÓÔØ ÚÎÁÞËÏ× ÎÅ ÂÕÄÅÔ ×Ù×ÅÄÅÎÁ." #. icon->forced_dock = 1; -#: ../src/dock.c:1976 ../src/dock.c:2105 +#: ../src/dock.c:1977 ../src/dock.c:2106 msgid "Dock Icon" msgstr "úÎÁÞÏË ðÒÉÞÁÌÁ" -#: ../src/dock.c:3052 ../src/dock.c:3056 +#: ../src/dock.c:3053 ../src/dock.c:3057 #, c-format msgid "Could not execute command \"%s\"" msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ \"%s\"" @@ -396,57 +399,58 @@ msgstr " #: ../src/dockedapp.c:128 #, c-format msgid "could not find icon %s, used in a docked application" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÆÁÊÌ ÚÎÁÞËÁ (%s), ÉÓÐÏÌØÚÕÅÍÙÊ × ÐÒÉÛ×ÁÒÔÏ×ÁÎÏÍ ÐÒÉÌÏÖÅÎÉÉ" +msgstr "" +"ÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÆÁÊÌ ÚÎÁÞËÁ (%s), ÉÓÐÏÌØÚÕÅÍÙÊ × ÐÒÉÛ×ÁÒÔÏ×ÁÎÏÍ ÐÒÉÌÏÖÅÎÉÉ" # -#: ../src/dockedapp.c:205 +#: ../src/dockedapp.c:207 #, c-format msgid "Could not open specified icon file:%s" msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÕËÁÚÁÎÎÙÊ ÆÁÊÌ ÚÎÁÞËÁ:%s" -#: ../src/dockedapp.c:291 +#: ../src/dockedapp.c:293 msgid "Start when WindowMaker is started" msgstr "úÁÐÕÓÔÉÔØ ÐÒÉ ÓÔÁÒÔÅ WindowMaker-Á" # -#: ../src/dockedapp.c:298 +#: ../src/dockedapp.c:300 msgid "Application path and arguments" msgstr "ðÕÔØ Ë ÐÒÉÌÏÖÅÎÉÀ É ÁÒÇÕÍÅÎÔÙ" -#: ../src/dockedapp.c:309 +#: ../src/dockedapp.c:311 msgid "Command for files dropped with DND" msgstr "ëÏÍÁÎÄÁ ÄÌÑ ÐÅÒÅÔÁÝÅÎÎÙÈ ÆÁÊÌÏ×" -#: ../src/dockedapp.c:321 +#: ../src/dockedapp.c:323 #, c-format msgid "%d will be replaced with the file name" msgstr "%d ÂÕÄÅÔ ÚÁÍÅÎÅÎÏ ÎÁ ÉÍÑ ÆÁÊÌÁ" -#: ../src/dockedapp.c:325 +#: ../src/dockedapp.c:327 msgid "DND support was not compiled in" -msgstr "ðÏÄÄÅÒÖËÁ ÄÌÑ ÐÅÒÅÔÁÓËÉ×ÁÎÉÑ ÄÁÎÎÙÈ ÎÅ ÂÙÌÁ ÓËÏÐÍÐÉÌÉÒÏ×ÁÎÁ" +msgstr "ðÏÄÄÅÒÖËÁ ÄÌÑ ÐÅÒÅÔÁÓËÉ×ÁÎÉÑ ÄÁÎÎÙÈ ÎÅ ÂÙÌÁ ×ËÌÀÞÅÎÁ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ" -#: ../src/dockedapp.c:331 +#: ../src/dockedapp.c:333 msgid "Icon Image" msgstr "éÚÏÂÒÁÖÅÎÉÅ ÚÎÁÞËÁ" -#: ../src/dockedapp.c:343 ../src/winspector.c:1235 +#: ../src/dockedapp.c:345 ../src/winspector.c:1235 msgid "Browse..." msgstr "÷ÙÂÒÁÔØ..." # -#: ../src/dockedapp.c:388 +#: ../src/dockedapp.c:390 msgid "Docked Application Settings" msgstr "ðÁÒÁÍÅÔÒÙ ÐÒÉÛ×ÁÒÔÏ×ÁÎÎÏÇÏ ÐÒÉÌÏÖÅÎÉÑ" -#: ../src/event.c:350 +#: ../src/event.c:352 msgid "stack overflow: too many dead processes" msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ: ÓÌÉÛËÏÍ ÍÎÏÇÏ ÍÅÒÔ×ÙÈ ÐÒÏÃÅÓÓÏ×" #: ../src/framewin.c:485 #, c-format msgid "could not render gradient: %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÇÏÔÏ×ÉÔØ ÇÒÁÄÉÅÎÔ: %s" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÄÇÏÔÏ×ÉÔØ ÇÒÁÄÉÅÎÔ: %s" #: ../src/framewin.c:501 ../src/framewin.c:516 ../src/framewin.c:527 #: ../src/framewin.c:534 ../src/framewin.c:541 ../src/icon.c:296 @@ -469,185 +473,203 @@ msgstr " #: ../src/icon.c:706 #, c-format msgid "could not find default icon \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÎÁÞÏË ÐÏ ÕÍÏÌÞÁÎÉÀ \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÚÎÁÞÏË ÐÏ ÕÍÏÌÞÁÎÉÀ \"%s\"" #: ../src/icon.c:712 #, c-format msgid "could not load default icon \"%s\":%s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÚÎÁÞÏË ÐÏ ÕÍÏÌÏÞÁÎÉÀ (\"%s\"): %s" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÚÎÁÞÏË ÐÏ ÕÍÏÌÏÞÁÎÉÀ (\"%s\"): %s" -#: ../src/main.c:194 +#: ../src/main.c:195 msgid "could not exec window manager" msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÐÕÓÔÉÔØ ÄÉÓÐÅÔÞÅÒ ÏËÏÎ" -#: ../src/main.c:195 +#: ../src/main.c:196 msgid "Restart failed!!!" msgstr "ðÅÒÅÚÁÐÕÓË ÎÅ ÕÄÁÌÓÑ!!!" -#: ../src/main.c:242 +#: ../src/main.c:243 #, c-format msgid "%s aborted.\n" msgstr "%s ÐÒÅÒ×ÁÎÏ.\n" -#: ../src/main.c:253 -#, c-format -msgid "usage: %s [-options]\n" -msgstr "ÚÁÐÕÓË: %s [-ÐÁÒÁÍÅÔÒÙ]\n" - #: ../src/main.c:254 -msgid "options:" -msgstr "ÐÁÒÁÍÅÔÒÙ:" +#, c-format +msgid "Usage: %s [options]\n" +msgstr "úÁÐÕÓË: %s [ÐÁÒÁÍÅÔÒÙ]\n" -#: ../src/main.c:256 -msgid " -nocpp \t\tdisable preprocessing of configuration files" -msgstr " -nocpp \t\tÚÁÐÒÅÔÉÔØ ÐÒÅÄÏÂÒÁÂÏÔËÕ ÆÁÊÌÏ× ÎÁÓÔÒÏÊËÉ" +#: ../src/main.c:255 +msgid "The Window Maker window manager for the X window system" +msgstr "äÉÓÐÅÔÞÅÒ ÏËÏÎ Window Maker ÄÌÑ ÓÉÓÔÅÍÙ X Window" -#: ../src/main.c:258 -msgid " -nodock\t\tdo not open the application Dock" -msgstr " -nodock\t\tÎÅ ÏÔËÒÙ×ÁÔØ ðÒÉÞÁÌ ÐÒÉÌÏÖÅÎÉÊ" +#: ../src/main.c:257 +msgid " -display host:dpy\tdisplay to use" +msgstr " -display ÈÏÓÔ:ÄÉÓÐÌÅÊ\tÉÓÐÏÌØÚÏ×ÁÔØ ÄÁÎÎÙÊ ÄÉÓÐÌÅÊ" -# #: ../src/main.c:259 -msgid " -noclip\t\tdo not open the workspace Clip" -msgstr "-nofiend\t\tÎÅ ÏÔËÒÙ×ÁÔØ ðÉÒÓ ÄÌÑ ÐÒÉÌÏÖÅÎÉÊ" +msgid " --no-cpp \t\tdisable preprocessing of configuration files" +msgstr " --no-cpp \t\tÚÁÐÒÅÔÉÔØ ÐÒÅÄÏÂÒÁÂÏÔËÕ ÆÁÊÌÏ× ÎÁÓÔÒÏÊËÉ" + +#: ../src/main.c:261 +msgid " --no-dock\t\tdo not open the application Dock" +msgstr " --no-dock\t\tÎÅ ÏÔËÒÙ×ÁÔØ ðÒÉÞÁÌ ÐÒÉÌÏÖÅÎÉÊ" + +#: ../src/main.c:262 +msgid " --no-clip\t\tdo not open the workspace Clip" +msgstr " --no-clip\t\tÎÅ ÏÔËÒÙ×ÁÔØ ðÉÒÓ ÄÌÑ ÐÒÉÌÏÖÅÎÉÊ" #. -#. puts(_(" -locale locale locale to use")); +#. puts(_(" --locale locale locale to use")); #. -#: ../src/main.c:263 -msgid " -visualid visualid\tvisual id of visual to use" -msgstr " -visualid visualid\t×ÉÚÕÁÌØÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ" +#: ../src/main.c:266 +msgid " --visual-id visualid\tvisual id of visual to use" +msgstr " --visual-id visualid\tÉÓÐÏÌØÚÏ×ÁÔØ ÕËÁÚÁÎÎÙÊ Ã×ÅÔÏ×ÏÊ ËÌÁÓÓ ÏÔÏÂÒÁÖÅÎÉÑ" -#: ../src/main.c:264 -msgid " -display host:dpy\tdisplay to use" -msgstr " -display ÈÏÓÔ:ÄÉÓÐÌÅÊ\tÉÓÐÏÌØÚÏ×ÁÔØ ÄÁÎÎÙÊ ÄÉÓÐÌÅÊ" +#: ../src/main.c:267 +msgid " --static\t\tdo not update or save configurations" +msgstr " --static\t\tÎÅ ÏÂÎÏ×ÌÑÔØ ÉÌÉ ÓÏÈÒÁÎÑÔØ ËÏÎÆÉÇÕÒÁÃÉÀ" -#: ../src/main.c:265 -msgid " -static\t\tdo not update or save configurations" -msgstr " -static\t\tÎÅ ÏÂÎÏ×ÌÑÔØ ÉÌÉ ÓÏÈÒÁÎÑÔØ ËÏÎÆÉÇÕÒÁÃÉÀ" +#: ../src/main.c:268 +msgid " --version\t\tprint version and exit" +msgstr " --version\t\t÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ É ×ÙÈÏÄ" -#: ../src/main.c:266 -msgid " -version\t\tprint version and exit" -msgstr " -version\t\t÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ É ×ÙÈÏÄ" +#: ../src/main.c:269 +msgid " --help\t\t\tshow this message" +msgstr " --help\t\t\t×Ù×ÅÓÔÉ ÜÔÏÔ ÔÅËÓÔ" -#: ../src/main.c:278 +#: ../src/main.c:281 #, c-format msgid "" "could not find user GNUstep directory (%s).\n" "Make sure you have installed Window Maker correctly and run wmaker.inst" msgstr "" -"ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ËÁÔÁÌÏÇ GNUstep ÐÏÌØÚÏ×ÁÔÅÌÑ (%s).\n" +"ÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ËÁÔÁÌÏÇ GNUstep ÐÏÌØÚÏ×ÁÔÅÌÑ (%s).\n" "õÂÅÄÉÔÅÓØ, ÞÔÏ WindowMaker ÕÓÔÁÎÏ×ÌÅÎ ×ÅÒÎÏ, É ÚÁÐÕÓÔÉÔÅ wmaker.inst" -#: ../src/main.c:297 +#: ../src/main.c:300 #, c-format msgid "%s:could not execute initialization script" -msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ×ÙÐÏÌÎÉÔØ ÉÎÉÃÉÁÌÉÚÁÃÉÏÎÎÙÊ ÓÃÅÎÁÒÉÊ" +msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ×ÙÐÏÌÎÉÔØ ÓÃÅÎÁÒÉÊ ÉÎÉÃÉÁÌÉÚÁÃÉÉ" -#: ../src/main.c:314 +#: ../src/main.c:317 #, c-format msgid "%s:could not execute exit script" -msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ×ÙÐÏÌÎÉÔØ ÚÁ×ÅÒÛÁÀÝÉÊ ÓÃÅÎÁÒÉÊ" +msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ×ÙÐÏÌÎÉÔØ ÓÃÅÎÁÒÉÊ ÚÁ×ÅÒÛÅÎÉÑ ÒÁÂÏÔÙ" -#: ../src/main.c:368 ../src/main.c:375 ../src/main.c:382 ../src/main.c:396 +#: ../src/main.c:378 ../src/main.c:385 ../src/main.c:393 ../src/main.c:409 #, c-format msgid "too few arguments for %s" msgstr "ÓÌÉÛËÏÍ ÍÁÌÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ %s" -#: ../src/main.c:386 +#: ../src/main.c:397 #, c-format msgid "bad value for visualid: \"%s\"" msgstr "ÏÛÉÂÏÞÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ visualid: \"%s\"" -#: ../src/main.c:444 +# +#: ../src/main.c:414 +#, c-format +msgid "%s: invalid argument '%s'" +msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔ \"%s\"" + +#: ../src/main.c:415 +#, c-format +msgid "Try '%s --help' for more information" +msgstr "ðÏÐÒÏÂÕÊÔÅ '%s --help' ÄÌÑ ÄÌÑ ×Ù×ÏÄÁ ÓÐÉÓËÁ ÄÏÓÔÕÐÎÙÈ ÐÁÒÁÍÅÔÒÏ×" + +#: ../src/main.c:458 msgid "X server does not support locale" msgstr "X ÓÅÒ×ÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÌÏËÁÌÉÚÁÃÉÀ" -#: ../src/main.c:447 +#: ../src/main.c:461 msgid "cannot set locale modifiers" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÐÁÒÁÍÅÔÒÙ ÌÏËÁÌÉÚÁÃÉÉ" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÕÓÔÁÎÏ×ÉÔØ ÐÁÒÁÍÅÔÒÙ ÌÏËÁÌÉÚÁÃÉÉ" -#: ../src/main.c:464 +#: ../src/main.c:478 #, c-format msgid "could not open display \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÄÉÓÐÌÅÊ \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ÄÉÓÐÌÅÊ \"%s\"" #: ../src/menu.c:285 msgid "wrealloc() failed while trying to add menu item" -msgstr "ÏÛÉÂËÁ × ×ÙÐÏÌÎÅÎÉÉ wrealloc() ÐÒÉ ÐÏÐÙÔËÅ ÄÏÂÁ×ÉÔØ ÜÌÅÍÅÎÔ ÍÅÎÀ" +msgstr "ÐÒÉ ÐÏÐÙÔËÅ ÄÏÂÁ×ÉÔØ ÜÌÅÍÅÎÔ ÍÅÎÀ ×ÏÚÎÉËÌÁ ÏÛÉÂËÁ × ÆÕÎËÃÉÉ wrealloc()" #: ../src/misc.c:71 #, c-format msgid "could not define value for %s for cpp" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÚÎÁÞÅÎÉÑ ÄÌÑ %s ÄÌÑ cpp" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ ÚÎÁÞÅÎÉÑ ÄÌÑ %s ÄÌÑ cpp" #: ../src/misc.c:101 #, c-format msgid "could not get password entry for UID %i" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ ÄÌÑ UID %i" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ ÄÌÑ UID %i" #: ../src/misc.c:125 #, c-format msgid "your machine is misconfigured. HOSTNAME is set to %s" -msgstr "÷ÁÛÁ ÍÁÛÉÎÁ ÎÁÓÔÒÏÅÎÁ ÎÅ×ÅÒÎÏ. HOSTNAME ÕÓÔÁÎÏ×ÌÅÎÏ × %s" +msgstr "÷ÁÛÁ ÓÉÓÔÅÍÁ ÎÁÓÔÒÏÅÎÁ ÎÅ×ÅÒÎÏ. ðÅÒÅÍÅÎÎÁÑ HOSTNAME ÕÓÔÁÎÏ×ÌÅÎÁ × %s" #: ../src/misc.c:131 #, c-format msgid "your machine is misconfigured. HOST is set to %s" -msgstr "÷ÁÛÁ ÍÁÛÉÎÁ ÎÁÓÔÒÏÅÎÁ ÎÅ×ÅÒÎÏ. HOST ÕÓÔÁÎÏ×ÌÅÎ × %s" +msgstr "÷ÁÛÁ ÓÉÓÔÅÍÁ ÎÁÓÔÒÏÅÎÁ ÎÅ×ÅÒÎÏ. ðÅÒÅÍÅÎÎÁÑ HOST ÕÓÔÁÎÏ×ÌÅÎÁ × %s" #: ../src/misc.c:773 msgid "selection timed-out" msgstr "×ÙÄÅÌÅÎÉÅ ÕÓÔÁÒÅÌÏ" -#: ../src/misc.c:788 +#: ../src/misc.c:789 msgid "Program Arguments" msgstr "áÒÇÕÍÅÎÔÙ ðÒÏÇÒÁÍÍÙ" -#: ../src/misc.c:789 +#: ../src/misc.c:790 msgid "Enter command arguments:" msgstr "÷×ÅÄÉÔÅ ÁÒÇÕÍÅÎÔÙ ËÏÍÁÎÄÙ:" -#: ../src/misc.c:884 +#: ../src/misc.c:887 msgid "unable to get dropped data from DND drop" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÄÁÎÎÙÅ ÏÔ DND drop" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÐÅÒÅÔÁÝÅÎÎÙÅ ÄÁÎÎÙÅ" -#: ../src/misc.c:892 +#: ../src/misc.c:895 msgid "error getting dropped data from DND drop" msgstr "ÏÛÉÂËÁ ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÄÁÎÎÙÈ ÏÔ DND drop" -#: ../src/misc.c:898 +#: ../src/misc.c:901 msgid "out of memory while getting data from DND drop" msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÄÁÎÎÙÈ ÏÔ DND drop" -#: ../src/misc.c:942 ../src/misc.c:1062 +#: ../src/misc.c:946 ../src/misc.c:1081 #, c-format msgid "out of memory during expansion of \"%s\"" msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%s\"" -#: ../src/misc.c:996 +#: ../src/misc.c:1000 msgid "out of memory during expansion of \"%w\"" msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%w\"" -#: ../src/misc.c:1015 +#: ../src/misc.c:1018 +msgid "out of memory during expansion of \"%W\"" +msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%s\"" + +#: ../src/misc.c:1034 msgid "out of memory during expansion of \"%a\"" msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%a\"" -#: ../src/misc.c:1041 +#: ../src/misc.c:1060 #, c-format msgid "out of memory during expansion of \"%d\"" msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ×Ï ×ÒÅÍÑ ÒÁÓÛÉÒÅÎÉÑ \"%d\"" -#: ../src/misc.c:1055 +#: ../src/misc.c:1074 msgid "selection not available" msgstr "ÎÅÔ ×ÙÄÅÌÅÎÉÑ" -#: ../src/misc.c:1127 ../src/misc.c:1133 +#: ../src/misc.c:1146 ../src/misc.c:1152 #, c-format msgid "bad window name value in %s state info" msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÉÍÅÎÉ ÏËÎÁ × ÉÎÆÏÒÍÁÃÉÉ Ï ÓÏÓÔÏÑÎÉÉ ðÒÉÞÁÌÁ ÄÌÑ %s" -#: ../src/misc.c:1387 +#: ../src/misc.c:1406 msgid "could not send message to background image helper" msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÓÌÁÔØ ÓÏÏÂÝÅÎÉÅ ÐÒÉÌÏÖÅÎÉÀ ÆÏÎÏ×ÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ" @@ -666,12 +688,11 @@ msgstr " #: ../src/proplist.c:256 msgid "missing , in array or unterminated array" -msgstr "× ÍÁÓÓÉ×Å ÐÒÏÐÕÝÅÎÁ ',' ÉÌÉ ÎÅÚÁ×ÅÒÛÅÎÎÙÊ ÍÁÓÓÉ×" +msgstr "× ÍÁÓÓÉ×Å ÐÒÏÐÕÝÅÎÁ ',' ÉÌÉ ÍÁÓÓÉ× ÎÅÚÁ×ÅÒÛÅÎ" -# #: ../src/proplist.c:267 msgid "could not get array element" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÜÌÅÍÅÎÔ ÍÁÓÓÉ×Á" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÜÌÅÍÅÎÔ ÍÁÓÓÉ×Á" #: ../src/proplist.c:297 msgid "unterminated dictionary" @@ -703,14 +724,14 @@ msgstr " #: ../src/proplist.c:434 msgid "Comments are not allowed inside WindowMaker owned domain files." -msgstr "÷ÎÕÔÒÉ ÆÁÊÌÏ× ÄÏÍÅÎÏ×, ÐÒÉÎÁÄÌÅÖÁÝÉÈ WindowMaker, ËÏÍÍÅÎÔÁÒÉÉ ÎÅ " -"ÄÏÐÕÓËÁÀÔÓÑ." +msgstr "" +"÷ÎÕÔÒÉ ÆÁÊÌÏ× ÄÏÍÅÎÏ×, ÐÒÉÎÁÄÌÅÖÁÝÉÈ WindowMaker, ËÏÍÍÅÎÔÁÒÉÉ ÎÅ ÄÏÐÕÓËÁÀÔÓÑ." # #: ../src/proplist.c:453 #, c-format msgid "could not open domain file %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÄÏÍÅÎÁ %s" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ÆÁÊÌ ÄÏÍÅÎÁ %s" #: ../src/proplist.c:466 msgid "extra data after end of file" @@ -733,36 +754,36 @@ msgstr " #: ../src/resources.c:81 #, c-format msgid "could not create font set %s. Trying fixed" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÛÒÉÆÔ %s. éÓÐÏÌØÚÕÅÔÓÑ fixed" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÛÒÉÆÔ %s. éÓÐÏÌØÚÕÅÔÓÑ fixed" #: ../src/resources.c:98 #, c-format msgid "could not load font %s. Trying fixed" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÛÒÉÆÔ %s. éÓÐÏÌØÚÕÅÔÓÑ fixed" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÛÒÉÆÔ %s. éÓÐÏÌØÚÕÅÔÓÑ fixed" #: ../src/resources.c:136 #, c-format msgid "could not parse color \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ Ã×ÅÔ \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÏÐÒÅÄÅÌÉÔØ Ã×ÅÔ \"%s\"" #: ../src/resources.c:140 #, c-format msgid "could not allocate color \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÔØ Ã×ÅÔ \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÔØ Ã×ÅÔ \"%s\"" -#: ../src/rootmenu.c:185 ../src/rootmenu.c:187 +#: ../src/rootmenu.c:186 ../src/rootmenu.c:188 msgid "Exit" msgstr "÷ÙÈÏÄ" -#: ../src/rootmenu.c:186 +#: ../src/rootmenu.c:187 msgid "Exit window manager?" msgstr "÷ÙÊÔÉ ÉÚ ÄÉÓÐÅÔÞÅÒÁ ÏËÏÎ?" -#: ../src/rootmenu.c:222 +#: ../src/rootmenu.c:223 msgid "Close X session" msgstr "úÁ×ÅÒÛÉÔØ ÓÅÁÎÓ ÒÁÂÏÔÙ" -#: ../src/rootmenu.c:223 +#: ../src/rootmenu.c:224 msgid "" "Close Window System session?\n" "Kill might close applications with unsaved data." @@ -774,15 +795,15 @@ msgstr "" #. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); #. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); #. -#: ../src/rootmenu.c:225 ../src/winmenu.c:481 +#: ../src/rootmenu.c:226 ../src/winmenu.c:481 msgid "Close" msgstr "úÁËÒÙÔØ" -#: ../src/rootmenu.c:236 +#: ../src/rootmenu.c:237 msgid "Kill X session" -msgstr "á×ÁÒÉÊÎÏ ÚÁ×ÅÒÛÉÔØ ÓÅÁÎÓ ÒÁÂÏÔÙ" +msgstr "á×ÁÒÉÊÎÏÅ ÚÁ×ÅÒÛÅÎÉÅ ÓÅÁÎÓÁ ÒÁÂÏÔÙ" -#: ../src/rootmenu.c:237 +#: ../src/rootmenu.c:238 msgid "" "Kill Window System session?\n" "(all applications will be closed)" @@ -790,47 +811,47 @@ msgstr "" "úÁËÒÙÔØ ÓÅÁÎÓ ïËÏÎÎÏÊ óÉÓÔÅÍÙ?\n" "(×ÓÅ ÐÒÉÌÏÖÅÎÉÑ ÂÕÄÕÔ ÚÁ×ÅÒÛÅÎÙ)" -#: ../src/rootmenu.c:463 +#: ../src/rootmenu.c:467 #, c-format msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" -msgstr "%s -- ÎÅ×ÅÒÎÏÅ ÕËÁÚÁÎÉÅ ËÏÍÂÉÎÁÃÉÉ ËÌÁ×ÉÛ \"%s\" ÄÌÑ ÚÁÐÉÓÉ %s" +msgstr "%s:ÎÅ×ÅÒÎÏÅ ÕËÁÚÁÎÉÅ ËÏÍÂÉÎÁÃÉÉ ËÌÁ×ÉÛ \"%s\" ÄÌÑ ÚÁÐÉÓÉ %s" -#: ../src/rootmenu.c:471 +#: ../src/rootmenu.c:475 #, c-format msgid "%s:invalid key in shortcut \"%s\" for entry %s" -msgstr "%s -- ÎÅ×ÅÒÎÁÑ ËÌÁ×ÉÛÁ × ËÏÍÂÉÎÁÃÉÉ \"%s\" ÄÌÑ ÚÁÐÉÓÉ %s" +msgstr "%s:ÎÅ×ÅÒÎÁÑ ËÌÁ×ÉÛÁ × ËÏÍÂÉÎÁÃÉÉ \"%s\" ÄÌÑ ÚÁÐÉÓÉ %s" -#: ../src/rootmenu.c:524 +#: ../src/rootmenu.c:528 #, c-format msgid "%s: unmatched '\"' in menu file" msgstr "%s -- ÎÅÐÁÒÎÁÑ '\"' × ÆÁÊÌÅ ÍÅÎÀ" -#: ../src/rootmenu.c:574 +#: ../src/rootmenu.c:578 #, c-format msgid "%s: missing command" -msgstr "%s -- ÏÔÓÕÔÓÔ×ÕÀÝÁÑ ËÏÍÁÎÄÁ" +msgstr "%s: ÏÔÓÕÔÓÔ×ÕÀÝÁÑ ËÏÍÁÎÄÁ" -#: ../src/rootmenu.c:607 +#: ../src/rootmenu.c:611 #, c-format msgid "invalid OPEN_MENU specification: %s" msgstr "ÎÅ×ÅÒÎÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ OPEN_MENU: %s" -#: ../src/rootmenu.c:680 +#: ../src/rootmenu.c:684 #, c-format msgid "%s:could not stat menu" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÍÅÎÀ" +msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÍÅÎÀ" -#: ../src/rootmenu.c:688 +#: ../src/rootmenu.c:692 #, c-format msgid "%s:could not stat menu:%s" -msgstr "%s:ÎÕ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÍÅÎÀ:%s" +msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÍÅÎÀ:%s" -#: ../src/rootmenu.c:706 +#: ../src/rootmenu.c:710 #, c-format msgid "too many parameters in OPEN_MENU: %s" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ OPEN_MENU: %s" -#: ../src/rootmenu.c:742 +#: ../src/rootmenu.c:746 msgid "" "There are more than one WORKSPACE_MENU commands in the applications menu. " "Only one is allowed." @@ -838,97 +859,97 @@ msgstr "" "÷ ÇÌÁ×ÎÏÍ ÍÅÎÀ ÐÒÉÓÕÔÓÔ×ÕÅÔ ÂÏÌØÛÅ ÏÄÎÏÊ ËÏÍÁÎÄÙ WORKSPACE_MENU. äÏÐÕÓÔÉÍÁ " "ÔÏÌØËÏ ÏÄÎÁ" -#: ../src/rootmenu.c:771 ../src/rootmenu.c:789 +#: ../src/rootmenu.c:775 ../src/rootmenu.c:793 #, c-format msgid "%s:missing parameter for menu command \"%s\"" msgstr "%s:ÎÅÄÏÓÔÁÀÝÉÊ ÐÁÒÁÍÅÔÒ ÄÌÑ ËÏÍÁÎÄÙ ÍÅÎÀ \"%s\"" -#: ../src/rootmenu.c:852 +#: ../src/rootmenu.c:856 #, c-format msgid "%s:unknown command \"%s\" in menu config." msgstr "%s:ÎÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ \"%s\" × ÎÁÓÔÒÏÊËÅ ÍÅÎÀ" -#: ../src/rootmenu.c:860 +#: ../src/rootmenu.c:864 #, c-format msgid "%s:can't add shortcut for entry \"%s\"" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ËÏÍÂÉÎÁÃÉÀ ËÌÁ×ÉÛ ÄÌÑ ËÏÍÁÎÄÙ \"%s\"" +msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ÄÏÂÁ×ÉÔØ ËÏÍÂÉÎÁÃÉÀ ËÌÁ×ÉÛ ÄÌÑ ËÏÍÁÎÄÙ \"%s\"" -#: ../src/rootmenu.c:997 +#: ../src/rootmenu.c:1001 #, c-format msgid "%s:maximal line size exceeded in menu config: %s" msgstr "%s:ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÓÔÒÏËÉ × ÎÁÓÔÒÏÊËÅ ÍÅÎÀ: %s" -#: ../src/rootmenu.c:1019 ../src/rootmenu.c:1111 ../src/rootmenu.c:1212 +#: ../src/rootmenu.c:1023 ../src/rootmenu.c:1115 ../src/rootmenu.c:1216 #, c-format msgid "%s:missing command in menu config: %s" msgstr "%s:ÏÔÓÕÔÓÔ×ÕÅÔ ËÏÍÁÎÄÁ × ÎÁÓÔÒÏÊËÅ ÍÅÎÀ: %s" -#: ../src/rootmenu.c:1049 +#: ../src/rootmenu.c:1053 #, c-format msgid "%s:syntax error in menu file:END declaration missing" msgstr "%s:ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ÆÁÊÌÅ ÍÅÎÀ: ÏÔÓÕÔÓÔ×ÕÅÔ END" -#: ../src/rootmenu.c:1078 ../src/rootmenu.c:1177 +#: ../src/rootmenu.c:1082 ../src/rootmenu.c:1181 msgid "could not make arguments for menu file preprocessor" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÓÔÁ×ÉÔØ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ÐÒÅÐÒÏÃÅÓÓÏÒÁ ÆÁÊÌÁ ÍÅÎÀ" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÄÓÔÁ×ÉÔØ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ÐÒÅÐÒÏÃÅÓÓÏÒÁ ÆÁÊÌÁ ÍÅÎÀ" -#: ../src/rootmenu.c:1084 ../src/rootmenu.c:1184 +#: ../src/rootmenu.c:1088 ../src/rootmenu.c:1188 #, c-format msgid "%s:could not open/preprocess menu file" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ/ÐÒÅÄÏÂÒÁÂÏÔÁÔØ ÆÁÊÌ ÍÅÎÀ" +msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ/ÐÒÅÄÏÂÒÁÂÏÔÁÔØ ÆÁÊÌ ÍÅÎÀ" -#: ../src/rootmenu.c:1096 ../src/rootmenu.c:1197 +#: ../src/rootmenu.c:1100 ../src/rootmenu.c:1201 #, c-format msgid "%s:could not open menu file" -msgstr "%s:ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÍÅÎÀ" +msgstr "%s:ÎÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ÆÁÊÌ ÍÅÎÀ" -#: ../src/rootmenu.c:1123 +#: ../src/rootmenu.c:1127 #, c-format msgid "%s:invalid menu file. MENU command is missing" -msgstr "%s: ÆÁÊÌ ÍÅÎÀ ÎÅ×ÅÒÅÎ. ïÔÓÔÕÔÓ×ÕÅÔ ËÏÍÍÁÎÄÁ MENU" +msgstr "%s:ÆÁÊÌ ÍÅÎÀ ÎÅ×ÅÒÅÎ. ïÔÓÔÕÔÓ×ÕÅÔ ËÏÍÍÁÎÄÁ MENU" -#: ../src/rootmenu.c:1132 +#: ../src/rootmenu.c:1136 msgid "error reading preprocessed menu data" msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ ÏÂÒÁÂÏÔÁÎÎÙÈ ÄÁÎÎÙÈ ÍÅÎÀ" -#: ../src/rootmenu.c:1224 +#: ../src/rootmenu.c:1228 #, c-format msgid "%s:no title given for the root menu" -msgstr "%s: ÎÅÔ ÚÁÇÏÌÏ×ËÁ ÄÌÑ ËÏÒÎÅ×ÏÇÏ ÍÅÎÀ" +msgstr "%s: ÎÅ ÚÁÄÁÎ ÚÁÇÏÌÏ×ÏË ËÏÒÎÅ×ÏÇÏ ÍÅÎÀ" -#: ../src/rootmenu.c:1307 ../src/rootmenu.c:1374 ../src/rootmenu.c:1418 +#: ../src/rootmenu.c:1311 ../src/rootmenu.c:1378 ../src/rootmenu.c:1422 #, c-format msgid "out of memory while constructing directory menu %s" msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ÐÒÉ ÓÏÚÄÁÎÉÉ ËÁÔÁÌÏÇÁ ÍÅÎÀ %s" -#: ../src/rootmenu.c:1317 +#: ../src/rootmenu.c:1321 #, c-format msgid "%s:could not stat file \"%s\" in menu directory" msgstr "%s:ÎÅÔ ÉÎÆÏÒÍÁÃÉÉ Ï ÆÁÊÌÅ \"%s\" × ËÁÔÁÌÏÇÅ ÍÅÎÀ" -#: ../src/rootmenu.c:1472 +#: ../src/rootmenu.c:1476 msgid "Commands" msgstr "ëÏÍÁÎÄÙ" -#: ../src/rootmenu.c:1475 +#: ../src/rootmenu.c:1479 msgid "Restart" msgstr "ðÅÒÅÚÁÐÕÓË" -#: ../src/rootmenu.c:1476 +#: ../src/rootmenu.c:1480 msgid "Exit..." msgstr "÷ÙÈÏÄ..." -#: ../src/rootmenu.c:1549 +#: ../src/rootmenu.c:1553 #, c-format msgid "could not find menu file \"%s\" referenced in WMRootMenu" msgstr "ÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÆÁÊÌ ÍÅÎÀ \"%s\", ÕËÁÚÁÎÎÙÊ × WMRootMenu" -#: ../src/rootmenu.c:1556 +#: ../src/rootmenu.c:1560 #, c-format msgid "could not access menu \"%s\" referenced in WMRootMenu" msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÍÅÎÀ \"%s\", ÕËÁÚÁÎÎÏÅ × WMRootMenu" -#: ../src/rootmenu.c:1567 +#: ../src/rootmenu.c:1571 #, c-format msgid "" "using default menu file \"%s\" as the menu referenced in WMRootMenu could " @@ -937,42 +958,42 @@ msgstr "" "×ÍÅÓÔÏ ÍÅÎÀ, ÕËÁÚÁÎÎÏÇÏ × ÆÁÊÌÅ WMRootMenu, ÉÓÐÏÌØÚÕÅÔÓÑ ÍÅÎÀ ÐÏ ÕÍÏÌÞÁÎÉÀ " "(%s) " -#: ../src/rootmenu.c:1590 ../src/rootmenu.c:1666 +#: ../src/rootmenu.c:1594 ../src/rootmenu.c:1670 #, c-format msgid "%s:format error in root menu configuration \"%s\"" msgstr "%s:ÏÛÉÂËÁ ÆÏÒÍÁÔÁ × ÎÁÓÔÒÏÊËÅ ËÏÒÎÅ×ÏÇÏ ÍÅÎÀ \"%s\"" -#: ../src/screen.c:423 +#: ../src/screen.c:428 msgid "could not load logo image for panels" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÚÁÓÔÁ×ËÕ ÄÌÑ ÐÁÎÅÌÅÊ" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÚÁÓÔÁ×ËÕ ÄÌÑ ÐÁÎÅÌÅÊ" -#: ../src/screen.c:426 +#: ../src/screen.c:431 #, c-format msgid "error making logo image for panel:%s" msgstr "ÏÛÉÂËÁ ÐÒÉ ÐÏÄÇÏÔÏ×ËÅ ÚÁÓÔÁ×ËÉ ÄÌÑ ÐÁÎÅÌÉ: %s" -#: ../src/screen.c:612 +#: ../src/screen.c:695 #, c-format msgid "could not initialize graphics library context: %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ËÏÎÔÅËÓÔ ÇÒÁÆÉÞÅÓËÏÊ ÂÉÂÌÉÏÔÅËÉ: %s" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÒÏÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÇÒÁÆÉÞÅÓËÕÀ ÂÉÂÌÉÏÔÅËÕ: %s" -#: ../src/screen.c:644 +#: ../src/screen.c:727 msgid "could not do initialization of WINGs widget set" msgstr "ÎÅ ÕÄÁÌÏÓØ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÂÉÂÌÉÏÔÅËÕ WINGs" -#: ../src/screen.c:961 +#: ../src/screen.c:1059 #, c-format msgid "could not save session state in %s" msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÈÒÁÎÉÔØ ÓÏÓÔÏÑÎÉÑ ÓÅÁÎÓÁ × %s" -#: ../src/session.c:138 ../src/wdefaults.c:559 ../src/winspector.c:347 +#: ../src/session.c:182 ../src/wdefaults.c:559 ../src/winspector.c:345 #, c-format msgid "can't convert \"%s\" to boolean" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÂÕÌÅ×ÓËÕÀ ×ÅÌÉÞÉÎÕ" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÒÅÏÂÒÁÚÏ×ÁÔØ \"%s\" × ÂÕÌÅ×ÓËÕÀ ×ÅÌÉÞÉÎÕ" -#: ../src/session.c:750 ../src/session.c:844 +#: ../src/session.c:875 ../src/session.c:969 msgid "end of memory while saving session state" -msgstr "ÎÅ È×ÁÔÉÌÏ ÐÁÍÑÔÉ ÐÒÉ ÓÏÈÒÁÎÅÎÉÉ ÓÏÓÔÏÑÎÉÑ ÓÅÁÎÓÁ" +msgstr "ÉÓÞÅÒÐÁÎÁ ÐÁÍÑÔØ ÐÒÉ ÓÏÈÒÁÎÅÎÉÉ ÓÏÓÔÏÑÎÉÑ ÓÅÁÎÓÁ" #. This is not fatal but can mean the session manager exited. #. * If the session manager exited normally we would get a @@ -980,83 +1001,88 @@ msgstr " #. * If the sm was the last client of session, then we'll die #. * anyway, otherwise we can continue doing our stuff. #. -#: ../src/session.c:978 +#: ../src/session.c:1103 msgid "connection to the session manager was lost" msgstr "ÐÏÔÅÒÑÎÏ ÓÏÅÄÉÎÅÎÉÅ Ó ÄÉÓÐÅÔÞÅÒÏÍ ÓÅÓÓÉÊ" #: ../src/stacking.c:72 msgid "could not get window list!!" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÏËÏÎ!!!" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÏËÏÎ!!!" -#: ../src/startup.c:194 +#: ../src/startup.c:195 #, c-format msgid "internal X error: %s\n" msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ X ÓÅÒ×ÅÒÁ: %s\n" -#: ../src/startup.c:257 +#: ../src/startup.c:258 #, c-format msgid "got signal %i (%s) - restarting\n" msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i (%s) -- ÐÅÒÅÚÁÐÕÓË\n" -#: ../src/startup.c:259 +#: ../src/startup.c:260 #, c-format msgid "got signal %i - restarting\n" msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i - ÐÅÒÅÚÁÐÕÓË\n" -#: ../src/startup.c:273 +#: ../src/startup.c:275 #, c-format -msgid "%s: Received signal SIGTERM. Exiting..." -msgstr ":%s: ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ SIGTERM. úÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ..." +msgid "got signal %i (%s) - exiting...\n" +msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i (%s) -- ÚÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ...\n" -#: ../src/startup.c:285 +#: ../src/startup.c:277 +#, c-format +msgid "got signal %i - exiting...\n" +msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i -- ÚÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ...\n" + +#: ../src/startup.c:290 #, c-format msgid "got signal %i (%s)\n" msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i (%s)\n" -#: ../src/startup.c:287 +#: ../src/startup.c:292 #, c-format msgid "got signal %i\n" msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %i\n" -#: ../src/startup.c:293 +#: ../src/startup.c:298 msgid "" "crashed while trying to do some post-crash cleanup. Aborting immediatelly." msgstr "" "ËÒÉÔÉÞÅÓËÁÑ ÏÛÉÂËÁ ×Ï ×ÒÅÍÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ ÐÏÓÌÅ ÓÅÒØÅÚÎÏÊ ÏÛÉÂËÉ. " "îåíåäìåîîïå ÚÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ." -#: ../src/startup.c:304 +#: ../src/startup.c:309 msgid "" "a fatal error has occured, probably due to a bug. Please fill the included " "BUGFORM and report it." msgstr "" -"ÉÍÅÅÔ ÍÅÓÔÏ ÂÙÔØ ËÒÉÔÉÞÅÓËÁÑ ÏÛÉÂËÁ, ×ÏÚÍÏÖÎÏ, ËÁË ÒÅÚÕÌØÔÁÔ ÏÛÉÂËÅ × " -"ÐÒÏÇÒÁÍÍÅ. ðÏÖÁÌÕÊÓÔÁ, ÚÁÐÏÌÎÉÔÅ ÆÁÊÌ BUGFORM Ï ÐÒÉÛÌÉÔÅ ÅÇÏ." +"×ÏÚÎÉËÌÁ ËÒÉÔÉÞÅÓËÁÑ ÏÛÉÂËÁ. ÷ÏÚÍÏÖÎÏ, ÜÔÏ ÒÅÚÕÌØÔÁÔ ÏÛÉÂËÉ × ÐÒÏÇÒÁÍÍÅ. " +"ðÏÖÁÌÕÊÓÔÁ, ÚÁÐÏÌÎÉÔÅ ÆÏÒÍÕ × ÆÁÊÌÅ BUGFORM É ÏÔÐÒÁ×ØÔÅ ÅÇÏ Á×ÔÏÒÕ." #. restart another window manager so that the X session doesn't #. * go to space -#: ../src/startup.c:311 +#: ../src/startup.c:316 msgid "trying to start alternative window manager..." msgstr "ÐÏÐÙÔËÁ ÚÁÐÕÓËÁ ÁÌØÔÅÒÎÁÔÉ×ÎÏÇÏ ÄÉÓÐÅÔÞÅÒÁ ÏËÏÎ..." -#: ../src/startup.c:710 +#: ../src/startup.c:719 #, c-format msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" msgstr "" "ÒÁÚÍÅÒ ÚÎÁÞËÁ ÕÓÔÁÎÏ×ÌÅÎ × %i, ÎÏ ÜÔÏ ÓÌÉÛËÏÍ ÍÁÌÏ. éÓÐÏÌØÚÕÅÔÓÑ 16.\n" -#: ../src/startup.c:754 +#: ../src/startup.c:763 msgid "it seems that there already is a window manager running" msgstr "ðÏÈÏÖÅ, ÞÔÏ ÁËÔÉ×ÅÎ ÄÒÕÇÏÊ ÄÉÓÐÅÔÞÅÒ ÏËÏÎ" -#: ../src/startup.c:760 +#: ../src/startup.c:769 #, c-format msgid "could not manage screen %i" -msgstr "" +msgstr "îÅ ÕÄÁÅÔÓÑ ÕÐÒÁ×ÌÑÔØ ÜËÒÁÎÏÍ %i" -#: ../src/startup.c:820 +#: ../src/startup.c:829 msgid "could not manage any screen" -msgstr "" +msgstr "îÅ ÕÄÁÅÔÓÑ ÕÐÒÁ×ÌÑÔØ ËÁËÉÍ-ÌÉÂÏ ÜËÒÁÎÏÍ" #: ../src/switchmenu.c:114 msgid "Windows" @@ -1070,25 +1096,25 @@ msgstr " #: ../src/texture.c:280 ../src/texture.c:324 #, c-format msgid "could not load texture pixmap \"%s\":%s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÒÁÓÔÒÏ×ÙÊ ÒÉÓÕÎÏË Ó ÔÅËÓÔÕÒÏÊ \"%s\": %s" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÒÁÓÔÒÏ×ÙÊ ÒÉÓÕÎÏË Ó ÔÅËÓÔÕÒÏÊ \"%s\": %s" #: ../src/texture.c:463 ../src/texture.c:574 #, c-format msgid "could not render texture: %s" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÄÇÏÔÏ×ÉÔØ ÔÅËÓÔÕÒÕ: %s" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÄÇÏÔÏ×ÉÔØ ÔÅËÓÔÕÒÕ: %s" #: ../src/wdefaults.c:405 #, c-format msgid "could not find icon file \"%s\"" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÎÁÞÏË \"%s\"" +msgstr "ÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÚÎÁÞÏË \"%s\"" -#: ../src/window.c:2282 ../src/window.c:2414 +#: ../src/window.c:2377 ../src/window.c:2509 msgid "" "the NumLock, ScrollLock or similar key seems to be turned on.\n" "Turn it off or some mouse actions and keyboard shortcuts will not work." msgstr "" "ðÏÈÏÖÅ, ÞÔÏ NumLock, ScrollLock ÉÌÉ ÁÎÁÌÏÇÉÞÎÁÑ ËÌÁ×ÉÛÁ ×ËÌÀÞÅÎÁ.\n" -"÷ÙËÌÀÞÉÔÅ ÅÅ ÉÌÉ ÎÅËÏÔÏÒÙÅ ÏÐÅÒÁÃÉÉ ÍÙÛØÀ ÉÌÉ ËÏÍÂÉÎÁÃÉÉ ËÌÁ×ÉÛ ÎÅ ÂÕÄÕÔ " +"÷ÙËÌÀÞÉÔÅ ÅÅ ÉÌÉ ÎÅËÏÔÏÒÙÅ ÏÐÅÒÁÃÉÉ ÍÙÛØÀ É ËÏÍÂÉÎÁÃÉÉ ËÌÁ×ÉÛ ÎÅ ÂÕÄÕÔ " "ÒÁÂÏÔÁÔØ." #: ../src/winmenu.c:249 ../src/winmenu.c:257 @@ -1156,12 +1182,12 @@ msgstr " msgid "Unshade" msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ" -#: ../src/winspector.c:281 +#: ../src/winspector.c:279 #, c-format msgid "Could not find icon \"%s\" specified for this window" msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÆÁÊÌ ÚÎÁÞËÁ (%s), ÕËÁÚÁÎÎÙÊ ÄÌÑ ÜÔÏÇÏ ÏËÎÁ" -#: ../src/winspector.c:297 +#: ../src/winspector.c:295 #, c-format msgid "Could not open specified icon \"%s\":%s" msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÕËÁÚÁÎÎÙÊ ÆÁÊÌ ÚÎÁÞËÁ (%s): %s" @@ -1233,14 +1259,12 @@ msgid "Disable miniaturize button" msgstr "ïÔËÌÀÞÉÔØ ËÎÏÐËÕ ÍÉÎÉÁÔÀÒÉÚÁÃÉÉ" #: ../src/winspector.c:1133 -#, fuzzy msgid "Keep on top / floating" -msgstr "÷ÓÅÇÄÁ ÎÁ×ÅÒÈÕ" +msgstr "÷ÓÅÇÄÁ ÎÁ×ÅÒÈÕ (ÐÌÁ×ÁÀÝÅÅ)" #: ../src/winspector.c:1137 -#, fuzzy msgid "Keep at bottom / sunken" -msgstr "÷ÓÅÇÄÁ ×ÎÉÚÕ" +msgstr "÷ÓÅÇÄÁ ×ÎÉÚÕ (ÕÔÏÐÌÅÎÏ)" #: ../src/winspector.c:1145 msgid "Start Miniaturized" @@ -1331,30 +1355,27 @@ msgstr " msgid "No application icon" msgstr "îÅ ÐÏËÁÚÙ×ÁÔØ ÚÎÁÞÏË" -#: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:472 +#: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:480 #, c-format msgid "Workspace %i" msgstr "òÁÂÏÞÅÅ ÍÅÓÔÏ %i" -#: ../src/workspace.c:529 +#: ../src/workspace.c:537 msgid "Workspaces" msgstr "òÁÂÏÞÉÅ ÍÅÓÔÁ" -#: ../src/workspace.c:531 +#: ../src/workspace.c:539 msgid "could not create Workspace menu" msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÍÅÎÀ òÁÂÏÞÉÈ ÍÅÓÔ" -#: ../src/workspace.c:538 +#: ../src/workspace.c:546 msgid "New" msgstr "óÏÚÄÁÔØ" -#: ../src/workspace.c:539 +#: ../src/workspace.c:547 msgid "Destroy Last" msgstr "õÄÁÌÉÔØ ÐÏÓÌÅÄÎÅÅ" #: ../src/xutil.c:228 msgid "invalid data in selection" -msgstr "ÎÅÄÏÐÕÓÔÉÍÙÅ ÄÁÎÎÙÅ × ×ÙÄÅÌÅÎÉÉ" - -#~ msgid "Too few elements in array for key \"WorkspaceBack\"." -#~ msgstr "óÌÉÛËÏÍ ÍÁÌÏ ÜÌÅÍÅÎÔÏ× × ÍÁÓÓÉ×Å ÄÌÑ ËÌÀÞÁ \"WorkspaceBack\"." +msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ×ÙÄÅÌÅÎÎÙÅ ÄÁÎÎÙÅ" diff --git a/po/zh_TW.Big5.po b/po/zh_TW.Big5.po new file mode 100644 index 00000000..3d33fb10 --- /dev/null +++ b/po/zh_TW.Big5.po @@ -0,0 +1,1380 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 1999 Free Software Foundation, Inc. +# Li Wei Jih , 1999. +# +msgid "" +msgstr "" +"Project-Id-Version: Window Maker-0.51.0\n" +"POT-Creation-Date: 1999-02-09 13:00+0800\n" +"PO-Revision-Date: 1999-02-09 13:00+0800\n" +"Last-Translator: Li Wei Jih \n" +"Language-Team: chinese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=big5\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: ../src/appicon.c:509 ../src/dialog.c:216 ../src/dialog.c:272 +#: ../src/dock.c:3060 ../src/dockedapp.c:208 ../src/winspector.c:281 +#: ../src/winspector.c:297 +msgid "Error" +msgstr "¿ù»~" + +#: ../src/appicon.c:510 +msgid "Could not open specified icon file" +msgstr "µLªk¶}±Ò«ü©wªº¹Ï¥ÜÀÉ" + +#: ../src/appicon.c:511 ../src/dialog.c:115 ../src/dialog.c:216 +#: ../src/dialog.c:272 ../src/dialog.c:460 ../src/dock.c:424 +#: ../src/dock.c:3061 ../src/dockedapp.c:208 ../src/dockedapp.c:352 +#: ../src/winspector.c:282 ../src/winspector.c:298 +msgid "OK" +msgstr "½T©w" + +#: ../src/appicon.c:532 ../src/dock.c:272 ../src/winmenu.c:123 +msgid "Kill Application" +msgstr "µ²§ôÀ³¥Îµ{¦¡" + +#: ../src/appicon.c:533 ../src/dock.c:273 ../src/winmenu.c:124 +msgid "" +"This will kill the application.\n" +"Any unsaved changes will be lost.\n" +"Please confirm." +msgstr "" +"³o¼Ë·|µ²§ôÀ³¥Îµ{¦¡¡C\n" +"¥ô¦ó¥¼Àx¦sªº§ïÅܱN·|¿ò¥¢¡C\n" +"½Ð½T»{¡C" + +#: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 +msgid "Yes" +msgstr "¬O" + +#: ../src/appicon.c:534 ../src/dock.c:274 ../src/winmenu.c:125 +msgid "No" +msgstr "§_" + +#: ../src/appicon.c:548 ../src/dock.c:1064 +msgid "Unhide Here" +msgstr "¦b¦¹Åã²{" + +#: ../src/appicon.c:549 ../src/appicon.c:574 ../src/dock.c:1066 +#: ../src/dock.c:1068 ../src/dock.c:3186 ../src/dock.c:3188 +#: ../src/winmenu.c:441 +msgid "Hide" +msgstr "ÁôÂÃ" + +#: ../src/appicon.c:550 +msgid "Set Icon..." +msgstr "³]©w¹Ï¥Ü..." + +#: ../src/appicon.c:551 ../src/dock.c:1072 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 ../src/winmenu.c:488 +msgid "Kill" +msgstr "µ²§ô" + +#: ../src/appicon.c:572 ../src/dock.c:3184 +msgid "Unhide" +msgstr "Åã²{" + +#: ../src/defaults.c:752 ../src/startup.c:709 ../src/startup.c:727 +#: ../src/startup.c:733 +#, c-format +msgid "could not read domain \"%s\" from defaults database" +msgstr "µLªk±q¹w³]¸ê®Æ®wŪ¨ú©w¸q°ì \"%s\"" + +#: ../src/defaults.c:798 ../src/defaults.c:922 ../src/defaults.c:961 +#: ../src/defaults.c:991 +#, c-format +msgid "Domain %s (%s) of defaults database is corrupted!" +msgstr "¹w³]¸ê®Æ®wªº©w¸q°ì %s (%s) ¤w·lÃa¡I" + +#: ../src/defaults.c:803 ../src/defaults.c:943 ../src/defaults.c:974 +#: ../src/defaults.c:1000 +#, c-format +msgid "could not load domain %s from user defaults database" +msgstr "µLªk±q¨Ï¥ÎªÌ¹w³]¸ê®Æ®w¸ü¤J©w¸q°ì %s" + +#: ../src/defaults.c:814 ../src/defaults.c:907 +#, c-format +msgid "Domain %s (%s) of global defaults database is corrupted!" +msgstr "¾ãÅé¹w³]¸ê®Æ®wªº©w¸q°ì %s (%s) ¤w·lÃa¡I" + +#: ../src/defaults.c:833 ../src/defaults.c:912 +#, c-format +msgid "could not load domain %s from global defaults database" +msgstr "µLªk±q¾ãÅé¹w³]¸ê®Æ®w¸ü¤J©w¸q°ì %s" + +#: ../src/defaults.c:1283 +#, c-format +msgid "wrong option value for key \"%s\". Should be one of %s" +msgstr "key \"%s\" ªº¿ï¶µ­È¿ù»~¡CÀ³¬° %s " + +#: ../src/defaults.c:1330 +#, c-format +msgid "can't convert \"%s\" to boolean for key \"%s\"" +msgstr "µLªkÂà´« key \"%s\" ªº \"%s\" ¦¨¬° boolean" + +#: ../src/defaults.c:1335 ../src/defaults.c:1369 ../src/defaults.c:1401 +#: ../src/defaults.c:1414 ../src/defaults.c:1429 ../src/defaults.c:1443 +#: ../src/defaults.c:1515 ../src/defaults.c:1527 ../src/defaults.c:1875 +#: ../src/defaults.c:1892 ../src/defaults.c:1905 ../src/defaults.c:1938 +#: ../src/defaults.c:1954 ../src/defaults.c:1985 ../src/defaults.c:2058 +#, c-format +msgid "using default \"%s\" instead" +msgstr "§ï¥Î¹w³] \"%s\"" + +#: ../src/defaults.c:1366 +#, c-format +msgid "can't convert \"%s\" to integer for key \"%s\"" +msgstr "µLªkÂà´« key \"%s\" ªº \"%s\" ¦¨¬°¾ã¼Æ" + +#: ../src/defaults.c:1396 ../src/defaults.c:1510 ../src/defaults.c:1870 +#: ../src/defaults.c:1887 ../src/defaults.c:1933 ../src/defaults.c:1980 +#: ../src/wdefaults.c:541 ../src/wdefaults.c:577 +#, c-format +msgid "Wrong option format for key \"%s\". Should be %s." +msgstr "key \"%s\" ªº¿ï¶µ®æ¦¡¿ù»~¡CÀ³¬° %s¡C" + +#: ../src/defaults.c:1409 +#, c-format +msgid "Incorrect number of elements in array for key \"%s\"." +msgstr "key \"%s\" ªº°}¦C¤¸¯À¼Æ¥Ø¿ù»~¡C" + +#: ../src/defaults.c:1424 +#, c-format +msgid "Wrong value for key \"%s\". Should be Coordinate." +msgstr "key \"%s\" ªº­È¿ù»~¡CÀ³¬°®y¼Ð¡C" + +#: ../src/defaults.c:1439 +#, c-format +msgid "can't convert array to integers for \"%s\"." +msgstr "µLªk¬° \"%s\" Âà´«°}¦C¦¨¬°¾ã¼Æ¡C" + +#: ../src/defaults.c:1636 ../src/defaults.c:1668 ../src/defaults.c:1684 +#: ../src/defaults.c:1730 ../src/defaults.c:1770 ../src/defaults.c:1808 +#: ../src/defaults.c:1824 +#, c-format +msgid "\"%s\" is not a valid color name" +msgstr "\"%s\" ¤£¬O¦³®ÄªºÃC¦â¦W" + +#: ../src/defaults.c:1649 +msgid "bad number of arguments in gradient specification" +msgstr "º¥¼h³W®æ¤¤¤Þ¼Æ¼Æ¥Ø¿ù»~" + +#: ../src/defaults.c:1703 +msgid "too few arguments in multicolor gradient specification" +msgstr "¦h¦âº¥¼h³W®æ¤¤¤Þ¼Æ¤Ó¤Ö" + +#: ../src/defaults.c:1797 +msgid "bad number of arguments in textured gradient specification" +msgstr "§÷½èº¥¼h³W®æ¤¤¤Þ¼Æ¼Æ¥Ø¿ù»~" + +#: ../src/defaults.c:1840 +#, c-format +msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" +msgstr "º¥¼h§÷½è \"%s\" ¤£³z©ú­È¿ù»~¡CÀ³¸Ó¬O [0..255]" + +#: ../src/defaults.c:1853 +#, c-format +msgid "invalid texture type %s" +msgstr "§÷½è«¬ºA %s µL®Ä" + +#: ../src/defaults.c:1900 +#, c-format +msgid "Error in texture specification for key \"%s\"" +msgstr "key \"%s\" ªº§÷½è³W®æ¿ù»~" + +#: ../src/defaults.c:1950 +msgid "Wrong type for workspace background. Should be a texture type." +msgstr "¤u§@°Ï­I´º«¬ºA¿ù»~¡CÀ³¬°§÷½è«¬ºA¡C" + +#: ../src/defaults.c:1998 +#, c-format +msgid "Wrong type for background of workspace %i. Should be a texture." +msgstr "¤u§@°Ï %i ­I´º«¬ºA¿ù»~¡CÀ³¬°§÷½è¡C" + +#: ../src/defaults.c:2023 +msgid "could not load any usable font!!!" +msgstr "µLªk¸ü¤J¥ô¦ó¥i¥Î¦r«¬!!!" + +#: ../src/defaults.c:2053 +#, c-format +msgid "could not get color for key \"%s\"" +msgstr "µLªk¨ú±o key \"%s\" ªº¦â±m" + +#: ../src/defaults.c:2112 ../src/rootmenu.c:454 +#, c-format +msgid "%s:invalid key modifier \"%s\"" +msgstr "%s: Áä­×¥¿ \"%s\" µL®Ä" + +#: ../src/defaults.c:2124 +#, c-format +msgid "%s:invalid kbd shortcut specification \"%s\"" +msgstr "%s: Áä½L±¶®|³W®æ \"%s\" µL®Ä" + +#: ../src/defaults.c:2131 +#, c-format +msgid "%s:invalid key in shortcut \"%s\"" +msgstr "%s: ±¶®| \"%s\" ªºÁäµL®Ä" + +#: ../src/defaults.c:2157 +#, c-format +msgid "%s: modifier key %s is not valid" +msgstr "%s: ­×¥¿Áä %s ¤£¥¿½T" + +#: ../src/defaults.c:2233 +msgid "could not render texture for icon background" +msgstr "µLªkªí²{¹Ï¥Ü­I´ºªº§÷½è" + +#: ../src/dialog.c:115 ../src/dialog.c:467 ../src/dock.c:424 +#: ../src/dockedapp.c:358 ../src/rootmenu.c:188 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 +msgid "Cancel" +msgstr "¨ú®ø" + +#: ../src/dialog.c:211 +msgid "Could not open directory " +msgstr "µLªk¶}±Ò¥Ø¿ý" + +#: ../src/dialog.c:267 +msgid "Could not load image file " +msgstr "µLªk¸ü¤J¼v¹³ÀÉ" + +#: ../src/dialog.c:404 +msgid "Directories" +msgstr "¥Ø¿ý" + +#: ../src/dialog.c:413 +msgid "Icons" +msgstr "¹Ï¥Ü" + +#: ../src/dialog.c:450 +msgid "File Name:" +msgstr "ÀɦW:" + +#: ../src/dialog.c:473 +msgid "Choose File" +msgstr "¿ï¨úÀÉ®×" + +#: ../src/dialog.c:490 ../src/dialog.c:492 +msgid "Icon Chooser" +msgstr "¹Ï¥Ü¿ï¨ú¾¹" + +#: ../src/dock.c:213 +#, c-format +msgid "Type the name for workspace %i:" +msgstr "¿é¤J¤u§@°Ï %i ¦WºÙ:" + +#: ../src/dock.c:214 ../src/dock.c:1043 +msgid "Rename Workspace" +msgstr "¤u§@°Ï§ó¦W" + +#: ../src/dock.c:422 +msgid "Workspace Clip" +msgstr "¤u§@°Ï°j¯¾°w" + +#: ../src/dock.c:423 +msgid "All selected icons will be removed!" +msgstr "©Ò¦³¿ï¨úªº¹Ï¥Ü·|³Q§R°£¡I" + +#: ../src/dock.c:470 +msgid "Keep Icon" +msgstr "«O«ù¹Ï¥Ü" + +#: ../src/dock.c:471 ../src/dock.c:1978 ../src/dock.c:2107 +msgid "Type the command used to launch the application" +msgstr "¿é¤J¥Î¨Ó±Ò°ÊÀ³¥Îµ{¦¡ªº©R¥O" + +#: ../src/dock.c:856 +#, c-format +msgid "could not launch application %s\n" +msgstr "µLªk±Ò°ÊÀ³¥Îµ{¦¡ %s\n" + +#: ../src/dock.c:911 +msgid "could not create workspace submenu for Clip menu" +msgstr "µLªk¬°°j¯¾°w¿ï³æ«Ø¥ß¤u§@°Ï°Æ¿ï³æ" + +#: ../src/dock.c:974 +msgid "could not create options submenu for Clip menu" +msgstr "µLªk¬°°j¯¾°w¿ï³æ«Ø¥ß¿ï¶µ°Æ¿ï³æ" + +#: ../src/dock.c:978 ../src/dock.c:1032 ../src/winmenu.c:383 +msgid "Keep on top" +msgstr "«O«ù¦b³Ì¤W¼h" + +#: ../src/dock.c:984 +msgid "Collapsed" +msgstr "§éÅ|" + +#: ../src/dock.c:990 +msgid "AutoCollapse" +msgstr "¦Û°Ê§éÅ|" + +#: ../src/dock.c:996 +msgid "AutoRaiseLower" +msgstr "¦Û°Ê¤É­°" + +#: ../src/dock.c:1002 +msgid "AutoAttract Icons" +msgstr "¦Û°Ê§l¤Þ¹Ï¥Ü" + +#: ../src/dock.c:1008 +msgid "Keep Attracted Icons" +msgstr "«O«ù§l¤Þªº¹Ï¥Ü" + +#: ../src/dock.c:1038 +msgid "Clip Options" +msgstr "°j¯¾°w¿ï¶µ" + +#: ../src/dock.c:1045 +msgid "(Un)Select Icon" +msgstr "¿ï¨ú¹Ï¥Ü¡]¨ú®ø¡^" + +#: ../src/dock.c:1047 +msgid "(Un)Select All Icons" +msgstr "¿ï¨ú©Ò¦³¹Ï¥Ü¡]¨ú®ø¡^" + +#: ../src/dock.c:1050 +msgid "Keep Icon(s)" +msgstr "«O«ù¹Ï¥Ü" + +#: ../src/dock.c:1052 +msgid "Move Icon(s) To" +msgstr "²¾°Ê¹Ï¥Ü¦Ü" + +#: ../src/dock.c:1057 +msgid "Remove Icon(s)" +msgstr "§R°£¹Ï¥Ü" + +#: ../src/dock.c:1059 +msgid "Attract Icons" +msgstr "§l¤Þ¹Ï¥Ü" + +#: ../src/dock.c:1062 +msgid "Launch" +msgstr "±Ò°Ê" + +#: ../src/dock.c:1070 +msgid "Settings..." +msgstr "³]©w..." + +#: ../src/dock.c:1455 ../src/dock.c:1469 ../src/dock.c:1483 ../src/dock.c:1493 +#, c-format +msgid "bad value in docked icon state info %s" +msgstr "°±¾aªº¹Ï¥Üª¬ºA¸ê°T %s ­È¤£¥¿½T" + +#: ../src/dock.c:1501 +#, c-format +msgid "bad value in docked icon position %i,%i" +msgstr "°±¾aªº¹Ï¥Ü¦ì¸m %i,%i ­È¤£¥¿½T" + +#: ../src/dock.c:1745 +msgid "there are too many icons stored in dock. Ignoring what doesn't fit" +msgstr "¤Ó¦h¹Ï¥Ü¦s©ñ¦b°±¾a°Ï¡C©¿²¤¤£¾A·íªº" + +#. icon->forced_dock = 1; +#: ../src/dock.c:1977 ../src/dock.c:2106 +msgid "Dock Icon" +msgstr "°±¾a¹Ï¥Ü" + +#: ../src/dock.c:3053 ../src/dock.c:3057 +#, c-format +msgid "Could not execute command \"%s\"" +msgstr "µLªk°õ¦æ©R¥O \"%s\"" + +#: ../src/dockedapp.c:128 +#, c-format +msgid "could not find icon %s, used in a docked application" +msgstr "µLªk§ä¨ì¹Ï¥Ü %s¡A¥Î©ó°±¾aªºÀ³¥Îµ{¦¡" + +#: ../src/dockedapp.c:207 +#, c-format +msgid "Could not open specified icon file:%s" +msgstr "µLªk¶}±Ò«ü©wªº¹Ï¥ÜÀÉ:%s" + +#: ../src/dockedapp.c:293 +msgid "Start when WindowMaker is started" +msgstr "·í WindowMaker ±Ò°Ê®É±Ò°Ê" + +#: ../src/dockedapp.c:300 +msgid "Application path and arguments" +msgstr "À³¥Îµ{¦¡¸ô®|»P¤Þ¼Æ" + +#: ../src/dockedapp.c:311 +msgid "Command for files dropped with DND" +msgstr "DND ©ñ¸mÀɮתº©R¥O" + +#: ../src/dockedapp.c:323 +#, c-format +msgid "%d will be replaced with the file name" +msgstr "%d ·|³QÀɦW¨ú¥N" + +#: ../src/dockedapp.c:327 +msgid "DND support was not compiled in" +msgstr "¥¼½sĶ¤J DND ¤ä´©" + +#: ../src/dockedapp.c:333 +msgid "Icon Image" +msgstr "¹Ï¥Ü¼v¹³" + +#: ../src/dockedapp.c:345 ../src/winspector.c:1235 +msgid "Browse..." +msgstr "ÂsÄý..." + +#: ../src/dockedapp.c:390 +msgid "Docked Application Settings" +msgstr "°±¾aªºÀ³¥Îµ{¦¡³]©w" + +#: ../src/event.c:352 +msgid "stack overflow: too many dead processes" +msgstr "°ïÅ|·¸¦ì: ¤Ó¦h²×¤îªº¦æµ{" + +#: ../src/framewin.c:485 +#, c-format +msgid "could not render gradient: %s" +msgstr "µLªkªí²{º¥¼h: %s" + +#: ../src/framewin.c:501 ../src/framewin.c:516 ../src/framewin.c:527 +#: ../src/framewin.c:534 ../src/framewin.c:541 ../src/icon.c:296 +#: ../src/texture.c:578 +#, c-format +msgid "error rendering image:%s" +msgstr "ªí²{¼v¹³¿ù»~: %s" + +#: ../src/icon.c:182 ../src/wdefaults.c:411 +#, c-format +msgid "error loading image file \"%s\"" +msgstr "¸ü¤J¼v¹³ÀÉ¿ù»~ \"%s\"" + +#: ../src/icon.c:430 ../src/icon.c:439 +#, c-format +msgid "could not create directory %s" +msgstr "µLªk«Ø¥ß¥Ø¿ý %s" + +#: ../src/icon.c:706 +#, c-format +msgid "could not find default icon \"%s\"" +msgstr "µLªk¸ü¤J¹w³]¹Ï¥Ü \"%s\"" + +#: ../src/icon.c:712 +#, c-format +msgid "could not load default icon \"%s\":%s" +msgstr "µLªk¸ü¤J¹w³]¹Ï¥Ü \"%s\":%s" + +#: ../src/main.c:195 +msgid "could not exec window manager" +msgstr "µLªk°õ¦æµøµ¡ºÞ²z­û" + +#: ../src/main.c:196 +msgid "Restart failed!!!" +msgstr "­«·s±Ò°Ê¥¢±Ñ!!!" + +#: ../src/main.c:243 +#, c-format +msgid "%s aborted.\n" +msgstr "%s ©ñ±ó¡C\n" + +#: ../src/main.c:254 +#, c-format +msgid "Usage: %s [options]\n" +msgstr "¨Ï¥Îªk¡G %s [¿ï¶µ]\n" + +#: ../src/main.c:255 +msgid "The Window Maker window manager for the X window system" +msgstr "The Window Maker window manager for the X window system" + +#: ../src/main.c:257 +msgid " -display host:dpy\tdisplay to use" +msgstr " -display host:dpy\t­n¨Ï¥Îªº display" + +#: ../src/main.c:259 +msgid " --no-cpp \t\tdisable preprocessing of configuration files" +msgstr " --no-cpp \t\t¤£¹w¥ý³B²z³]©wÀÉ" + +#: ../src/main.c:261 +msgid " --no-dock\t\tdo not open the application Dock" +msgstr " --no-dock\t\t¤£­n¶}±Òµ{¦¡°±¾a°Ï" + +#: ../src/main.c:262 +msgid " --no-clip\t\tdo not open the workspace Clip" +msgstr " --no-clip\t\t¤£­n¶}±Ò¤u§@°Ï°j¯¾°w" + +#. +#. puts(_(" --locale locale locale to use")); +#. +#: ../src/main.c:266 +msgid " --visual-id visualid\tvisual id of visual to use" +msgstr " --visual-id visualid\t©Ò±ý¨Ï¥Îªº visual ¤§ visualid" + +#: ../src/main.c:267 +msgid " --static\t\tdo not update or save configurations" +msgstr " --static\t\t¤£­n§ó·s©ÎÀx¦s³]©wÀÉ" + +#: ../src/main.c:268 +msgid " --version\t\tprint version and exit" +msgstr " --version\t\t¦L¥Xª©¥»½s¸¹¨ÃÂ÷¶}" + +#: ../src/main.c:269 +msgid " --help\t\t\tshow this message" +msgstr " --help\t\t\tÅã¥Ü¥»»¡©ú°T®§" + +#: ../src/main.c:281 +#, c-format +msgid "" +"could not find user GNUstep directory (%s).\n" +"Make sure you have installed Window Maker correctly and run wmaker.inst" +msgstr "" +"µLªk§ä¨ì¨Ï¥ÎªÌ GNUstep ¥Ø¿ý (%s)¡C\n" +"½T©w±z¤w¸g¦w¸Ë WindowMaker ¥¿½T¥B°õ¦æ wmaker.inst" + +#: ../src/main.c:300 +#, c-format +msgid "%s:could not execute initialization script" +msgstr "%s: ±Ò©l¤â½ZµLªk°õ¦æ" + +#: ../src/main.c:317 +#, c-format +msgid "%s:could not execute exit script" +msgstr "%s: Â÷¶}¤â½ZµLªk°õ¦æ" + +#: ../src/main.c:378 ../src/main.c:385 ../src/main.c:393 ../src/main.c:409 +#, c-format +msgid "too few arguments for %s" +msgstr "%s ªº¤Þ¼Æ¤Ó¤Ö" + +#: ../src/main.c:397 +#, c-format +msgid "bad value for visualid: \"%s\"" +msgstr "visualid ªº­È¤£¥¿½T: \"%s\"" + +#: ../src/main.c:414 +#y, c-format +msgid "%s: invalid argument '%s'" +msgstr "%s: ±¶®| \"%s\" ªºÁäµL®Ä" + +#: ../src/main.c:415 +#, c-format +msgid "Try '%s --help' for more information" +msgstr "¸ÕµÛ¥Î '%s --help' ¨ÓÀò±o§ó¦h¸ê°T" + +#: ../src/main.c:458 +msgid "X server does not support locale" +msgstr "X ¦øªA¾¹¤£¤ä´© locale" + +#: ../src/main.c:461 +msgid "cannot set locale modifiers" +msgstr "µLªk³]©w locale" + +#: ../src/main.c:478 +#, c-format +msgid "could not open display \"%s\"" +msgstr "µLªk¶}±Ò display \"%s\"" + +#: ../src/menu.c:285 +msgid "wrealloc() failed while trying to add menu item" +msgstr "¹Á¸Õ¼W¥[¿ï³æ¶µ¥Ø®É wrealloc() ¥¢±Ñ" + +#: ../src/misc.c:71 +#, c-format +msgid "could not define value for %s for cpp" +msgstr "µLªk©w¸q cpp ªº %s ªº­È" + +#: ../src/misc.c:101 +#, c-format +msgid "could not get password entry for UID %i" +msgstr "µLªk¨ú±o UID %i ªº±K½X°O¿ý" + +#: ../src/misc.c:125 +#, c-format +msgid "your machine is misconfigured. HOSTNAME is set to %s" +msgstr "±zªº¾÷¾¹³]©w¿ù»~¡CHOSTNAME ³]¬° %s" + +#: ../src/misc.c:131 +#, c-format +msgid "your machine is misconfigured. HOST is set to %s" +msgstr "±zªº¾÷¾¹³]©w¿ù»~¡CHOST ³]¬° %s" + +#: ../src/misc.c:773 +msgid "selection timed-out" +msgstr "¿ï¨ú¹O®É" + +#: ../src/misc.c:789 +msgid "Program Arguments" +msgstr "µ{¦¡¤Þ¼Æ" + +#: ../src/misc.c:790 +msgid "Enter command arguments:" +msgstr "¿é¤J©R¥O¤Þ¼Æ:" + +#: ../src/misc.c:887 +msgid "unable to get dropped data from DND drop" +msgstr "µLªk±q DND ©ñ¸m¨ú±o©ñ¸m¸ê®Æ" + +#: ../src/misc.c:895 +msgid "error getting dropped data from DND drop" +msgstr "±q DND ©ñ¸m¨ú±o©ñ¸m¸ê®Æ¿ù»~" + +#: ../src/misc.c:901 +msgid "out of memory while getting data from DND drop" +msgstr "±q DND ©ñ¸m¨ú±o¸ê®Æ®É°O¾ÐÅ餣¨¬" + +#: ../src/misc.c:946 ../src/misc.c:1081 +#, c-format +msgid "out of memory during expansion of \"%s\"" +msgstr "®i¶} \"%s\" ®É°O¾ÐÅ餣¨¬" + +#: ../src/misc.c:1000 +msgid "out of memory during expansion of \"%w\"" +msgstr "®i¶} \"%w\" ®É°O¾ÐÅ餣¨¬" + +#: ../src/misc.c:1018 +# +msgid "out of memory during expansion of \"%W\"" +msgstr "®i¶} \"%W\" ®É°O¾ÐÅ餣¨¬" + +#: ../src/misc.c:1034 +msgid "out of memory during expansion of \"%a\"" +msgstr "®i¶} \"%a\" ®É°O¾ÐÅ餣¨¬" + +#: ../src/misc.c:1060 +#, c-format +msgid "out of memory during expansion of \"%d\"" +msgstr "®i¶} \"%d\" ®É°O¾ÐÅ餣¨¬" + +#: ../src/misc.c:1074 +msgid "selection not available" +msgstr "¿ï¨ú¤£¯à¨Ï¥Î" + +#: ../src/misc.c:1146 ../src/misc.c:1152 +#, c-format +msgid "bad window name value in %s state info" +msgstr "%s ª¬ºA¸ê°T¤¤¦³µL®Äªºµøµ¡¦WºÙ­È" + +#: ../src/misc.c:1406 +msgid "could not send message to background image helper" +msgstr "µLªk¶Ç°e°T®§¦Ü­I´º¼v¹³§U¤â" + +#: ../src/pixmap.c:235 +#, c-format +msgid "could not load mask bitmap file \"%s\". Won't use mask" +msgstr "µLªk¸ü¤J¾B¸n¦ì¤¸¬M¹³ÀÉ \"%s\"¡C¤£¨Ï¥Î¾B¸n" + +#: ../src/proplist.c:180 +msgid "unterminated string" +msgstr "¦r¦ê¥¼²×¤î" + +#: ../src/proplist.c:247 +msgid "unterminated array" +msgstr "°}¦C¥¼²×¤î" + +#: ../src/proplist.c:256 +msgid "missing , in array or unterminated array" +msgstr "¦b°}¦C¯Ê¤Ö , ©Î°}¦C¥¼²×¤î" + +#: ../src/proplist.c:267 +msgid "could not get array element" +msgstr "µLªk¨ú±o°}¦C¤¸¯À" + +#: ../src/proplist.c:297 +msgid "unterminated dictionary" +msgstr "¦rÂI¥¼²×¤î" + +#: ../src/proplist.c:315 +msgid "missing dictionary key" +msgstr "¯Ê¤Ö¦r¨åÁä" + +#: ../src/proplist.c:317 +msgid "missing dictionary entry key or unterminated dictionary" +msgstr "¯Ê¤Ö¦r¨å°O¿ýÁä©Î¦r¨å¥¼¤¤¤î" + +#: ../src/proplist.c:323 +msgid "error parsing dictionary key" +msgstr "¦r¨åÁä¸ÑªR¿ù»~" + +#: ../src/proplist.c:332 +msgid "missing = in dictionary entry" +msgstr "¦r¨å°O¿ý¤¤¯Ê¤Ö = " + +#: ../src/proplist.c:351 +msgid "missing ; in dictionary entry" +msgstr "¦r¨å°O¿ý¤¤¯Ê¤Ö ; " + +#: ../src/proplist.c:432 +msgid "was expecting a string, dictionary, data or array." +msgstr "­n¨D¦r¦ê¡A¦r¨å¡A¸ê®Æ©Î°}¦C¡C" + +#: ../src/proplist.c:434 +msgid "Comments are not allowed inside WindowMaker owned domain files." +msgstr "¦b WindowMaker ªº©w¸q°ìÀɤ¤¤£¤¹³\\µù¸Ñ¡C" + +#: ../src/proplist.c:453 +#, c-format +msgid "could not open domain file %s" +msgstr "µLªk¶}±Ò©w¸q°ìÀÉ %s" + +#: ../src/proplist.c:466 +msgid "extra data after end of file" +msgstr "ÀÉ®×µ²§ô«á¦³ÃB¥~¸ê®Æ" + +#: ../src/resources.c:71 +#, c-format +msgid "The following character sets are missing in %s:" +msgstr "%s ¤¤¤U¦C¦r¤¸¶°¯Ê¤Ö:" + +#: ../src/resources.c:76 +#, c-format +msgid "The string \"%s\" will be used in place" +msgstr "¦r¦ê \"%s\" ·|³Q¥Î¨Ó¨ú¥N" + +#: ../src/resources.c:78 +msgid "of any characters from those sets." +msgstr "¨º¨Ç¶°¦Xªº¥ô¦ó¦r¤¸¡C" + +#: ../src/resources.c:81 +#, c-format +msgid "could not create font set %s. Trying fixed" +msgstr "µLªk«Ø¥ß¦r«¬¶° %s¡C¸Õ¥Î fixed" + +#: ../src/resources.c:98 +#, c-format +msgid "could not load font %s. Trying fixed" +msgstr "µLªk¸ü¤J¦r«¬ %s¡C¸Õ¥Î fixed" + +#: ../src/resources.c:136 +#, c-format +msgid "could not parse color \"%s\"" +msgstr "µLªk¸ÑªR¦â±m \"%s\"" + +#: ../src/resources.c:140 +#, c-format +msgid "could not allocate color \"%s\"" +msgstr "µLªk°t¸m¦â±m \"%s\"" + +#: ../src/rootmenu.c:186 ../src/rootmenu.c:188 +msgid "Exit" +msgstr "Â÷¶}" + +#: ../src/rootmenu.c:187 +msgid "Exit window manager?" +msgstr "Â÷¶}µøµ¡ºÞ²z­û¡H" + +#: ../src/rootmenu.c:223 +msgid "Close X session" +msgstr "Ãö³¬ X µøµ¡¨t²Î" + +#: ../src/rootmenu.c:224 +msgid "" +"Close Window System session?\n" +"Kill might close applications with unsaved data." +msgstr "" +"Ãö³¬µøµ¡¨t²Î¡H\n" +"µ²§ô¥i¯àÃö³¬©|¥¼Àx¦s¸ê®ÆªºÀ³¥Îµ{¦¡¡C" + +#. +#. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); +#. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); +#. +#: ../src/rootmenu.c:226 ../src/winmenu.c:481 +msgid "Close" +msgstr "Ãö³¬" + +#: ../src/rootmenu.c:237 +msgid "Kill X session" +msgstr "µ²§ô X µøµ¡¨t²Î" + +#: ../src/rootmenu.c:238 +msgid "" +"Kill Window System session?\n" +"(all applications will be closed)" +msgstr "" +"µ²§ôµøµ¡¨t²Î¡H\n" +"¡]©Ò¦³À³¥Îµ{¦¡·|³QÃö³¬¡^" + +#: ../src/rootmenu.c:467 +#, c-format +msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" +msgstr "%s: Áä½L±¶®|³W®æ \"%s\" µL®Ä (%s)" + +#: ../src/rootmenu.c:475 +#, c-format +msgid "%s:invalid key in shortcut \"%s\" for entry %s" +msgstr "%s: ±¶®| \"%s\" ªºÁäµL®Ä (%s)" + +#: ../src/rootmenu.c:528 +#, c-format +msgid "%s: unmatched '\"' in menu file" +msgstr "%s: ¿ï³æÀɤ¤ '\"' ¤£¦¨¹ï" + +#: ../src/rootmenu.c:578 +#, c-format +msgid "%s: missing command" +msgstr "%s: ¯Ê¤Ö©R¥O" + +#: ../src/rootmenu.c:611 +#, c-format +msgid "invalid OPEN_MENU specification: %s" +msgstr "µL®Äªº OPEN_MENU ³W®æ: %s" + +#: ../src/rootmenu.c:684 +#, c-format +msgid "%s:could not stat menu" +msgstr "%s: µLªk stat ¿ï³æ" + +#: ../src/rootmenu.c:692 +#, c-format +msgid "%s:could not stat menu:%s" +msgstr "%s: µLªk stat ¿ï³æ: %s" + +#: ../src/rootmenu.c:710 +#, c-format +msgid "too many parameters in OPEN_MENU: %s" +msgstr "OPEN_MENU ¤¤¦³¤Ó¦h°Ñ¼Æ: %s" + +#: ../src/rootmenu.c:746 +msgid "" +"There are more than one WORKSPACE_MENU commands in the applications menu. " +"Only one is allowed." +msgstr "À³¥Îµ{¦¡¿ï³æ¤¤¦³¶W¹L¤@­Ó WORKSPACE_MENU ©R¥O¡C¥u¤¹³\\¦³¤@­Ó¡C" + +#: ../src/rootmenu.c:775 ../src/rootmenu.c:793 +#, c-format +msgid "%s:missing parameter for menu command \"%s\"" +msgstr "%s: ¿ï³æ©R¥O \"%s\" ¯Ê¤Ö°Ñ¼Æ" + +#: ../src/rootmenu.c:856 +#, c-format +msgid "%s:unknown command \"%s\" in menu config." +msgstr "%s: ¿ï³æ³]©w¤¤¦³¤£¦Wªº©R¥O \"%s\"¡C" + +#: ../src/rootmenu.c:864 +#, c-format +msgid "%s:can't add shortcut for entry \"%s\"" +msgstr "%s: µLªk¬° \"%s\" ¼W¥[±¶®|" + +#: ../src/rootmenu.c:1001 +#, c-format +msgid "%s:maximal line size exceeded in menu config: %s" +msgstr "%s: ¿ï³æÀɤ¤¶W¹L³Ì¤j¦æ¼Æ: %s" + +#: ../src/rootmenu.c:1023 ../src/rootmenu.c:1115 ../src/rootmenu.c:1216 +#, c-format +msgid "%s:missing command in menu config: %s" +msgstr "%s: ¿ï³æ³]©w¤¤¯Ê¤Ö©R¥O: %s" + +#: ../src/rootmenu.c:1053 +#, c-format +msgid "%s:syntax error in menu file:END declaration missing" +msgstr "%s: ¿ï³æÀɤ¤»yªk¿ù»~: ¯Ê¤Ö END «Å§i" + +#: ../src/rootmenu.c:1082 ../src/rootmenu.c:1181 +msgid "could not make arguments for menu file preprocessor" +msgstr "µLªk¬°¿ï³æÀɹw¥ý³B²z¾¹²£¥Í¤Þ¼Æ" + +#: ../src/rootmenu.c:1088 ../src/rootmenu.c:1188 +#, c-format +msgid "%s:could not open/preprocess menu file" +msgstr "%s: µLªk¶}±Ò/¹w¥ý³B²z¿ï³æÀÉ" + +#: ../src/rootmenu.c:1100 ../src/rootmenu.c:1201 +#, c-format +msgid "%s:could not open menu file" +msgstr "%s: µLªk¶}±Ò¿ï³æÀÉ" + +#: ../src/rootmenu.c:1127 +#, c-format +msgid "%s:invalid menu file. MENU command is missing" +msgstr "%s: µL®Äªº¿ï³æÀÉ¡C¯Ê¤Ö MENU ©R¥O" + +#: ../src/rootmenu.c:1136 +msgid "error reading preprocessed menu data" +msgstr "¹w¥ý³B²z¿ï³æ¸ê®ÆŪ¨ú¿ù»~" + +#: ../src/rootmenu.c:1228 +#, c-format +msgid "%s:no title given for the root menu" +msgstr "%s: ¨S¦³µ¹¥D¿ï³æ¼ÐÃD" + +#: ../src/rootmenu.c:1311 ../src/rootmenu.c:1378 ../src/rootmenu.c:1422 +#, c-format +msgid "out of memory while constructing directory menu %s" +msgstr "«Ø¥ß¥Ø¿ý¿ï³æ %s ®É°O¾ÐÅ餣¨¬" + +#: ../src/rootmenu.c:1321 +#, c-format +msgid "%s:could not stat file \"%s\" in menu directory" +msgstr "%s: µLªk stat ¿ï³æ¥Ø¿ý¤¤ÀÉ®× \"%s\"" + +#: ../src/rootmenu.c:1476 +msgid "Commands" +msgstr "©R¥O" + +#: ../src/rootmenu.c:1479 +msgid "Restart" +msgstr "­«·s±Ò°Ê" + +#: ../src/rootmenu.c:1480 +msgid "Exit..." +msgstr "Â÷¶}..." + +#: ../src/rootmenu.c:1553 +#, c-format +msgid "could not find menu file \"%s\" referenced in WMRootMenu" +msgstr "µLªk§ä¨ì WMRootMenu °Ñ·Óªº¿ï³æÀÉ \"%s\"" + +#: ../src/rootmenu.c:1560 +#, c-format +msgid "could not access menu \"%s\" referenced in WMRootMenu" +msgstr "µLªk¦s¨ú WMRootMenu °Ñ·Óªº¿ï³æÀÉ \"%s\"" + +#: ../src/rootmenu.c:1571 +#, c-format +msgid "" +"using default menu file \"%s\" as the menu referenced in WMRootMenu could " +"not be found " +msgstr "µLªk§ä¨ì WMRootMenu °Ñ·Óªº¿ï³æ¡A¨Ï¥Î¹w³]¿ï³æÀÉ \"%s\"" + +#: ../src/rootmenu.c:1594 ../src/rootmenu.c:1670 +#, c-format +msgid "%s:format error in root menu configuration \"%s\"" +msgstr "%s: ¥D¿ï³æ³]©w¤¤®æ¦¡¿ù»~ \"%s\"" + +#: ../src/screen.c:428 +msgid "could not load logo image for panels" +msgstr "µLªk¸ü¤J­±ªOªº¼ÐÃѼv¹³" + +#: ../src/screen.c:431 +#, c-format +msgid "error making logo image for panel:%s" +msgstr "­±ªOªº¼ÐÃѼv¹³²£¥Í¿ù»~: %s" + +#: ../src/screen.c:695 +#, c-format +msgid "could not initialize graphics library context: %s" +msgstr "µLªk±Ò©l¹Ï§Î¨ç¦¡®wÃö³s: %s" + +#: ../src/screen.c:727 +msgid "could not do initialization of WINGs widget set" +msgstr "µLªk±Ò©l WINGs widget set" + +#: ../src/screen.c:1059 +#, c-format +msgid "could not save session state in %s" +msgstr "µLªk¦b %s Àx¦s¶¥¬qª¬ºA" + +#: ../src/session.c:182 ../src/wdefaults.c:559 ../src/winspector.c:345 +#, c-format +msgid "can't convert \"%s\" to boolean" +msgstr "µLªkÂà´« \"%s\" ¦Ü boolean" + +#: ../src/session.c:875 ../src/session.c:969 +msgid "end of memory while saving session state" +msgstr "Àx¦s¶¥¬qª¬ºA®É°O¾ÐÅ餣¨¬" + +#. This is not fatal but can mean the session manager exited. +#. * If the session manager exited normally we would get a +#. * Die message, so this probably means an abnormal exit. +#. * If the sm was the last client of session, then we'll die +#. * anyway, otherwise we can continue doing our stuff. +#. +#: ../src/session.c:1103 +msgid "connection to the session manager was lost" +msgstr "¿ò¥¢¦Ü¶¥¬qºÞ²z­ûªº³sµ²" + +#: ../src/stacking.c:72 +msgid "could not get window list!!" +msgstr "µLªk±o¨ìµøµ¡²M³æ!!" + +#: ../src/startup.c:195 +#, c-format +msgid "internal X error: %s\n" +msgstr "X ¤º³¡¿ù»~: %s\n" + +#: ../src/startup.c:258 +#, c-format +msgid "got signal %i (%s) - restarting\n" +msgstr "¦¬¨ì«H¸¹ %i (%s) - ­«·s±Ò°Ê\n" + +#: ../src/startup.c:260 +#, c-format +msgid "got signal %i - restarting\n" +msgstr "¦¬¨ì«H¸¹ %i - ­«·s±Ò°Ê\n" + +#: ../src/startup.c:275 +#, c-format +msgid "got signal %i (%s) - exiting...\n" +msgstr "¦¬¨ì«H¸¹ %i (%s) - ­«·s±Ò°Ê...\n" + +#: ../src/startup.c:277 +#, c-format +msgid "got signal %i - exiting...\n" +msgstr "¦¬¨ì«H¸¹ %i - ­«·s±Ò°Ê...\n" + +#: ../src/startup.c:290 +#, c-format +msgid "got signal %i (%s)\n" +msgstr "¦¬¨ì«H¸¹ %i (%s)\n" + +#: ../src/startup.c:292 +#, c-format +msgid "got signal %i\n" +msgstr "¦¬¨ì«H¸¹ %i\n" + +#: ../src/startup.c:298 +msgid "" +"crashed while trying to do some post-crash cleanup. Aborting immediatelly." +msgstr "¹Á¸Õ±Y¼ì«á²M°£³B²z®É±Y¼ì¡Cª½±µ©ñ±ó¡C" + +#: ../src/startup.c:309 +msgid "" +"a fatal error has occured, probably due to a bug. Please fill the included " +"BUGFORM and report it." +msgstr "µo¥ÍÄY­«¿ù»~¡A¥i¯à¦]¬°µ{¦¡¿ù»~¡C½Ð¶ñ¼g BUGFORM ¨Ã´£¥X³ø§i¡C" + +#. restart another window manager so that the X session doesn't +#. * go to space +#: ../src/startup.c:316 +msgid "trying to start alternative window manager..." +msgstr "¹Á¸Õ±Ò°Ê¥t¤@®Mµøµ¡ºÞ²z­û..." + +#: ../src/startup.c:719 +#, c-format +msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" +msgstr "¹Ï¥Ü¤j¤p³]¬° %i ¤Ó¤p¡C§ï¥Î 16\n" + +#: ../src/startup.c:763 +msgid "it seems that there already is a window manager running" +msgstr "¦ü¥G¤w¸g¦³µøµ¡ºÞ²z­û¦b°õ¦æ¤¤" + +#: ../src/startup.c:769 +#, c-format +msgid "could not manage screen %i" +msgstr "µLªkºÞ²z¿Ã¹õ %i" + +#: ../src/startup.c:829 +msgid "could not manage any screen" +msgstr "µLªkºÞ²z¥ô¦ó¿Ã¹õ" + +#: ../src/switchmenu.c:114 +msgid "Windows" +msgstr "µøµ¡" + +#: ../src/texture.c:274 ../src/texture.c:318 +#, c-format +msgid "image file \"%s\" used as texture could not be found." +msgstr "§ä¤£¨ì§@¬°§÷½èªº¼v¹³ÀÉ \"%s\"" + +#: ../src/texture.c:280 ../src/texture.c:324 +#, c-format +msgid "could not load texture pixmap \"%s\":%s" +msgstr "µLªk¸ü¤J§÷½è¹Ï¹³ \"%s\":%s" + +#: ../src/texture.c:463 ../src/texture.c:574 +#, c-format +msgid "could not render texture: %s" +msgstr "µLªkªí²{§÷½è: %s" + +#: ../src/wdefaults.c:405 +#, c-format +msgid "could not find icon file \"%s\"" +msgstr "µLªk§ä¨ì¹Ï¥ÜÀÉ \"%s\"" + +#: ../src/window.c:2377 ../src/window.c:2509 +msgid "" +"the NumLock, ScrollLock or similar key seems to be turned on.\n" +"Turn it off or some mouse actions and keyboard shortcuts will not work." +msgstr "" +"NumLock, ScrollLock ©ÎÃþ¦üªºÁä¦ü¥G³Q¥´¶}¡C\n" +"Ãö³¬¥¦§_«h¤@¨Ç·Æ¹«°Ê§@»PÁä½L???·|µLªk§@¥Î¡C" + +#: ../src/winmenu.c:249 ../src/winmenu.c:257 +msgid "Set Shortcut" +msgstr "³]©w±¶®|" + +#: ../src/winmenu.c:333 ../src/winmenu.c:379 +msgid "could not create submenu for window menu" +msgstr "µLªk¬°µøµ¡¿ï³æ«Ø¥ß°Æ¿ï³æ" + +#: ../src/winmenu.c:388 +msgid "Keep at bottom" +msgstr "«O«ù¦b³Ì¤U¼h" + +#: ../src/winmenu.c:393 ../src/winspector.c:1141 +msgid "Omnipresent" +msgstr "µL©Ò¤£¦b" + +#. +#. * Warning: If you make some change that affects the order of the +#. * entries, you must update the command #defines in the top of +#. * this file. +#. +#: ../src/winmenu.c:416 ../src/winmenu.c:551 +msgid "Maximize" +msgstr "³Ì¤j¤Æ" + +#: ../src/winmenu.c:424 ../src/winmenu.c:537 +msgid "Miniaturize" +msgstr "³Ì¤p¤Æ" + +#: ../src/winmenu.c:433 ../src/winmenu.c:565 +msgid "Shade" +msgstr "¾B½ª" + +#: ../src/winmenu.c:449 +msgid "Resize/Move" +msgstr "¤j¤pÅܧó/²¾°Ê" + +#: ../src/winmenu.c:457 +msgid "Select" +msgstr "¿ï¨ú" + +#: ../src/winmenu.c:465 +msgid "Move To" +msgstr "²¾¦Ü" + +#: ../src/winmenu.c:470 +msgid "Attributes..." +msgstr "ÄÝ©Ê..." + +#: ../src/winmenu.c:472 +msgid "Options" +msgstr "¿ï¶µ" + +#: ../src/winmenu.c:532 +msgid "Deminiaturize" +msgstr "¨ú®ø³Ì¤p¤Æ" + +#: ../src/winmenu.c:546 +msgid "Unmaximize" +msgstr "¨ú®ø³Ì¤j¤Æ" + +#: ../src/winmenu.c:560 +msgid "Unshade" +msgstr "¨ú®ø¾B½ª" + +#: ../src/winspector.c:279 +#, c-format +msgid "Could not find icon \"%s\" specified for this window" +msgstr "µLªk§ä¨ì«ü©wµ¹³o­Óµøµ¡ªº¹Ï¥Ü \"%s\"" + +#: ../src/winspector.c:295 +#, c-format +msgid "Could not open specified icon \"%s\":%s" +msgstr "µLªk¶}±Ò«ü©wªº¹Ï¥Ü \"%s\":%s" + +#: ../src/winspector.c:1016 +msgid "Save" +msgstr "Àx¦s" + +#: ../src/winspector.c:1024 +msgid "Apply" +msgstr "®M¥Î" + +#: ../src/winspector.c:1030 +msgid "Reload" +msgstr "ÁÙ­ì" + +#: ../src/winspector.c:1039 ../src/winspector.c:1049 +msgid "Window Specification" +msgstr "µøµ¡³W®æ" + +#: ../src/winspector.c:1040 +msgid "Window Attributes" +msgstr "µøµ¡ÄÝ©Ê" + +#: ../src/winspector.c:1041 +msgid "Advanced Options" +msgstr "¶i¶¥¿ï¶µ" + +#: ../src/winspector.c:1042 +msgid "Icon and Initial Workspace" +msgstr "¹Ï¥Ü»P±Ò©l¤u§@°Ï" + +#: ../src/winspector.c:1043 +msgid "Application Specific" +msgstr "À³¥Îµ{¥Ü¯S©w" + +#: ../src/winspector.c:1057 +msgid "Defaults for all windows" +msgstr "©Ò¦³µøµ¡¹w³]­È" + +#: ../src/winspector.c:1100 +msgid "" +"The configuration will apply to all\n" +"windows that have their WM_CLASS property set to the above selected\n" +"name, when saved." +msgstr "" +"Àx¦s®É¡A³]©w­È·|®M¥Î¦Ü©Ò¦³\n" +"WM_CLASS ¯S©Ê³]¬°¥H¤W¿ï¨ú¦WºÙªºµøµ¡¡C" + +#: ../src/winspector.c:1107 +msgid "Attributes" +msgstr "ÄÝ©Ê" + +#: ../src/winspector.c:1117 +msgid "Disable titlebar" +msgstr "¨Ï¡u¼ÐÃD¦C¡v¥¢®Ä" + +#: ../src/winspector.c:1121 +msgid "Disable resizebar" +msgstr "¨Ï¡u¤j¤pÅܧó¦C¡v¥¢®Ä" + +#: ../src/winspector.c:1125 +msgid "Disable close button" +msgstr "¨Ï¡uÃö³¬«ö¶s¡v¥¢®Ä" + +#: ../src/winspector.c:1129 +msgid "Disable miniaturize button" +msgstr "¨Ï¡u³Ì¤p¤Æ«ö¶s¡v¥¢®Ä" + +#: ../src/winspector.c:1133 +msgid "Keep on top / floating" +msgstr "«O«ù¦b³Ì¤W¼h / º}¯B" + +#: ../src/winspector.c:1137 +msgid "Keep at bottom / sunken" +msgstr "«O«ù¦b³Ì¤U¼h / ¤U¨I" + +#: ../src/winspector.c:1145 +msgid "Start Miniaturized" +msgstr "±Ò°Ê®É³Ì¤p¤Æ" + +#: ../src/winspector.c:1149 +msgid "Start Maximized" +msgstr "±Ò°Ê®É³Ì¤j¤Æ" + +#: ../src/winspector.c:1153 +msgid "Skip window list" +msgstr "²¤¹Lµøµ¡²M³æ" + +#: ../src/winspector.c:1167 +msgid "Advanced" +msgstr "¶i¶¥" + +#: ../src/winspector.c:1177 +msgid "Ignore HideOthers" +msgstr "©¿²¤¡uÁôÂèä¥L¡v" + +#: ../src/winspector.c:1181 +msgid "Don't bind keyboard shortcuts" +msgstr "¤£­nµ²¦XÁä½L±¶®|" + +#: ../src/winspector.c:1185 +msgid "Don't bind mouse clicks" +msgstr "¤£­nµ²¦X·Æ¹««öÁä" + +#: ../src/winspector.c:1189 +msgid "Keep inside screen" +msgstr "«O«ù¦b¿Ã¹õ¤º" + +#: ../src/winspector.c:1193 +msgid "Don't let it take focus" +msgstr "¤£­nÅý¥¦¨ú±oµJÂI" + +#: ../src/winspector.c:1197 +msgid "Don't Save Session" +msgstr "¤£­nÀx¦sª¬ºA" + +#: ../src/winspector.c:1201 +msgid "Emulate Application Icon" +msgstr "¼ÒÀÀÀ³¥Îµ{¦¡¹Ï¥Ü" + +#: ../src/winspector.c:1216 +msgid "" +"Enable the \"Don't bind...\" options to allow the application to receive all " +"mouse or keyboard events." +msgstr "" +"±Ò°Ê \"¤£­nµ²¦X...\" ¿ï¶µ\n" +"¤¹³\\À³¥Îµ{¦¡±µ¨ü©Ò¦³·Æ¹«©ÎÁä½L¨Æ¥ó¡C" + +#: ../src/winspector.c:1223 +msgid "Miniwindow Image" +msgstr "°g§Aµøµ¡¼v¹³" + +#: ../src/winspector.c:1242 +msgid "Update" +msgstr "§ó·s" + +#: ../src/winspector.c:1257 +msgid "Icon file name:" +msgstr "¹Ï¥ÜÀɦW:" + +#: ../src/winspector.c:1269 +msgid "Ignore client supplied icon" +msgstr "©¿²¤µ{¦¡´£¨Ñªº¹Ï¥Ü" + +#: ../src/winspector.c:1276 +msgid "Initial Workspace" +msgstr "±Ò©l¤u§@°Ï" + +#: ../src/winspector.c:1281 +msgid "Nowhere in particular" +msgstr "µL¯S§O«ü©w" + +#: ../src/winspector.c:1315 +msgid "Application Wide" +msgstr "¾ã­ÓÀ³¥Îµ{¦¡" + +#: ../src/winspector.c:1325 +msgid "Start Hidden" +msgstr "±Ò°Ê®ÉÁôÂÃ" + +#: ../src/winspector.c:1329 +msgid "No application icon" +msgstr "µLÀ³¥Îµ{¦¡¹Ï¥Ü" + +#: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:480 +#, c-format +msgid "Workspace %i" +msgstr "¤u§@°Ï %i" + +#: ../src/workspace.c:537 +msgid "Workspaces" +msgstr "¤u§@°Ï" + +#: ../src/workspace.c:539 +msgid "could not create Workspace menu" +msgstr "µLªk«Ø¥ß¤u§@°Ï¿ï³æ" + +#: ../src/workspace.c:546 +msgid "New" +msgstr "·s¼W¤u§@°Ï" + +#: ../src/workspace.c:547 +msgid "Destroy Last" +msgstr "§R°£³Ì«áªº¤u§@°Ï" + +#: ../src/xutil.c:228 +msgid "invalid data in selection" +msgstr "¿ï¨úªº¸ê®ÆµL®Ä" + +#~ msgid "Keep Clip On Top" +#~ msgstr "«O«ù°j¯¾°w¦b³Ì¤W¼h" + +# ?? +#~ msgid "Keep Dock On Top" +#~ msgstr "«O«ù°±¾a°Ï¦b³Ì¤W¼h" + +#~ msgid "(Un)Hide" +#~ msgstr "ÁôÂá]ÁÙ­ì¡^" + +#~ msgid "" +#~ "Close Window System session?\n" +#~ "(all applications will be closed)" +#~ msgstr "" +#~ "Ãö³¬µøµ¡¨t²Î¡H\n" +#~ "¡]©Ò¦³À³¥Îµ{¦¡·|³QÃö³¬¡^" + +#~ msgid "%s: Received signal SIGTERM. Exiting..." +#~ msgstr "%s: ¦¬¨ì SIGTERM «H¸¹¡CÂ÷¶}..." + +#~ msgid "(Un)Maximize" +#~ msgstr "³Ì¤j¤Æ¡]ÁÙ­ì¡^" + +#~ msgid "(Un)Shade" +#~ msgstr "¾B½ª¡]ÁÙ­ì¡^" + +# ?? +#~ msgid "Hide Others" +#~ msgstr "ÁôÂèä¥Lµøµ¡" + +#~ msgid "Revert" +#~ msgstr "ÁÙ­ì" diff --git a/src/Makefile.am b/src/Makefile.am index 19434ec0..b3cb8ed0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,6 +6,7 @@ bin_PROGRAMS = wmaker EXTRA_DIST = wmnotify.c wmnotdef.h wmnotify.h + wmaker_SOURCES = \ GNUstep.h \ WindowMaker.h \ @@ -98,23 +99,21 @@ wmaker_SOURCES = \ text.h -CPPFLAGS = @CPPFLAGS@ @DFLAGS@ - +CPPFLAGS = @CPPFLAGS@ @DFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\" + INCLUDES = \ -I$(top_srcdir)/wrlib \ - -I$(top_srcdir)/WINGs @XCFLAGS@ + -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ wmaker_LDADD = \ $(top_builddir)/WINGs/libWINGs.a\ $(top_builddir)/wrlib/libwraster.la\ + @LIBRARY_SEARCH_PATH@ \ @LIBPL@ \ - @GFXLFLAGS@ \ - @XLFLAGS@ \ @GFXLIBS@ \ @XLIBS@ \ - @X_EXTRA_LIBS@ \ @INTLIBS@ \ -lm diff --git a/src/Makefile.in b/src/Makefile.in index def25ecb..f47d4b93 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -98,12 +98,12 @@ EXTRA_DIST = wmnotify.c wmnotdef.h wmnotify.h wmaker_SOURCES = GNUstep.h WindowMaker.h actions.c actions.h appicon.c appicon.h application.c application.h appmenu.c appmenu.h balloon.c balloon.h client.c client.h colormap.c def_pixmaps.h defaults.c defaults.h dialog.c dialog.h dock.c dockedapp.c dock.h event.c framewin.c framewin.h gnome.c gnome.h funcs.h icon.c icon.h keybind.h kwm.h kwm.c list.c list.h main.c menu.c menu.h misc.c motif.c motif.h moveres.c openlook.c openlook.h pixmap.c pixmap.h placement.c properties.c properties.h proplist.c resources.c resources.h rootmenu.c screen.c screen.h session.h session.c shutdown.c stacking.c stacking.h startup.c superfluous.c superfluous.h switchmenu.c texture.c texture.h xde.h xde.c xmodifier.h xmodifier.c xutil.c xutil.h wconfig.h wcore.c wcore.h wdefaults.c wdefaults.h window.c window.h winmenu.c winspector.h winspector.c workspace.c workspace.h wmsound.c wmsound.h text.c text.h -CPPFLAGS = @CPPFLAGS@ @DFLAGS@ +CPPFLAGS = @CPPFLAGS@ @DFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\" -INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @XCFLAGS@ +INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@ -wmaker_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBPL@ @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ @X_EXTRA_LIBS@ @INTLIBS@ -lm +wmaker_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @LIBPL@ @GFXLIBS@ @XLIBS@ @INTLIBS@ -lm mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h diff --git a/src/WindowMaker.h b/src/WindowMaker.h index 75337542..15a2b9ce 100644 --- a/src/WindowMaker.h +++ b/src/WindowMaker.h @@ -320,7 +320,10 @@ typedef struct WPreferences { char window_balloon; char miniwin_balloon; char appicon_balloon; - +#ifdef WEENDOZE_CYCLE + char windoze_cycling; /* Windoze 95 style Alt+Tabbing */ + char popup_switchmenu; /* Popup the switchmenu when Alt+Tabbing */ +#endif /* WEENDOZE_CYCLE */ /* some constants */ int dblclick_time; /* double click delay time in ms */ @@ -332,9 +335,9 @@ typedef struct WPreferences { /* shading animation */ char shade_speed; - + int edge_resistance; - + struct { unsigned int nodock:1; /* don't display the dock */ unsigned int noclip:1; /* don't display the clip */ diff --git a/src/actions.c b/src/actions.c index e7132aff..d889e047 100644 --- a/src/actions.c +++ b/src/actions.c @@ -70,6 +70,7 @@ extern WPreferences wPreferences; extern Atom _XA_WM_TAKE_FOCUS; + /******* Local Variables *******/ static struct { int steps; @@ -133,7 +134,6 @@ void wSetFocusTo(WScreen *scr, WWindow *wwin) { WWindow *focused=scr->focused_window; - WWindow *owner = NULL; int timestamp=LastTimestamp; WApplication *oapp=NULL, *napp=NULL; int wasfocused; @@ -149,9 +149,9 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) timestamp = CurrentTime; if (focused) - oapp = wApplicationOf(focused->main_window); + oapp = wApplicationOf(focused->main_window); - if (wwin==NULL) { + if (wwin == NULL) { XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp); if (focused) { wWindowUnfocus(focused); @@ -174,11 +174,8 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) /* remember last workspace where the app has been */ if (napp) napp->last_workspace = wwin->screen_ptr->current_workspace; - - if (WFLAGP(wwin, no_focusable)) - return; - if (wwin->flags.mapped) { + if (wwin->flags.mapped && !WFLAGP(wwin, no_focusable)) { /* install colormap if colormap mode is lock mode */ if (wPreferences.colormap_mode==WKF_CLICK) wColormapInstallForWindow(scr, wwin); @@ -206,35 +203,17 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp); } + if (WFLAGP(wwin, no_focusable)) + return; + /* if this is not the focused window focus it */ if (focused!=wwin) { - int foo=0; - - if (wwin->client_win == focused->transient_for) - wwin->flags.semi_focused = 0; - else if (wwin->transient_for == focused->client_win) - focused->flags.semi_focused = 1; - - if (wwin->transient_for - && wwin->transient_for == focused->transient_for) { - owner = wWindowFor(wwin->transient_for); - if (owner && owner->flags.semi_focused) { - foo=1; - /* this is to override the unfocusing of the mainwindow - * in the next wWindowUnfocus() and avoid flickering */ - owner->flags.semi_focused = 0; - } - } - /* unfocus previous window */ - wWindowUnfocus(focused); - if (foo) { - owner->flags.semi_focused = 1; - } /* change the focus window list order */ if (wwin->prev) - wwin->prev->next=wwin->next; + wwin->prev->next = wwin->next; + if (wwin->next) - wwin->next->prev=wwin->prev; + wwin->next->prev = wwin->prev; wwin->prev = focused; focused->next = wwin; @@ -248,12 +227,9 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) #endif } } - if ((owner=wWindowFor(wwin->transient_for)) - && !owner->flags.semi_focused) { - owner->flags.semi_focused = 1; - wWindowUnfocus(owner); - } - wWindowFocus(wwin); + + wWindowFocus(wwin, focused); + if (napp && !wasfocused) { wAppMenuMap(napp->menu, wwin); #ifdef NEWAPPICON @@ -271,7 +247,6 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) void wShadeWindow(WWindow *wwin) { - XWindowAttributes attribs; time_t time0 = time(NULL); #ifdef ANIMATIONS int y, s, w, h; @@ -314,13 +289,12 @@ wShadeWindow(WWindow *wwin) wwin->flags.skip_next_animation = 0; wwin->flags.shaded = 1; - wwin->flags.mapped=0; - XGetWindowAttributes(dpy, wwin->client_win, &attribs); + wwin->flags.mapped = 0; /* prevent window withdrawal when getting UnmapNotify */ XSelectInput(dpy, wwin->client_win, - attribs.your_event_mask & ~StructureNotifyMask); + wwin->event_mask & ~StructureNotifyMask); XUnmapWindow(dpy, wwin->client_win); - XSelectInput(dpy, wwin->client_win, attribs.your_event_mask); + XSelectInput(dpy, wwin->client_win, wwin->event_mask); /* for the client it's just like iconification */ wFrameWindowResize(wwin->frame, wwin->frame->core->width, @@ -438,6 +412,10 @@ wMaximizeWindow(WWindow *wwin, int directions) int new_width, new_height, new_x, new_y; WArea usableArea = wwin->screen_ptr->totalUsableArea; + + if (WFLAGP(wwin, no_resizable)) + return; + if (wwin->flags.shaded) { wwin->flags.skip_next_animation = 1; wUnshadeWindow(wwin); @@ -769,7 +747,6 @@ static void unmapTransientsFor(WWindow *wwin) { WWindow *tmp; - XWindowAttributes attribs; tmp = wwin->screen_ptr->focused_window; @@ -779,8 +756,7 @@ unmapTransientsFor(WWindow *wwin) && (tmp->flags.mapped || wwin->screen_ptr->flags.startup || tmp->flags.shaded)) { unmapTransientsFor(tmp); - XGetWindowAttributes(dpy, tmp->client_win, &attribs); - tmp->flags.miniaturized=1; + tmp->flags.miniaturized = 1; if (!tmp->flags.shaded) { wWindowUnmap(tmp); } else { @@ -842,7 +818,7 @@ mapTransientsFor(WWindow *wwin) } } - +#if 0 static void setupIconGrabs(WIcon *icon) { @@ -855,7 +831,7 @@ setupIconGrabs(WIcon *icon) ButtonPressMask, GrabModeSync, GrabModeAsync, None, None); XSync(dpy, 0); } - +#endif static WWindow* recursiveTransientFor(WWindow *wwin) @@ -881,7 +857,7 @@ recursiveTransientFor(WWindow *wwin) return wwin; } - +#if 0 static void removeIconGrabs(WIcon *icon) { @@ -891,7 +867,7 @@ removeIconGrabs(WIcon *icon) XUngrabButton(dpy, Button3, AnyModifier, icon->core->window); XSync(dpy, 0); } - +#endif void wIconifyWindow(WWindow *wwin) @@ -932,8 +908,8 @@ wIconifyWindow(WWindow *wwin) } wwin->icon = wIconCreate(wwin); - wwin->flags.miniaturized=1; - wwin->flags.mapped=0; + wwin->flags.miniaturized = 1; + wwin->flags.mapped = 0; /* unmap transients */ @@ -1148,7 +1124,7 @@ hideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate) wwin->flags.hidden = 1; wWindowUnmap(wwin); - + wClientSetState(wwin, IconicState, icon->icon_win); flushExpose(); #ifdef WMSOUND @@ -1170,7 +1146,6 @@ hideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate) #endif UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE); - } @@ -1656,7 +1631,7 @@ wArrangeIcons(WScreen *scr, Bool arrangeAll) wwin = wwin->prev; while (wwin) { - if (wwin->icon && wwin->flags.miniaturized && !wwin->flags.hidden && + if (wwin->icon && wwin->flags.miniaturized &&/*!wwin->flags.hidden &&*/ (wwin->frame->workspace==scr->current_workspace || IS_OMNIPRESENT(wwin) || wPreferences.sticky_icons)) { @@ -1675,10 +1650,12 @@ wArrangeIcons(WScreen *scr, Bool arrangeAll) } wwin->icon_x = X; wwin->icon_y = Y; - wwin->flags.icon_moved = 0; pi++; } } + if (arrangeAll) { + wwin->flags.icon_moved = 0; + } /* we reversed the order, so we use next */ wwin = wwin->next; if (pi >= pf) { @@ -1715,7 +1692,11 @@ wMakeWindowVisible(WWindow *wwin) wUnshadeWindow(wwin); } if (wwin->flags.hidden) { - wUnhideApplication(wApplicationOf(wwin->main_window), False, False); + WApplication *app; + + app = wApplicationOf(wwin->main_window); + if (app) + wUnhideApplication(app, False, False); } else if (wwin->flags.miniaturized) { wDeiconifyWindow(wwin); } else { diff --git a/src/client.c b/src/client.c index f2eda11d..f8f35ee0 100644 --- a/src/client.c +++ b/src/client.c @@ -87,12 +87,9 @@ wClientRestore(WWindow *wwin) if (gy > 0) wwin->frame_y += (wwin->frame->top_width + wwin->frame->bottom_width); #endif - XUnmapWindow(dpy, wwin->client_win); XSetWindowBorderWidth(dpy, wwin->client_win, wwin->old_border_width); XReparentWindow(dpy, wwin->client_win, wwin->screen_ptr->root_win, wwin->frame_x, wwin->frame_y); - if (wwin->flags.mapped) - XMapWindow(dpy, wwin->client_win); /* don't let the window get iconified after restart */ /* @@ -747,7 +744,7 @@ GetColormapWindows(WWindow *wwin) wwin->cmap_window_no = 0; if (XGetWMColormapWindows(dpy, wwin->client_win, &(wwin->cmap_windows), - &(wwin->cmap_window_no))!=Success + &(wwin->cmap_window_no))==0 || !wwin->cmap_windows) { wwin->cmap_window_no = 0; wwin->cmap_windows = NULL; diff --git a/src/config.h b/src/config.h index 07654b9c..36b1fa1a 100644 --- a/src/config.h +++ b/src/config.h @@ -26,18 +26,12 @@ /* Define if you have the vprintf function. */ #define HAVE_VPRINTF 1 -/* Define to `int' if doesn't define. */ -/* #undef pid_t */ - /* Define if you need to in order for stat and other things to work. */ /* #undef _POSIX_SOURCE */ /* Define as the return type of signal handlers (int or void). */ #define RETSIGTYPE void -/* Define to `unsigned' if doesn't define. */ -/* #undef size_t */ - /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. @@ -47,9 +41,6 @@ */ /* #undef STACK_DIRECTION */ -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - /* Define if `sys_siglist' is declared by . */ #define SYS_SIGLIST_DECLARED 1 @@ -62,10 +53,6 @@ /* define to the path to cpp */ #define CPP_PATH "/lib/cpp" -/* define to the directory containing NLS information - * set by configure */ -#define NLSDIR "/usr/local/lib/locale" - /* define if you want GNOME stuff support */ /* #undef GNOME_STUFF */ @@ -130,10 +117,14 @@ * set by configure */ #define X_LOCALE 1 -/* the place where the configuration is stored +/* the place where shared data is stored * defined by configure */ #define PKGDATADIR "/usr/local/share/WindowMaker" +/* the place where the configuration is stored + * defined by configure */ +#define SYSCONFDIR "/usr/local/etc/WindowMaker" + /* Define if you have the atexit function. */ #define HAVE_ATEXIT 1 @@ -153,7 +144,7 @@ #define HAVE_STRERROR 1 /* Define if you have the strncasecmp function. */ -/* #undef HAVE_STRNCASECMP */ +#define HAVE_STRNCASECMP 1 /* Define if you have the header file. */ #define HAVE_FCNTL_H 1 @@ -183,5 +174,5 @@ #define PACKAGE "WindowMaker" /* Version number of package */ -#define VERSION "0.51.0" +#define VERSION "0.51.1" diff --git a/src/config.h.in b/src/config.h.in index 32bf7d7a..0aea7318 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -25,18 +25,12 @@ /* Define if you have the vprintf function. */ #undef HAVE_VPRINTF -/* Define to `int' if doesn't define. */ -#undef pid_t - /* Define if you need to in order for stat and other things to work. */ #undef _POSIX_SOURCE /* Define as the return type of signal handlers (int or void). */ #undef RETSIGTYPE -/* Define to `unsigned' if doesn't define. */ -#undef size_t - /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. @@ -46,9 +40,6 @@ */ #undef STACK_DIRECTION -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - /* Define if `sys_siglist' is declared by . */ #undef SYS_SIGLIST_DECLARED @@ -61,10 +52,6 @@ /* define to the path to cpp */ #undef CPP_PATH -/* define to the directory containing NLS information - * set by configure */ -#undef NLSDIR - /* define if you want GNOME stuff support */ #undef GNOME_STUFF @@ -129,10 +116,14 @@ * set by configure */ #undef X_LOCALE -/* the place where the configuration is stored +/* the place where shared data is stored * defined by configure */ #undef PKGDATADIR +/* the place where the configuration is stored + * defined by configure */ +#undef SYSCONFDIR + /* Define if you have the atexit function. */ #undef HAVE_ATEXIT diff --git a/src/defaults.c b/src/defaults.c index d535d4c5..e978b035 100644 --- a/src/defaults.c +++ b/src/defaults.c @@ -94,7 +94,7 @@ typedef struct { int (*convert)(); int (*update)(); proplist_t plkey; - proplist_t plvalue; + proplist_t plvalue; /* default value */ } WDefaultEntry; @@ -394,9 +394,6 @@ WDefaultEntry optionList[] = { {"DontLinkWorkspaces","NO", NULL, &wPreferences.no_autowrap, getBool, NULL }, - {"EdgeResistance", "0", NULL, - &wPreferences.edge_resistance,getInt, NULL - }, {"AutoArrangeIcons", "NO", NULL, &wPreferences.auto_arrange_icons, getBool, NULL }, @@ -427,9 +424,20 @@ WDefaultEntry optionList[] = { {"AppIconBalloons", "NO", NULL, &wPreferences.appicon_balloon,getBool, NULL }, + {"EdgeResistance", "30", NULL, + &wPreferences.edge_resistance,getInt, NULL + }, {"DisableBlinking", "NO", NULL, &wPreferences.dont_blink, getBool, NULL }, +#ifdef WEENDOZE_CYCLE + {"WindozeCycling","NO", NULL, + &wPreferences.windoze_cycling, getBool, NULL + }, + {"PopupSwitchMenu","YES",NULL, + &wPreferences.popup_switchmenu, getBool, NULL + }, +#endif /* WEENDOZE_CYCLE */ /* style options */ {"WidgetColor", "(solid, gray)", NULL, NULL, getTexture, setWidgetColor, @@ -806,7 +814,7 @@ wDefaultsInitDomain(char *domain, Bool requireDictionary) } /* global system dictionary */ - sprintf(path, "%s/%s/%s", PKGDATADIR, DEFAULTS_DIR, domain); + sprintf(path, "%s/%s", SYSCONFDIR, domain); if (stat(path, &stbuf)>=0) { shared_dict = ReadProplistFromFile(path); if (shared_dict) { @@ -900,7 +908,7 @@ wDefaultsCheckDomains(void *foo) WDWindowMaker->timestamp = stbuf.st_mtime; /* global dictionary */ - sprintf(path, "%s/%s/WindowMaker", PKGDATADIR, DEFAULTS_DIR); + sprintf(path, "%s/WindowMaker", SYSCONFDIR); if (stat(path, &stbuf)>=0) { shared_dict = ReadProplistFromFile(path); if (shared_dict && !PLIsDictionary(shared_dict)) { @@ -1107,13 +1115,12 @@ wReadDefaults(WScreen *scr, proplist_t new_dict) { proplist_t plvalue, old_value; WDefaultEntry *entry; - int i, changed, must_update; + int i, must_update; int needs_refresh; void *tdata; proplist_t old_dict = (WDWindowMaker->dictionary!=new_dict ? WDWindowMaker->dictionary : NULL); - changed = 0; must_update = 0; needs_refresh = 0; @@ -1137,7 +1144,6 @@ wReadDefaults(WScreen *scr, proplist_t new_dict) plvalue = entry->plvalue; if (plvalue && new_dict) { PLInsertDictionaryEntry(new_dict, entry->plkey, plvalue); - changed = 1; must_update = 1; } } else if (!plvalue) { @@ -1145,10 +1151,8 @@ wReadDefaults(WScreen *scr, proplist_t new_dict) continue; } else if (!old_value) { /* set value for the 1st time */ - changed = 1; } else if (!PLIsEqual(plvalue, old_value)) { /* value has changed */ - changed = 1; } else { /* value was not changed since last time */ continue; @@ -2003,6 +2007,22 @@ again: *ret = PLRetain(value); +#ifdef notworking + /* + * Kluge to force wmsetbg helper to set the default background. + * If the WorkspaceSpecificBack is changed once wmaker has started, + * the WorkspaceBack won't be sent to the helper, unless the user + * changes it's value too. So, we must force this by removing the + * value from the defaults DB. + */ + if (!scr->flags.backimage_helper_launched && !scr->flags.startup) { + proplist_t key = PLMakeString("WorkspaceBack"); + + PLRemoveDictionaryEntry(WDWindowMaker->dictionary, key); + + PLRelease(key); + } +#endif return True; } @@ -2689,6 +2709,7 @@ setWorkspaceBack(WScreen *scr, WDefaultEntry *entry, proplist_t value, char *command; char *text; + SetupEnvironment(scr); text = PLGetDescription(value); command = wmalloc(strlen(text)+40); sprintf(command, "wmsetbg -d -p '%s' &", text); diff --git a/src/dialog.c b/src/dialog.c index 51cf5cb1..a5516af3 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -366,7 +366,7 @@ buttonCallback(void *self, void *clientData) op = WMCreateOpenPanel(WMWidgetScreen(bPtr)); - if (WMRunModalOpenPanelForDirectory(op, NULL, "/usr/local", NULL, NULL)) { + if (WMRunModalFilePanelForDirectory(op, NULL, "/usr/local", NULL, NULL)) { char *path; path = WMGetFilePanelFile(op); WMSetTextFieldText(panel->fileField, path); @@ -581,7 +581,7 @@ typedef struct { RImage *pic; WMPixmap *oldPix; char *str; - char x; + int x; #endif } InfoPanel; @@ -683,8 +683,23 @@ logoPushCallback(void *data) char buffer[512]; int i; int len; + static int jingobeu[] = { + 329, 150, -1, 100, 329, 150, -1, 100, 329, 300, -1, 250, + 329, 150, -1, 100, 329, 150, -1, 100, 329, 300, -1, 250, + 329, 150, 392, 150, 261, 150, 293, 150, 329, 400, -1, 400, 0 + }; + static int c = 0; if (panel->x) { + XKeyboardControl kc; + + if (panel->x > 0) { + if(jingobeu[panel->x-1]==0){panel->x=-1;}else if(jingobeu[panel->x +-1]<0){panel->x++;c=jingobeu[panel->x-1]/50;panel->x++;}else if(c==0){ + kc.bell_pitch=jingobeu[panel->x-1];panel->x++;kc.bell_percent=50;c= + jingobeu[panel->x-1]/50;kc.bell_duration=jingobeu[panel->x-1];panel->x++; +XChangeKeyboardControl(dpy,KBBellPitch|KBBellDuration|KBBellPercent,&kc); + XBell(dpy,50);XFlush(dpy);}else{c--;}} if (!(panel->cycle % 4)) { WMPixmap *p; @@ -838,6 +853,7 @@ handleLogoPush(XEvent *event, void *data) "Have a nice day!" }; + clicks++; if (!panel->timer && !broken && clicks > 2) { char *file; @@ -973,39 +989,41 @@ wShowInfoPanel(WScreen *scr) } panel->name1L = WMCreateLabel(panel->win); - WMResizeWidget(panel->name1L, 200, 30); - WMMoveWidget(panel->name1L, 120, 30); + WMResizeWidget(panel->name1L, 240, 30); + WMMoveWidget(panel->name1L, 100, 30); color1.red = 0; color1.green = 0; color1.blue = 0; color2.red = 0x50; color2.green = 0x50; color2.blue = 0x70; - logo = renderText(scr->wmscreen, " Window Maker ", - "-*-times-bold-r-*-*-24-*", &color1, &color2); + logo = renderText(scr->wmscreen, "GNU Window Maker", + "-*-utopia-*-r-*-*-25-*", &color1, &color2); if (logo) { WMSetLabelImagePosition(panel->name1L, WIPImageOnly); WMSetLabelImage(panel->name1L, logo); WMReleasePixmap(logo); } else { - font = WMBoldSystemFontOfSize(scr->wmscreen, 24); + font = WMBoldSystemFontOfSize(scr->wmscreen, 20); if (font) { WMSetLabelFont(panel->name1L, font); WMReleaseFont(font); } - WMSetLabelText(panel->name1L, "Window Maker"); + WMSetLabelTextAlignment(panel->name1L, WACenter); + WMSetLabelText(panel->name1L, "GNU Window Maker"); } panel->name2L = WMCreateLabel(panel->win); - WMResizeWidget(panel->name2L, 200, 24); - WMMoveWidget(panel->name2L, 120, 60); + WMResizeWidget(panel->name2L, 240, 24); + WMMoveWidget(panel->name2L, 100, 60); font = WMBoldSystemFontOfSize(scr->wmscreen, 18); if (font) { WMSetLabelFont(panel->name2L, font); WMReleaseFont(font); font = NULL; } - WMSetLabelText(panel->name2L, "X11 Window Manager"); + WMSetLabelTextAlignment(panel->name2L, WACenter); + WMSetLabelText(panel->name2L, "Window Manager for X"); sprintf(version, "Version %s", VERSION); @@ -1124,14 +1142,15 @@ wShowInfoPanel(WScreen *scr) panel->wwin = wwin; thePanel = panel; - - if (InitXThing(panel->scr)) { +#ifndef SILLYNESS + if (InitXThing(panel->scr)) { panel->timer = WMAddTimerHandler(100, logoPushCallback, panel); panel->cycle = 0; panel->x = 1; - panel->str = "Merry X'mas!"; + panel->str = "Merry Christmas!"; panel->oldPix = WMRetainPixmap(WMGetLabelImage(panel->logoL)); } +#endif } diff --git a/src/dock.c b/src/dock.c index a74e05f7..25b6d80c 100644 --- a/src/dock.c +++ b/src/dock.c @@ -762,7 +762,7 @@ mainIconCreate(WScreen *scr, int type) x_pos = 0; } else { btn = wAppIconCreateForDock(scr, NULL, "Logo", "WMDock", TILE_NORMAL); - x_pos = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE - 1; + x_pos = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE; } btn->xindex = 0; @@ -1602,21 +1602,20 @@ wDockRestoreState(WScreen *scr, proplist_t dock_state, int type) if (dock->y_pos < 0) dock->y_pos = 0; else if (dock->y_pos > scr->scr_height-ICON_SIZE) - dock->y_pos = scr->scr_height-ICON_SIZE; - + dock->y_pos = scr->scr_height - ICON_SIZE; + /* This is no more needed. ??? */ if (type == WM_CLIP) { if (dock->x_pos < 0) dock->x_pos = 0; else if (dock->x_pos > scr->scr_width-ICON_SIZE) dock->x_pos = scr->scr_width-ICON_SIZE; - } - else { + } else { if (dock->x_pos >= 0) { dock->x_pos = DOCK_EXTRA_SPACE; dock->on_right_side = 0; } else { - dock->x_pos = scr->scr_width - DOCK_EXTRA_SPACE - ICON_SIZE - 1; + dock->x_pos = scr->scr_width - DOCK_EXTRA_SPACE - ICON_SIZE; dock->on_right_side = 1; } } @@ -2691,7 +2690,7 @@ swapDock(WDock *dock) if (dock->on_right_side) { - x = dock->x_pos = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE - 1; + x = dock->x_pos = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE; } else { x = dock->x_pos = DOCK_EXTRA_SPACE; } @@ -3355,8 +3354,7 @@ handleDockMove(WDock *dock, WAppIcon *aicon, XEvent *event) y = ev.xmotion.y_root - ofs_y; } moveDock(dock, x, y); - } - else { + } else { /* move vertically if pointer is inside the dock*/ if ((dock->on_right_side && ev.xmotion.x_root >= dock->x_pos - ICON_SIZE) diff --git a/src/event.c b/src/event.c index 92b06372..f8e8fbff 100644 --- a/src/event.c +++ b/src/event.c @@ -117,6 +117,7 @@ static void handleClientMessage(); static void handleKeyPress(); static void handleFocusIn(); static void handleMotionNotify(); +static void handleVisibilityNotify(); #ifdef SHAPE @@ -250,7 +251,7 @@ DispatchEvent(XEvent *event) break; case MapNotify: - handleMapNotify(event->xmap.window); + handleMapNotify(event); break; case UnmapNotify: @@ -295,6 +296,10 @@ DispatchEvent(XEvent *event) handleFocusIn(event); break; + case VisibilityNotify: + handleVisibilityNotify(event); + break; + default: handleExtensions(event); break; @@ -333,11 +338,11 @@ IsDoubleClick(WScreen *scr, XEvent *event) if ((scr->last_click_time>0) && (event->xbutton.time-scr->last_click_time<=wPreferences.dblclick_time) && (event->xbutton.button == scr->last_click_button) - && (event->xbutton.subwindow == scr->last_click_window)) { + && (event->xbutton.window == scr->last_click_window)) { scr->flags.next_click_is_not_double = 1; scr->last_click_time = 0; - scr->last_click_window = None; + scr->last_click_window = event->xbutton.window; return True; } @@ -456,7 +461,7 @@ handleMapRequest(XEvent *ev) printf("got map request for %x\n", (unsigned)window); #endif - if ((wwin=wWindowFor(window))) { + if ((wwin = wWindowFor(window))) { if (wwin->flags.shaded) { wUnshadeWindow(wwin); } @@ -496,16 +501,15 @@ handleMapRequest(XEvent *ev) wDockTrackWindowLaunch(scr->last_dock, window); } - if (wwin) { int state; - + if (wwin->wm_hints && (wwin->wm_hints->flags & StateHint)) state = wwin->wm_hints->initial_state; else state = NormalState; - if (state==IconicState) + if (state == IconicState) wwin->flags.miniaturized = 1; if (state == WithdrawnState) { @@ -520,23 +524,21 @@ handleMapRequest(XEvent *ev) if (wwin->flags.shaded) { wwin->flags.shaded = 0; wwin->flags.skip_next_animation = 1; - wwin->flags.ignore_next_unmap = 1; /* ??? */ wShadeWindow(wwin); } if (wwin->flags.miniaturized) { wwin->flags.miniaturized = 0; - wwin->flags.hidden = 0; wwin->flags.skip_next_animation = 1; - wwin->flags.ignore_next_unmap = 1; wIconifyWindow(wwin); - } else if (wwin->flags.hidden) { + } + if (wwin->flags.hidden) { WApplication *wapp = wApplicationOf(wwin->main_window); + wwin->flags.hidden = 0; wwin->flags.skip_next_animation = 1; if (wapp) { wHideApplication(wapp); } - wwin->flags.ignore_next_unmap = 1; } } } @@ -585,14 +587,14 @@ static void handleExpose(XEvent *event) { WObjDescriptor *desc; + XEvent ev; #ifdef DEBUG puts("got expose"); #endif - if (event->xexpose.count!=0) { - return; - } - + + while (XCheckTypedWindowEvent(dpy, event->xexpose.window, Expose, &ev)); + if (XFindContext(dpy, event->xexpose.window, wWinContext, (XPointer *)&desc)==XCNOENT) { return; @@ -675,6 +677,10 @@ handleButtonPress(XEvent *event) } } + if (desc->handle_mousedown!=NULL) { + (*desc->handle_mousedown)(desc, event); + } + if (desc->parent_type == WCLASS_WINDOW) { XSync(dpy, 0); @@ -699,43 +705,33 @@ handleButtonPress(XEvent *event) } } - if (desc->handle_mousedown!=NULL) { - (*desc->handle_mousedown)(desc, event); - } - /* save double-click information */ if (scr->flags.next_click_is_not_double) { scr->flags.next_click_is_not_double = 0; } else { scr->last_click_time = event->xbutton.time; scr->last_click_button = event->xbutton.button; - scr->last_click_window = event->xbutton.subwindow; + scr->last_click_window = event->xbutton.window; } } static void -handleMapNotify(Window window) +handleMapNotify(XEvent *event) { WWindow *wwin; - + #ifdef DEBUG puts("got map"); #endif - wwin= wWindowFor(window); - if (wwin && wwin->client_win==window) { - if (wwin->flags.ignore_next_unmap) { - wwin->flags.ignore_next_unmap=0; - return; - } + + wwin = wWindowFor(event->xmap.event); + if (wwin && wwin->client_win == event->xmap.event) { if (wwin->flags.miniaturized) { wDeiconifyWindow(wwin); } else { XGrabServer(dpy); - XSync(dpy,0); - XMapWindow(dpy, wwin->client_win); - XMapWindow(dpy, wwin->frame->core->window); - wwin->flags.mapped=1; + wWindowMap(wwin); wClientSetState(wwin, NormalState, None); XUngrabServer(dpy); } @@ -748,22 +744,31 @@ handleUnmapNotify(XEvent *event) { WWindow *wwin; XEvent ev; - + Bool withdraw = False; + #ifdef DEBUG puts("got unmap"); #endif + + /* only process windows with StructureNotify selected + * (ignore SubstructureNotify) */ wwin = wWindowFor(event->xunmap.window); - if (!wwin || wwin->client_win!=event->xunmap.window) + if (!wwin) return; - - if (!wwin->flags.mapped - && wwin->frame->workspace==wwin->screen_ptr->current_workspace - && !wwin->flags.miniaturized && !wwin->flags.hidden) + + /* whether the event is a Withdrawal request */ + if (event->xunmap.event == wwin->screen_ptr->root_win + && event->xunmap.send_event) + withdraw = True; + + if (wwin->client_win != event->xunmap.event && !withdraw) return; - if (wwin->flags.ignore_next_unmap) { + if (!wwin->flags.mapped && !withdraw + && wwin->frame->workspace == wwin->screen_ptr->current_workspace + && !wwin->flags.miniaturized && !wwin->flags.hidden) return; - } + XGrabServer(dpy); XUnmapWindow(dpy, wwin->frame->core->window); wwin->flags.mapped = 0; @@ -863,7 +868,7 @@ handleClientMessage(XEvent *event) wIconifyWindow(wwin); } else if (event->xclient.message_type == _XA_WM_COLORMAP_NOTIFY && event->xclient.format == 32) { - WScreen *scr = wScreenForRootWindow(event->xclient.window); + WScreen *scr = wScreenSearchForRootWindow(event->xclient.window); if (!scr) return; @@ -1026,7 +1031,8 @@ handleEnterNotify(XEvent *event) * is for the frame window and window doesn't have focus yet */ if ((wPreferences.focus_mode==WKF_POINTER || wPreferences.focus_mode==WKF_SLOPPY) - && wwin->frame->core->window==event->xcrossing.window) { + && wwin->frame->core->window==event->xcrossing.window + && !scr->flags.doing_alt_tab) { if (!wwin->flags.focused) wSetFocusTo(scr, wwin); @@ -1238,6 +1244,161 @@ windowUnderPointer(WScreen *scr) return NULL; } +#ifdef WEENDOZE_CYCLE + +static WWindow* +nextToFocusAfter(WWindow *wwin) +{ + WWindow *tmp = wwin->next; + + while (tmp) { + if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { + + return tmp; + } + tmp = tmp->next; + } + + tmp = wwin; + /* start over from the beginning of the list */ + while (tmp->prev) + tmp = tmp->prev; + + while (tmp && tmp != wwin) { + if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { + + return tmp; + } + tmp = tmp->next; + } + + return wwin; +} + + +static WWindow* +nextToFocusBefore(WWindow *wwin) +{ + WWindow *tmp = wwin->prev; + + while (tmp) { + if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { + + return tmp; + } + tmp = tmp->prev; + } + + /* start over from the beginning of the list */ + tmp = wwin; + while (tmp->next) + tmp = tmp->next; + + while (tmp && tmp != wwin) { + if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { + + return tmp; + } + tmp = tmp->prev; + } + + return wwin; +} + +static void +doWindozeCycle(WWindow *wwin, XEvent *event, Bool next) +{ + WScreen *scr = wScreenForRootWindow(event->xkey.root); + Bool done = False; + WWindow *newFocused; + WWindow *oldFocused; + int modifiers; + XModifierKeymap *keymap; + + if (!wwin) + return; + + puts("IN"); + keymap = XGetModifierMapping(dpy); + + + XGrabKeyboard(dpy, scr->root_win, False, GrabModeAsync, GrabModeAsync, + CurrentTime); + + if (next) { + newFocused = nextToFocusAfter(wwin); + } else { + newFocused = nextToFocusBefore(wwin); + } + + scr->flags.doing_alt_tab = 1; + + wWindowFocus(newFocused, scr->focused_window); + oldFocused = newFocused; + + OpenSwitchMenu(scr, scr->scr_width/2, scr->scr_height/2, False); + + while (!done) { + XEvent ev; + + WMMaskEvent(dpy,KeyPressMask|KeyReleaseMask|ExposureMask, &ev); +/* WMNextEvent(dpy, &ev);*/ + if (ev.type != KeyRelease && ev.type != KeyPress) { + WMHandleEvent(&ev); + continue; + } +puts("EV"); + /* ignore CapsLock */ + modifiers = ev.xkey.state & ValidModMask; + + if (ev.type == KeyPress + && wKeyBindings[WKBD_FOCUSNEXT].keycode == ev.xkey.keycode + && wKeyBindings[WKBD_FOCUSNEXT].modifier == modifiers) { + + UpdateSwitchMenu(scr, newFocused, ACTION_CHANGE_STATE); + newFocused = nextToFocusAfter(newFocused); + wWindowFocus(newFocused, oldFocused); + oldFocused = newFocused; + UpdateSwitchMenu(scr, newFocused, ACTION_CHANGE_STATE); + + } else if (ev.type == KeyPress + && wKeyBindings[WKBD_FOCUSPREV].keycode == ev.xkey.keycode + && wKeyBindings[WKBD_FOCUSPREV].modifier == modifiers) { + + UpdateSwitchMenu(scr, newFocused, ACTION_CHANGE_STATE); + newFocused = nextToFocusBefore(newFocused); + wWindowFocus(newFocused, oldFocused); + oldFocused = newFocused; + UpdateSwitchMenu(scr, newFocused, ACTION_CHANGE_STATE); + } + if (ev.type == KeyRelease) { + int i; + + for (i = 0; i <= 8 * keymap->max_keypermod; i++) { + if (keymap->modifiermap[i] == ev.xkey.keycode && + wKeyBindings[WKBD_FOCUSNEXT].modifier + & 1<<(i/keymap->max_keypermod)) { + done = True; + break; + } + } + } + } +puts("OUT"); + XFree(keymap); + + XUngrabKeyboard(dpy, CurrentTime); + wSetFocusTo(scr, newFocused); + scr->flags.doing_alt_tab = 0; + OpenSwitchMenu(scr, scr->scr_width/2, scr->scr_height/2, False); +} + + +#endif /* WEENDOZE_CYCLE */ + + + + static void handleKeyPress(XEvent *event) { @@ -1407,21 +1568,37 @@ handleKeyPress(XEvent *event) } break; case WKBD_FOCUSNEXT: - wwin = NextFocusWindow(scr); - if (wwin != NULL) { - wSetFocusTo(scr, wwin); - if (wPreferences.circ_raise) - wRaiseFrame(wwin->frame->core); - } +#ifdef WEENDOZE_CYCLE + if (wPreferences.windoze_cycling) { + doWindozeCycle(wwin, event, True); + } else +#endif /* WEENDOZE_CYCLE */ + { + wwin = NextFocusWindow(scr); + if (wwin != NULL) { + wSetFocusTo(scr, wwin); + if (wPreferences.circ_raise) + wRaiseFrame(wwin->frame->core); + } + } break; + case WKBD_FOCUSPREV: - wwin = PrevFocusWindow(scr); - if (wwin != NULL) { - wSetFocusTo(scr, wwin); - if (wPreferences.circ_raise) - wRaiseFrame(wwin->frame->core); - } +#ifdef WEENDOZE_CYCLE + if (wPreferences.windoze_cycling) { + doWindozeCycle(wwin, event, False); + } else +#endif /* WEENDOZE_CYCLE */ + { + wwin = PrevFocusWindow(scr); + if (wwin != NULL) { + wSetFocusTo(scr, wwin); + if (wPreferences.circ_raise) + wRaiseFrame(wwin->frame->core); + } + } break; + #if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP) #define GOTOWORKS(wk) case WKBD_WORKSPACE##wk:\ i = (scr->current_workspace/10)*10 + wk - 1;\ @@ -1543,3 +1720,14 @@ handleMotionNotify(XEvent *event) } +static void +handleVisibilityNotify(XEvent *event) +{ + WWindow *wwin; + + wwin = wWindowFor(event->xvisibility.window); + if (!wwin) + return; + wwin->flags.obscured = + (event->xvisibility.state == VisibilityFullyObscured); +} diff --git a/src/framewin.c b/src/framewin.c index d3eee0ed..2c4e76ff 100644 --- a/src/framewin.c +++ b/src/framewin.c @@ -114,10 +114,13 @@ wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags) int width, height; int i; WScreen *scr = fwin->screen_ptr; - + width = fwin->core->width; - height = fwin->core->height - fwin->top_width - fwin->bottom_width; - + if (flags & WFF_IS_SHADED) + height = -1; + else + height = fwin->core->height - fwin->top_width - fwin->bottom_width; + if (flags & WFF_TITLEBAR) theight = (*fwin->font)->height + TITLEBAR_EXTRA_HEIGHT; else @@ -283,10 +286,11 @@ wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags) fwin->resizebar = NULL; } } - - if (height + fwin->top_width + fwin->bottom_width != fwin->core->height) { + + if (height + fwin->top_width + fwin->bottom_width != fwin->core->height + && !(flags & WFF_IS_SHADED)) { wFrameWindowResize(fwin, width, - height + fwin->top_width + fwin->bottom_width); + height + fwin->top_width + fwin->bottom_width); } /* setup object descriptors */ @@ -757,14 +761,6 @@ wFrameWindowPaint(WFrameWindow *fwin) break; } - XSetForeground(dpy, *fwin->title_gc, - fwin->title_pixel[fwin->flags.state]); - - wDrawString(fwin->titlebar->window, *fwin->font, - *fwin->title_gc, x, - (*fwin->font)->y + TITLEBAR_EXTRA_HEIGHT/2, title, - titlelen); - #ifdef TITLE_TEXT_SHADOW if(wPreferences.title_shadow){ int shadowx,shadowy; @@ -781,6 +777,14 @@ wFrameWindowPaint(WFrameWindow *fwin) } #endif /* TITLE_TEXT_SHADOW */ + XSetForeground(dpy, *fwin->title_gc, + fwin->title_pixel[fwin->flags.state]); + + wDrawString(fwin->titlebar->window, *fwin->font, + *fwin->title_gc, x, + (*fwin->font)->y + TITLEBAR_EXTRA_HEIGHT/2, title, + titlelen); + free(title); } } diff --git a/src/framewin.h b/src/framewin.h index 7c3dcee4..48c718ef 100644 --- a/src/framewin.h +++ b/src/framewin.h @@ -37,6 +37,8 @@ #define WFF_BORDER (1<<4) #define WFF_SINGLE_STATE (1<<5) +#define WFF_IS_SHADED (1<<16) + typedef struct WFrameWindow { WScreen *screen_ptr; /* pointer to the screen structure */ diff --git a/src/icon.c b/src/icon.c index 567109a1..14c6a764 100644 --- a/src/icon.c +++ b/src/icon.c @@ -412,19 +412,13 @@ getnameforicon(WWindow *wwin) } else { return NULL; } - - prefix = getenv("GNUSTEP_USER_PATH"); - if (!prefix) { - len = strlen(wgethomedir())+64+strlen(suffix); - path = wmalloc(len+1); - sprintf(path, "%s/GNUstep/.AppInfo", wgethomedir()); - } else { - prefix = wexpandpath(prefix); - len = strlen(prefix)+64+strlen(suffix); - path = wmalloc(len+1); - sprintf(path, "%s/.AppInfo", prefix); - free(prefix); - } + + prefix = wusergnusteppath(); + len = strlen(prefix)+64+strlen(suffix); + path = wmalloc(len+1); + sprintf(path, "%s/.AppInfo", prefix); + free(prefix); + if (access(path, F_OK)!=0) { if (mkdir(path, S_IRUSR|S_IWUSR|S_IXUSR)) { wsyserror(_("could not create directory %s"), path); @@ -826,7 +820,7 @@ miniwindowMouseDown(WObjDescriptor *desc, XEvent *event) #ifdef DEBUG puts("Moving miniwindow"); #endif - if (event->xbutton.button==Button1) { + if (event->xbutton.button == Button1) { if (event->xbutton.state & MOD_MASK) wLowerFrame(icon->core); else @@ -835,9 +829,7 @@ miniwindowMouseDown(WObjDescriptor *desc, XEvent *event) wIconSelect(icon); wSelectWindow(icon->owner, !wwin->flags.selected); } - } -#if 0 - else if (event->xbutton.button==Button3) { + } else if (event->xbutton.button == Button3) { WObjDescriptor *desc; OpenMiniwindowMenu(wwin, event->xbutton.x_root, @@ -850,7 +842,7 @@ miniwindowMouseDown(WObjDescriptor *desc, XEvent *event) return; } -#endif + if (XGrabPointer(dpy, icon->core->window, False, ButtonMotionMask |ButtonReleaseMask|ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime) !=GrabSuccess) { @@ -901,6 +893,9 @@ miniwindowMouseDown(WObjDescriptor *desc, XEvent *event) puts("End miniwindow move"); #endif XUngrabPointer(dpy, CurrentTime); + + if (wPreferences.auto_arrange_icons) + wArrangeIcons(wwin->screen_ptr, True); return; } diff --git a/src/kwm.c b/src/kwm.c index 08af53bf..7fa085a8 100644 --- a/src/kwm.c +++ b/src/kwm.c @@ -1424,7 +1424,7 @@ wKWMCheckDestroy(XDestroyWindowEvent *event) return; } - scr = wScreenForRootWindow(event->event); + scr = wScreenSearchForRootWindow(event->event); if (!scr) { return; } diff --git a/src/main.c b/src/main.c index 8bb7e249..b51095bc 100644 --- a/src/main.c +++ b/src/main.c @@ -64,7 +64,6 @@ unsigned int ValidModMask = 0xff; /* locale to use. NULL==POSIX or C */ char *Locale=NULL; - int wScreenCount=0; WPreferences wPreferences; @@ -160,7 +159,8 @@ Exit(int status) #ifdef XSMP_ENABLED wSessionDisconnectManager(); #endif - XCloseDisplay(dpy); + if (dpy) + XCloseDisplay(dpy); exit(status); } @@ -369,7 +369,7 @@ main(int argc, char **argv) printf("Window Maker %s\n", VERSION); exit(0); } else if (strcmp(argv[i], "--global_defaults_path")==0) { - printf("%s/Defaults/WindowMaker", PKGDATADIR); + puts(SYSCONFDIR); exit(0); } else if (strcmp(argv[i], "-locale")==0 || strcmp(argv[i], "--locale")==0) { @@ -410,9 +410,12 @@ main(int argc, char **argv) exit(0); } #endif + } else if (strcmp(argv[i], "--help")==0) { + print_help(); + exit(0); } else { - printf(_("%s: invalid argument '%s'"), argv[0]); - printf(_("Try '%s --help' for more information"), argv[0]); + printf(_("%s: invalid argument '%s'\n"), argv[0], argv[i]); + printf(_("Try '%s --help' for more information\n"), argv[0]); exit(1); } } @@ -451,7 +454,7 @@ main(int argc, char **argv) if (getenv("NLSPATH")) bindtextdomain("WindowMaker", getenv("NLSPATH")); else - bindtextdomain("WindowMaker", NLSDIR); + bindtextdomain("WindowMaker", LOCALEDIR); textdomain("WindowMaker"); if (!XSupportsLocale()) { @@ -490,9 +493,8 @@ main(int argc, char **argv) str = strchr(DisplayName, ':'); else str = NULL; - if (!str) - str = ""; - if (sscanf(str, "%i.%i", &d, &s)==2) + + if (str && sscanf(str, "%i.%i", &d, &s)==2) multiHead = False; DisplayName = XDisplayName(DisplayName); diff --git a/src/menu.c b/src/menu.c index 0646fa5a..0733acee 100644 --- a/src/menu.c +++ b/src/menu.c @@ -2164,15 +2164,6 @@ menuTitleMouseDown(WCoreWindow *sender, void *data, XEvent *event) if (event->xbutton.button != Button1 && event->xbutton.button != Button2) return; - if (XGrabPointer(dpy, menu->frame->titlebar->window, False, - ButtonMotionMask|ButtonReleaseMask|ButtonPressMask, - GrabModeAsync, GrabModeAsync, None, - wCursor[WCUR_MOVE], CurrentTime)!=GrabSuccess) { -#ifdef DEBUG0 - wwarning("pointer grab failed for menu move\n"); -#endif - return; - } if (event->xbutton.state & MOD_MASK) { wLowerFrame(menu->frame->core); @@ -2233,8 +2224,14 @@ menuTitleMouseDown(WCoreWindow *sender, void *data, XEvent *event) wMenuMove(menu, x, y, True); } else { if (abs(ev.xmotion.x_root - dx) > MOVE_THRESHOLD - || abs(ev.xmotion.y_root - dy) > MOVE_THRESHOLD) + || abs(ev.xmotion.y_root - dy) > MOVE_THRESHOLD) { started = True; + XGrabPointer(dpy, menu->frame->titlebar->window, False, + ButtonMotionMask|ButtonReleaseMask + |ButtonPressMask, + GrabModeAsync, GrabModeAsync, None, + wCursor[WCUR_MOVE], CurrentTime); + } } break; diff --git a/src/misc.c b/src/misc.c index 1751891f..03aef1f2 100644 --- a/src/misc.c +++ b/src/misc.c @@ -56,8 +56,6 @@ extern WPreferences wPreferences; extern Time LastTimestamp; - - #ifdef OFFIX_DND extern Atom _XA_DND_SELECTION; #endif @@ -191,13 +189,12 @@ MakeCPPArgs(char *path) #endif /* USECPP */ - WWindow* NextFocusWindow(WScreen *scr) { WWindow *tmp, *wwin, *closest, *min; Window d; - + if (!(wwin = scr->focused_window)) return NULL; tmp = wwin->prev; @@ -853,6 +850,7 @@ getuserinput(WScreen *scr, char *line, int *ptr) break; } } + (*ptr)--; #undef _STARTING #undef _TITLE #undef _PROMPT @@ -1309,7 +1307,7 @@ UnescapeWM_CLASS(char *str, char **name, char **class) { int i, j, k, dot; Bool esc; - + j = strlen(str); *name = wmalloc(j); **name = 0; @@ -1343,6 +1341,7 @@ UnescapeWM_CLASS(char *str, char **name, char **class) (*name)[k++] = str[i]; } } else { + (*name)[k++] = str[i]; esc = False; } } diff --git a/src/moveres.c b/src/moveres.c index 618e0390..9b0892b6 100644 --- a/src/moveres.c +++ b/src/moveres.c @@ -1,7 +1,7 @@ /* * Window Maker window manager * - * Copyright (c) 1997, 1998 Alfredo K. Kojima + * Copyright (c) 1997, 1998, 1999 Alfredo K. Kojima * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "WindowMaker.h" @@ -402,72 +403,9 @@ mapGeometryDisplay(WWindow *wwin, int x, int y, int w, int h) #define unmapGeometryDisplay(w) \ XUnmapWindow(dpy, (w)->screen_ptr->geometry_display); -static void -checkEdgeResistance(WWindow *wwin, int *winx, int *winy, int off_x, int off_y) -{ - WScreen *scr = wwin->screen_ptr; - int scr_width = wwin->screen_ptr->scr_width - 3; - int scr_height = wwin->screen_ptr->scr_height; - int x = *winx; - int y = *winy; - int edge_resistance = wPreferences.edge_resistance; - int right_side = scr_width; - int left_side = 0; - int isize = wPreferences.icon_size; - - x -= off_x; - y -= off_y; - - if (scr->dock) - { - if (scr->dock->on_right_side) - right_side -= isize + DOCK_EXTRA_SPACE; - else - left_side += isize + DOCK_EXTRA_SPACE; - } - - if ((x + wwin->frame->core->width) >= right_side) { - if ((x + wwin->frame->core->width) < (right_side - + edge_resistance)) { - x = right_side - wwin->frame->core->width; - } else { - x -= edge_resistance; - } - } - - if (x <= left_side) { - if (x > (left_side - edge_resistance)) { - x = left_side; - } else { - x += edge_resistance; - } - } - - if ((y + wwin->frame->core->height) >= (scr_height - 1)) { - if ((y + wwin->frame->core->height) < ((scr_height - 1) - + edge_resistance)) { - y = scr_height - wwin->frame->core->height - 1; - } else { - y -= edge_resistance; - } - } - - if (y <=0) { - if (y > -edge_resistance) { - y = 0; - } else { - y += edge_resistance; - } - } - - - *winx = x; - *winy = y; -} static void -doWindowMove(WWindow *wwin, int single_win_x, int single_win_y, - LinkedList *list, int dx, int dy, int off_x, int off_y) +doWindowMove(WWindow *wwin, LinkedList *list, int dx, int dy) { WWindow *tmpw; int x, y; @@ -475,8 +413,7 @@ doWindowMove(WWindow *wwin, int single_win_x, int single_win_y, int scr_height = wwin->screen_ptr->scr_height; if (!list) { - checkEdgeResistance(wwin, &single_win_x, &single_win_y, off_x, off_y); - wWindowMove(wwin, single_win_x, single_win_y); + wWindowMove(wwin, wwin->frame_x + dx, wwin->frame_y + dy); } else { while (list) { tmpw = list->head; @@ -533,7 +470,7 @@ drawTransparentFrame(WWindow *wwin, int x, int y, int width, int height) static void -drawFrames(WWindow *wwin, LinkedList *list, int dx, int dy, int off_x, int off_y) +drawFrames(WWindow *wwin, LinkedList *list, int dx, int dy) { WWindow *tmpw; int scr_width = wwin->screen_ptr->scr_width; @@ -545,7 +482,6 @@ drawFrames(WWindow *wwin, LinkedList *list, int dx, int dy, int off_x, int off_y x = wwin->frame_x + dx; y = wwin->frame_y + dy; - checkEdgeResistance(wwin, &x, &y, off_x, off_y); drawTransparentFrame(wwin, x, y, wwin->frame->core->width, wwin->frame->core->height); @@ -617,26 +553,561 @@ crossWorkspace(WScreen *scr, WWindow *wwin, int opaque_move, } -/* - *---------------------------------------------------------------------- - * wMouseMoveWindow-- - * Move the named window and the other selected ones (if any), - * interactively. Also shows the position of the window, if only one - * window is being moved. - * If the window is not on the selected window list, the selected - * windows are deselected. - * If shift is pressed during the operation, the position display - * is changed to another type. - * - * Returns: - * True if the window was moved, False otherwise. - * - * Side effects: - * The window(s) position is changed, and the client(s) are - * notified about that. - * The position display configuration may be changed. - *---------------------------------------------------------------------- - */ + + +typedef struct { + /* arrays of WWindows sorted by the respective border position */ + WWindow **topList; /* top border */ + WWindow **leftList; /* left border */ + WWindow **rightList; /* right border */ + WWindow **bottomList; /* bottom border */ + int count; + + /* index of window in the above lists indicating the relative position + * of the window with the others */ + int topIndex; + int leftIndex; + int rightIndex; + int bottomIndex; + + int rubCount; /* for workspace switching */ + + int winWidth, winHeight; /* width/height of the window */ + int realX, realY; /* actual position of the window */ + int calcX, calcY; /* calculated position of window */ + int omouseX, omouseY; /* old mouse position */ + int mouseX, mouseY; /* last known position of the pointer */ +} MoveData; + +#define WTOP(w) (w)->frame_y +#define WLEFT(w) (w)->frame_x +#define WRIGHT(w) ((w)->frame_x + (int)(w)->frame->core->width) +#define WBOTTOM(w) ((w)->frame_y + (int)(w)->frame->core->height) + +static int +compareWTop(const void *a, const void *b) +{ + WWindow *wwin1 = *(WWindow**)a; + WWindow *wwin2 = *(WWindow**)b; + + if (WTOP(wwin1) > WTOP(wwin2)) + return -1; + else if (WTOP(wwin1) < WTOP(wwin2)) + return 1; + else + return 0; +} + + +static int +compareWLeft(const void *a, const void *b) +{ + WWindow *wwin1 = *(WWindow**)a; + WWindow *wwin2 = *(WWindow**)b; + + if (WLEFT(wwin1) > WLEFT(wwin2)) + return -1; + else if (WLEFT(wwin1) < WLEFT(wwin2)) + return 1; + else + return 0; +} + + +static int +compareWRight(const void *a, const void *b) +{ + WWindow *wwin1 = *(WWindow**)a; + WWindow *wwin2 = *(WWindow**)b; + + if (WRIGHT(wwin1) < WRIGHT(wwin2)) + return -1; + else if (WRIGHT(wwin1) > WRIGHT(wwin2)) + return 1; + else + return 0; +} + + + +static int +compareWBottom(const void *a, const void *b) +{ + WWindow *wwin1 = *(WWindow**)a; + WWindow *wwin2 = *(WWindow**)b; + + if (WBOTTOM(wwin1) < WBOTTOM(wwin2)) + return -1; + else if (WBOTTOM(wwin1) > WBOTTOM(wwin2)) + return 1; + else + return 0; +} + + +static void +updateResistance(WWindow *wwin, MoveData *data, int newX, int newY) +{ + int i; + int newX2 = newX + data->winWidth; + int newY2 = newY + data->winHeight; + Bool ok = False; + + if (newX < data->realX) { + if (data->rightIndex > 0 + && newX < WRIGHT(data->rightList[data->rightIndex-1])) { + ok = True; + } else if (data->leftIndex <= data->count-1 + && newX2 <= WLEFT(data->leftList[data->leftIndex])) { + ok = True; + } + } else if (newX > data->realX) { + if (data->leftIndex > 0 + && newX2 > WLEFT(data->leftList[data->leftIndex-1])) { + ok = True; + } else if (data->rightIndex <= data->count-1 + && newX >= WRIGHT(data->rightList[data->rightIndex])) { + ok = True; + } + } + + if (!ok) { + if (newY < data->realY) { + if (data->bottomIndex > 0 + && newY < WBOTTOM(data->bottomList[data->bottomIndex-1])) { + ok = True; + } else if (data->topIndex <= data->count-1 + && newY2 <= WTOP(data->topList[data->topIndex])) { + ok = True; + } + } else if (newY > data->realY) { + if (data->topIndex > 0 + && newY2 > WTOP(data->topList[data->topIndex-1])) { + ok = True; + } else if (data->bottomIndex <= data->count-1 + && newY >= WBOTTOM(data->bottomList[data->bottomIndex])) { + ok = True; + } + } + } + + if (!ok) + return; + + /* TODO: optimize this */ + if (data->realY < WBOTTOM(data->bottomList[0])) { + data->bottomIndex = 0; + } + if (data->realX < WRIGHT(data->rightList[0])) { + data->rightIndex = 0; + } + if ((data->realX + data->winWidth) > WLEFT(data->leftList[0])) { + data->leftIndex = 0; + } + if ((data->realY + data->winHeight) > WTOP(data->topList[0])) { + data->topIndex = 0; + } + for (i = 0; i < data->count; i++) { + if (data->realY > WBOTTOM(data->bottomList[i])) { + data->bottomIndex = i + 1; + } + if (data->realX > WRIGHT(data->rightList[i])) { + data->rightIndex = i + 1; + } + if ((data->realX + data->winWidth) < WLEFT(data->leftList[i])) { + data->leftIndex = i + 1; + } + if ((data->realY + data->winHeight) < WTOP(data->topList[i])) { + data->topIndex = i + 1; + } + } +} + + +static void +freeMoveData(MoveData *data) +{ + if (data->topList) + free(data->topList); + if (data->leftList) + free(data->leftList); + if (data->rightList) + free(data->rightList); + if (data->bottomList) + free(data->bottomList); +} + + +static void +updateMoveData(WWindow *wwin, MoveData *data) +{ + WScreen *scr = wwin->screen_ptr; + WWindow *tmp; + int i; + + data->count = 0; + tmp = scr->focused_window; + while (tmp) { + if (tmp != wwin && scr->current_workspace == tmp->frame->workspace + && !tmp->flags.obscured) { + data->topList[data->count] = tmp; + data->leftList[data->count] = tmp; + data->rightList[data->count] = tmp; + data->bottomList[data->count] = tmp; + data->count++; + } + tmp = tmp->prev; + } + + if (data->count == 0) { + data->topIndex = 0; + data->leftIndex = 0; + data->rightIndex = 0; + data->bottomIndex = 0; + return; + } + + /* + * order from closest to the border of the screen to farthest + */ + qsort(data->topList, data->count, sizeof(WWindow**), compareWTop); + qsort(data->leftList, data->count, sizeof(WWindow**), compareWLeft); + qsort(data->rightList, data->count, sizeof(WWindow**), compareWRight); + qsort(data->bottomList, data->count, sizeof(WWindow**), compareWBottom); + + /* figure the position of the window relative to the others */ + + data->topIndex = -1; + data->leftIndex = -1; + data->rightIndex = -1; + data->bottomIndex = -1; + + if (WTOP(wwin) < WBOTTOM(data->bottomList[0])) { + data->bottomIndex = 0; + } + if (WLEFT(wwin) < WRIGHT(data->rightList[0])) { + data->rightIndex = 0; + } + if (WRIGHT(wwin) > WLEFT(data->leftList[0])) { + data->leftIndex = 0; + } + if (WBOTTOM(wwin) > WTOP(data->topList[0])) { + data->topIndex = 0; + } + for (i = 0; i < data->count; i++) { + if (WTOP(wwin) >= WBOTTOM(data->bottomList[i])) { + data->bottomIndex = i + 1; + } + if (WLEFT(wwin) >= WRIGHT(data->rightList[i])) { + data->rightIndex = i + 1; + } + if (WRIGHT(wwin) <= WLEFT(data->leftList[i])) { + data->leftIndex = i + 1; + } + if (WBOTTOM(wwin) <= WTOP(data->topList[i])) { + data->topIndex = i + 1; + } + } +} + + +static void +initMoveData(WWindow *wwin, MoveData *data) +{ + int i; + WWindow *tmp; + + memset(data, 0, sizeof(MoveData)); + + for (i = 0, tmp = wwin->screen_ptr->focused_window; + tmp != NULL; + tmp = tmp->prev, i++); + + if (i <= 1) + return; + + data->topList = wmalloc(sizeof(WWindow*) * i); + data->leftList = wmalloc(sizeof(WWindow*) * i); + data->rightList = wmalloc(sizeof(WWindow*) * i); + data->bottomList = wmalloc(sizeof(WWindow*) * i); + + updateMoveData(wwin, data); + + data->realX = wwin->frame_x; + data->realY = wwin->frame_y; + data->calcX = wwin->frame_x; + data->calcY = wwin->frame_y; + + data->winWidth = wwin->frame->core->width + 2; + data->winHeight = wwin->frame->core->height + 2; +} + + +static Bool +checkWorkspaceChange(WWindow *wwin, MoveData *data, Bool opaqueMove) +{ + WScreen *scr = wwin->screen_ptr; + Bool changed = False; + + if (data->mouseX <= 1) { + if (scr->current_workspace > 0) { + + crossWorkspace(scr, wwin, opaqueMove, scr->current_workspace - 1, + True); + changed = True; + data->rubCount = 0; + + } else if (scr->current_workspace == 0 && wPreferences.ws_cycle) { + + crossWorkspace(scr, wwin, opaqueMove, scr->workspace_count - 1, + True); + changed = True; + data->rubCount = 0; + } + } else if (data->mouseX >= scr->scr_width - 2) { + + if (scr->current_workspace == scr->workspace_count - 1) { + + if (wPreferences.ws_cycle + || scr->workspace_count == MAX_WORKSPACES) { + + crossWorkspace(scr, wwin, opaqueMove, 0, False); + changed = True; + data->rubCount = 0; + } + /* if user insists on trying to go to next workspace even when + * it's already the last, create a new one */ + else if (data->omouseX == data->mouseX + && wPreferences.ws_advance) { + + /* detect user "rubbing" the window against the edge */ + if (data->rubCount > 0 + && data->omouseY - data->mouseY > MOVE_THRESHOLD) { + + data->rubCount = -(data->rubCount + 1); + + } else if (data->rubCount <= 0 + && data->mouseY - data->omouseY > MOVE_THRESHOLD) { + + data->rubCount = -data->rubCount + 1; + } + } + /* create a new workspace */ + if (abs(data->rubCount) > 2) { + /* go to next workspace */ + wWorkspaceNew(scr); + + crossWorkspace(scr, wwin, opaqueMove, + scr->current_workspace+1, False); + changed = True; + data->rubCount = 0; + } + } else if (scr->current_workspace < scr->workspace_count) { + + /* go to next workspace */ + crossWorkspace(scr, wwin, opaqueMove, + scr->current_workspace+1, False); + changed = True; + data->rubCount = 0; + } + } else { + data->rubCount = 0; + } + + return changed; +} + + +static void +updateWindowPosition(WWindow *wwin, MoveData *data, Bool doResistance, + Bool opaqueMove, int newMouseX, int newMouseY) +{ + WScreen *scr = wwin->screen_ptr; + int dx, dy; /* how much mouse moved */ + int winL, winR, winT, winB; /* requested new window position */ + int newX, newY; /* actual new window position */ + Bool hresist, vresist; + Bool updateIndex; + + hresist = False; + vresist = False; + + updateIndex = False; + + /* check the direction of the movement */ + dx = newMouseX - data->mouseX; + dy = newMouseY - data->mouseY; + + data->omouseX = data->mouseX; + data->omouseY = data->mouseY; + data->mouseX = newMouseX; + data->mouseY = newMouseY; + + winL = data->calcX + dx; + winR = data->calcX + data->winWidth + dx; + winT = data->calcY + dy; + winB = data->calcY + data->winHeight + dy; + + newX = data->realX; + newY = data->realY; + + if (doResistance) { + int edge; + int resist; + WWindow *rwin; + + resist = wPreferences.edge_resistance; + /* horizontal movement: check horizontal edge resistances */ + if (dx < 0) { + /* window is the leftmost window: check against screen edge */ + edge = 0; + + /* check position of nearest window to the left */ + if (data->rightIndex > 0) { + /* there is some window at the left: check if it will block + * the window */ + rwin = data->rightList[data->rightIndex - 1]; + + if (data->realY > WBOTTOM(rwin) + || (data->realY + data->winHeight) < WTOP(rwin)) { + resist = 0; + } else { + edge = WRIGHT(rwin) + 1; + resist = WIN_RESISTANCE(wPreferences.edge_resistance); + } + } + if (resist > 0 && winL >= edge - resist && winL <= edge) { + newX = edge; + hresist = True; + } + } else if (dx > 0) { + /* window is the rightmost window: check against screen edge */ + edge = scr->scr_width; + + /* check position of nearest window to the right */ + if (data->leftIndex > 0) { + /* there is some window at the right: check if it will block + * the window */ + rwin = data->leftList[data->leftIndex - 1]; + + if (data->realY > WBOTTOM(rwin) + || (data->realY + data->winHeight) < WTOP(rwin)) { + resist = 0; + } else { + edge = WLEFT(rwin); + resist = WIN_RESISTANCE(wPreferences.edge_resistance); + } + } + if (resist > 0 && winR <= edge + resist && winR >= edge) { + newX = edge - data->winWidth; + hresist = True; + } + } + + resist = wPreferences.edge_resistance; + /* vertical movement: check vertical edge resistances */ + if (dy < 0) { + /* window is the topmost window: check against screen edge */ + edge = 0; + + /* check position of nearest window to the top */ + if (data->bottomIndex > 0) { + /* there is some window at the top: check if it will block + * the window */ + rwin = data->bottomList[data->bottomIndex - 1]; + + if (data->realX > WRIGHT(rwin) + || (data->realX + data->winWidth) < WLEFT(rwin)) { + resist = 0; + } else { + edge = WBOTTOM(rwin) + 1; + resist = WIN_RESISTANCE(wPreferences.edge_resistance); + } + } + if (resist > 0 && winT >= edge - resist && winT <= edge) { + newY = edge; + vresist = True; + } + } else if (dy > 0) { + /* window is the bottommost window: check against screen edge */ + edge = scr->scr_height; + + /* check position of nearest window to the bottom */ + if (data->topIndex > 0) { + /* there is some window at the bottom: check if it will block + * the window */ + rwin = data->topList[data->topIndex - 1]; + + if (data->realX > WRIGHT(rwin) + || (data->realX + data->winWidth) < WLEFT(rwin)) { + resist = 0; + } else { + edge = WTOP(rwin); + resist = WIN_RESISTANCE(wPreferences.edge_resistance); + } + } + if (resist > 0 && winB <= edge + resist && winB >= edge) { + newY = edge - data->winHeight; + vresist = True; + } + } + } + + /* update window position */ + data->calcX += dx; + data->calcY += dy; + + if (((dx > 0 && data->calcX - data->realX > 0) + || (dx < 0 && data->calcX - data->realX < 0)) && !hresist) + newX = data->calcX; + + if (((dy > 0 && data->calcY - data->realY > 0) + || (dy < 0 && data->calcY - data->realY < 0)) && !vresist) + newY = data->calcY; + + if (data->realX != newX || data->realY != newY) { + if (opaqueMove) { + doWindowMove(wwin, scr->selected_windows, + newX - wwin->frame_x, + newY - wwin->frame_y); + } else { + /* erase frames */ + drawFrames(wwin, scr->selected_windows, + data->realX - wwin->frame_x, + data->realY - wwin->frame_y); + + /* draw frames */ + drawFrames(wwin, scr->selected_windows, + newX - wwin->frame_x, + newY - wwin->frame_y); + } + } + + if (!scr->selected_windows) { + + if (wPreferences.move_display == WDIS_NEW) { + + showPosition(wwin, data->realX, data->realY); + + } else if (wPreferences.move_display == WDIS_FRAME_CENTER) { + + moveGeometryDisplayCentered(scr, newX + data->winWidth/2, + newY + data->winHeight/2); + } + showPosition(wwin, newX, newY); + } + + /* recalc relative window position */ + if (doResistance && (data->realX != newX || data->realY != newY)) { + updateResistance(wwin, data, newX, newY); + } + + data->realX = newX; + data->realY = newY; +} + + + #if 0 typedef struct _looper { @@ -660,7 +1131,7 @@ _keyloop(_looper *lpr){ XSync(dpy, False); wusleep(10000); XGrabServer(dpy); - printf("called\n"); +/* printf("called\n");*/ if (!scr->selected_windows){ drawTransparentFrame(wwin, src_x+lpr->ox, src_y+lpr->oy, w, h); } @@ -712,18 +1183,17 @@ wKeyboardMoveResizeWindow(WWindow *wwin) wUnselectWindows(scr); } XGrabServer(dpy); - XGrabPointer(dpy, scr->root_win, True, PointerMotionMask - |ButtonReleaseMask|ButtonPressMask, GrabModeAsync, - GrabModeAsync, None, wCursor[WCUR_DEFAULT], CurrentTime); + XGrabPointer(dpy, scr->root_win, True, PointerMotionMask + |ButtonReleaseMask|ButtonPressMask, GrabModeAsync, + GrabModeAsync, None, wCursor[WCUR_DEFAULT], CurrentTime); if (wwin->flags.shaded || scr->selected_windows) { if(scr->selected_windows) - drawFrames(wwin,scr->selected_windows,off_x,off_y,0,0); + drawFrames(wwin,scr->selected_windows,off_x,off_y); else drawTransparentFrame(wwin, src_x+off_x, src_y+off_y, w, h); if(!scr->selected_windows) mapPositionDisplay(wwin, src_x, src_y, w, h); - } - else { + } else { drawTransparentFrame(wwin, src_x+off_x, src_y+off_y, w, h); } ww=w; @@ -737,7 +1207,7 @@ wKeyboardMoveResizeWindow(WWindow *wwin) | ButtonPressMask | ExposureMask, &event); if (wwin->flags.shaded || scr->selected_windows) { if(scr->selected_windows) - drawFrames(wwin,scr->selected_windows,off_x,off_y,0,0); + drawFrames(wwin,scr->selected_windows,off_x,off_y); else drawTransparentFrame(wwin, src_x+off_x, src_y+off_y, w, h); /*** I HATE EDGE RESISTANCE - ]d ***/ } @@ -880,7 +1350,7 @@ wKeyboardMoveResizeWindow(WWindow *wwin) if (wwin->flags.shaded || scr->selected_windows) { if(scr->selected_windows) - drawFrames(wwin,scr->selected_windows,off_x,off_y,0,0); + drawFrames(wwin,scr->selected_windows,off_x,off_y); else drawTransparentFrame(wwin, src_x+off_x, src_y+off_y, w, h); } else { @@ -902,7 +1372,7 @@ wKeyboardMoveResizeWindow(WWindow *wwin) */ if (wwin->flags.shaded || scr->selected_windows) { if(scr->selected_windows) - drawFrames(wwin,scr->selected_windows,off_x,off_y,0,0); + drawFrames(wwin,scr->selected_windows,off_x,off_y); else drawTransparentFrame(wwin, src_x+off_x, src_y+off_y, w, h); } else { @@ -927,7 +1397,7 @@ wKeyboardMoveResizeWindow(WWindow *wwin) wWindowSynthConfigureNotify(wwin); } else { - doWindowMove(wwin,0,0,scr->selected_windows,off_x,off_y,0,0); + doWindowMove(wwin,scr->selected_windows,off_x,off_y); while (list) { wWindowSynthConfigureNotify(list->head); list = list->tail; @@ -947,6 +1417,26 @@ wKeyboardMoveResizeWindow(WWindow *wwin) } +/* + *---------------------------------------------------------------------- + * wMouseMoveWindow-- + * Move the named window and the other selected ones (if any), + * interactively. Also shows the position of the window, if only one + * window is being moved. + * If the window is not on the selected window list, the selected + * windows are deselected. + * If shift is pressed during the operation, the position display + * is changed to another type. + * + * Returns: + * True if the window was moved, False otherwise. + * + * Side effects: + * The window(s) position is changed, and the client(s) are + * notified about that. + * The position display configuration may be changed. + *---------------------------------------------------------------------- + */ int wMouseMoveWindow(WWindow *wwin, XEvent *ev) { @@ -954,33 +1444,21 @@ wMouseMoveWindow(WWindow *wwin, XEvent *ev) XEvent event; Window root = scr->root_win; KeyCode shiftl, shiftr; - int w = wwin->frame->core->width; - int h = wwin->frame->core->height; - int x = wwin->frame_x; - int y = wwin->frame_y; - int ox, oy, orig_x, orig_y; - int off_x, off_y; - short count = 0; /* for automatic workspace creation */ int started = 0; int warped = 0; /* This needs not to change while moving, else bad things can happen */ - int opaque_move = wPreferences.opaque_move; - int XOffset, YOffset, origDragX, origDragY; - - origDragX = wwin->frame_x; - origDragY = wwin->frame_y; - XOffset = origDragX - ev->xbutton.x_root; - YOffset = origDragY - ev->xbutton.y_root; - + int opaqueMove = wPreferences.opaque_move; + MoveData moveData; + + initMoveData(wwin, &moveData); + + moveData.mouseX = ev->xmotion.x_root; + moveData.mouseY = ev->xmotion.y_root; + if (!wwin->flags.selected) { /* this window is not selected, unselect others and move only wwin */ wUnselectWindows(scr); } - orig_x = ox = ev->xbutton.x_root; - orig_y = oy = ev->xbutton.y_root; - off_x = x; off_y = y; - checkEdgeResistance(wwin, &off_x, &off_y, 0, 0); - off_x = (off_x-x); off_y = (off_y-y); #ifdef DEBUG puts("Moving window"); #endif @@ -993,153 +1471,84 @@ wMouseMoveWindow(WWindow *wwin, XEvent *ev) /* XWarpPointer() doesn't seem to generate Motion events, so we've got to simulate them */ - printf("warp\n"); XQueryPointer(dpy, root, &junkw, &junkw, &event.xmotion.x_root, &event.xmotion.y_root, &junk, &junk, (unsigned *) &junk); } else { - Window win; - WMMaskEvent(dpy, KeyPressMask | ButtonMotionMask - | ButtonReleaseMask | ButtonPressMask | ExposureMask, &event); + | ButtonReleaseMask | ButtonPressMask | ExposureMask, + &event); if (event.type == MotionNotify) { /* compress MotionNotify events */ - win = event.xmotion.window; while (XCheckMaskEvent(dpy, ButtonMotionMask, &event)) ; } } switch (event.type) { case KeyPress: - if (scr->selected_windows) - break; if ((event.xkey.keycode == shiftl || event.xkey.keycode == shiftr) - && started) { - if (!opaque_move) + && started && !scr->selected_windows) { + + if (!opaqueMove) { drawFrames(wwin, scr->selected_windows, - ox - orig_x, oy - orig_y, off_x, off_y); - - cyclePositionDisplay(wwin, x, y, w, h); - - if (!opaque_move) { - drawFrames(wwin, scr->selected_windows, - ox - orig_x, oy - orig_y, off_x, off_y); - } - showPosition(wwin, x, y); + moveData.realX - wwin->frame_x, + moveData.realY - wwin->frame_y); + } + + cyclePositionDisplay(wwin, moveData.realX, moveData.realY, + moveData.winWidth, moveData.winHeight); + + if (!opaqueMove) { + drawFrames(wwin, scr->selected_windows, + moveData.realX - wwin->frame_x, + moveData.realY - wwin->frame_y); + } } break; case MotionNotify: if (started) { - showPosition(wwin, x, y); - - if (!opaque_move) { - drawFrames(wwin, scr->selected_windows, - ox-orig_x, oy-orig_y, off_x, off_y); - } else { - doWindowMove(wwin, event.xmotion.x_root + XOffset, - event.xmotion.y_root + YOffset, - scr->selected_windows, - event.xmotion.x_root - ox, - event.xmotion.y_root - oy, - off_x, off_y); - } - - x = event.xmotion.x_root + XOffset; - y = event.xmotion.y_root + YOffset; + updateWindowPosition(wwin, &moveData, + scr->selected_windows == NULL + && wPreferences.edge_resistance > 0, + opaqueMove, + event.xmotion.x_root, + event.xmotion.y_root); - checkEdgeResistance(wwin, &x, &y, off_x, off_y); - - if (!scr->selected_windows) { - if (wPreferences.move_display == WDIS_FRAME_CENTER) - moveGeometryDisplayCentered(scr, x + w/2, y + h/2); - } if (!warped && !wPreferences.no_autowrap) { - if (event.xmotion.x_root <= 1) { - if (scr->current_workspace > 0) { - crossWorkspace(scr, wwin, opaque_move, - scr->current_workspace-1, True); - warped = 1; - count = 0; - } else if (scr->current_workspace == 0 - && wPreferences.ws_cycle) { - crossWorkspace(scr, wwin, opaque_move, - scr->workspace_count-1, True); - warped = 1; - count = 0; - } - } else if (event.xmotion.x_root >= scr->scr_width - 2) { - - if (scr->current_workspace == scr->workspace_count-1) { - if ((!wPreferences.ws_advance && wPreferences.ws_cycle) - || (scr->workspace_count == MAX_WORKSPACES)) { - crossWorkspace(scr, wwin, opaque_move, 0, False); - warped = 1; - count = 0; - } - /* if user insists on trying to go to next - workspace even when it's already the last, - create a new one */ - else if ((ox == event.xmotion.x_root) - && wPreferences.ws_advance) { - - /* detect user "rubbing" the window - against the edge */ - if (count > 0 - && oy - event.xmotion.y_root > MOVE_THRESHOLD) - count = -(count + 1); - else if (count <= 0 - && event.xmotion.y_root - oy > MOVE_THRESHOLD) - count = -count + 1; - } - /* create a new workspace */ - if (abs(count) > 2) { - /* go to next workspace */ - wWorkspaceNew(scr); - - crossWorkspace(scr, wwin, opaque_move, - scr->current_workspace+1, False); - warped = 1; - count = 0; - } - } else if (scr->current_workspace < scr->workspace_count) { - - /* go to next workspace */ - crossWorkspace(scr, wwin, opaque_move, - scr->current_workspace+1, False); - warped = 1; - count = 0; - } - } else { - count = 0; + int oldWorkspace = scr->current_workspace; + + if (checkWorkspaceChange(wwin, &moveData, opaqueMove)) { + if (scr->current_workspace != oldWorkspace + && wPreferences.edge_resistance > 0 + && scr->selected_windows == NULL) + updateMoveData(wwin, &moveData); + warped = 1; } + } else { warped = 0; } - } else if (abs(orig_x - event.xmotion.x_root) >= MOVE_THRESHOLD - || abs(orig_y - event.xmotion.y_root) >= MOVE_THRESHOLD) { + } else if (abs(ev->xmotion.x_root - event.xmotion.x_root) >= MOVE_THRESHOLD + || abs(ev->xmotion.y_root - event.xmotion.y_root) >= MOVE_THRESHOLD) { + XChangeActivePointerGrab(dpy, ButtonMotionMask | ButtonReleaseMask | ButtonPressMask, wCursor[WCUR_MOVE], CurrentTime); started = 1; - XGrabKeyboard(dpy, root, False, GrabModeAsync, GrabModeAsync, + XGrabKeyboard(dpy, root, False, GrabModeAsync, GrabModeAsync, CurrentTime); - event.xmotion.x_root = orig_x; - event.xmotion.y_root = orig_y; - + if (!scr->selected_windows) - mapPositionDisplay(wwin, x, y, w, h); - - if (!opaque_move) + mapPositionDisplay(wwin, moveData.realX, moveData.realY, + moveData.winWidth, moveData.winHeight); + + if (started && !opaqueMove) + drawFrames(wwin, scr->selected_windows, 0, 0); + + if (!opaqueMove) XGrabServer(dpy); } - ox = event.xmotion.x_root; - oy = event.xmotion.y_root; - - if (started && !opaque_move) - drawFrames(wwin, scr->selected_windows, ox - orig_x, oy - orig_y, off_x, off_y); - - showPosition(wwin, x, y); break; case ButtonPress: @@ -1150,27 +1559,27 @@ wMouseMoveWindow(WWindow *wwin, XEvent *ev) break; if (started) { - if (!opaque_move) { + if (!opaqueMove) { drawFrames(wwin, scr->selected_windows, - ox - orig_x, oy - orig_y, off_x, off_y); + moveData.realX - wwin->frame_x, + moveData.realY - wwin->frame_y); XSync(dpy, 0); - doWindowMove(wwin, event.xmotion.x_root + XOffset, - event.xmotion.y_root + YOffset, - scr->selected_windows, - ox - orig_x, oy - orig_y, - off_x, off_y); + doWindowMove(wwin, scr->selected_windows, + moveData.realX - wwin->frame_x, + moveData.realY - wwin->frame_y); } #ifndef CONFIGURE_WINDOW_WHILE_MOVING wWindowSynthConfigureNotify(wwin); #endif - XUngrabKeyboard(dpy, CurrentTime); XUngrabServer(dpy); - if (!opaque_move) { + if (!opaqueMove) { wWindowChangeWorkspace(wwin, scr->current_workspace); wSetFocusTo(scr, wwin); } - showPosition(wwin, x, y); + if (wPreferences.move_display == WDIS_NEW) + showPosition(wwin, moveData.realX, moveData.realY); + if (!scr->selected_windows) { /* get rid of the geometry window */ unmapPositionDisplay(wwin); @@ -1179,22 +1588,31 @@ wMouseMoveWindow(WWindow *wwin, XEvent *ev) #ifdef DEBUG puts("End move window"); #endif + freeMoveData(&moveData); + return started; default: - if (started && !opaque_move) { - drawFrames(wwin, scr->selected_windows, ox - orig_x, oy - orig_y, off_x, off_y); + if (started && !opaqueMove) { + drawFrames(wwin, scr->selected_windows, + moveData.realX - wwin->frame_x, + moveData.realY - wwin->frame_y); XUngrabServer(dpy); WMHandleEvent(&event); XSync(dpy, False); XGrabServer(dpy); - drawFrames(wwin, scr->selected_windows, ox - orig_x, oy - orig_y, off_x, off_y); + drawFrames(wwin, scr->selected_windows, + moveData.realX - wwin->frame_x, + moveData.realY - wwin->frame_y); } else { WMHandleEvent(&event); } break; } } + + freeMoveData(&moveData); + return 0; } @@ -1554,6 +1972,7 @@ wSelectWindows(WScreen *scr, XEvent *ev) default: WMHandleEvent(&event); + break; } } } diff --git a/src/openlook.c b/src/openlook.c index 7d58dddf..0a273099 100644 --- a/src/openlook.c +++ b/src/openlook.c @@ -164,8 +164,6 @@ getWindowHints(Window window, OLHints *hints) return False; } - printf("WINDOW TYPE %s\n", XGetAtomName(dpy, hints->winType)); - XFree(data); /* do backward compatibility stuff */ diff --git a/src/placement.c b/src/placement.c index a9007458..1c526d4c 100644 --- a/src/placement.c +++ b/src/placement.c @@ -78,16 +78,28 @@ iconPosition(WCoreWindow *wcore, int sx1, int sy1, int sx2, int sy2, ok = 1; } else if (wcore->descriptor.parent_type == WCLASS_MINIWINDOW && - (((WIcon*)parent)->owner->frame->workspace==workspace + (((WIcon*)parent)->owner->frame->workspace == workspace || IS_OMNIPRESENT(((WIcon*)parent)->owner) || wPreferences.sticky_icons) - && !((WIcon*)parent)->owner->flags.hidden) { + && (!((WIcon*)parent)->owner->flags.hidden + || wcore->screen_ptr->flags.startup)) { *retX = ((WIcon*)parent)->owner->icon_x; *retY = ((WIcon*)parent)->owner->icon_y; ok = 1; + } else if (wcore->descriptor.parent_type == WCLASS_WINDOW + && (((WWindow*)parent)->flags.icon_moved + || ((WWindow*)parent)->flags.hidden) + && (((WWindow*)parent)->frame->workspace == workspace + || IS_OMNIPRESENT((WWindow*)parent) + || wPreferences.sticky_icons)) { + *retX = ((WWindow*)parent)->icon_x; + *retY = ((WWindow*)parent)->icon_y; + + ok = 1; } + /* * Check if it is inside the screen. @@ -280,11 +292,16 @@ smartPlaceWindow(WWindow *wwin, int *x_ret, int *y_ret, test_window = test_window->next; continue; } +#if 0 tw = test_window->client.width; if (test_window->flags.shaded) th = test_window->frame->top_width; else th = test_window->client.height + extra_height; +#else + tw = test_window->frame->core->width; + th = test_window->frame->core->height; +#endif tx = test_window->frame_x; ty = test_window->frame_y; @@ -309,11 +326,16 @@ smartPlaceWindow(WWindow *wwin, int *x_ret, int *y_ret, test_window = test_window->prev; continue; } +#if 0 tw = test_window->client.width; if (test_window->flags.shaded) th = test_window->frame->top_width; else th = test_window->client.height + extra_height; +#else + tw = test_window->frame->core->width; + th = test_window->frame->core->height; +#endif tx = test_window->frame_x; ty = test_window->frame_y; diff --git a/src/resources.c b/src/resources.c index 3dc14d43..de4dcf60 100644 --- a/src/resources.c +++ b/src/resources.c @@ -79,8 +79,8 @@ wLoadFont(char *font_name) } if (!font->font) { wwarning(_("could not create font set %s. Trying fixed"), font_name); - font->font = XCreateFontSet(dpy, "fixed", &missing, &num_missing, - &default_string); + font->font = XCreateFontSet(dpy, "-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*", + &missing, &num_missing, &default_string); if (num_missing > 0) { XFreeStringList(missing); } diff --git a/src/rootmenu.c b/src/rootmenu.c index 9aca896f..4704c5a5 100644 --- a/src/rootmenu.c +++ b/src/rootmenu.c @@ -325,9 +325,46 @@ legalPanelCommand(WMenu *menu, WMenuEntry *entry) } - /********************************************************************/ + +static char* +getLocalizedMenuFile(char *menu) +{ + char *buffer; + char *ptr; + + if (!Locale) + return NULL; + + buffer = wmalloc(strlen(menu)+32); + + /* try menu.locale_name */ + sprintf(buffer, "%s.%s", menu, Locale); + if (access(buffer, F_OK)==0) { + return buffer; + } + /* check if it is in the form aa_bb.encoding and check for aa_bb */ + ptr = strchr(Locale, '.'); + if (ptr) { + *ptr = 0; + if (access(buffer, F_OK)==0) { + return buffer; + } + } + /* now check for aa */ + ptr = strchr(buffer, '_'); + if (ptr) { + *ptr = 0; + if (access(buffer, F_OK)==0) { + return buffer; + } + } + + return NULL; +} + + static void raiseMenus(WMenu *menu) { @@ -633,7 +670,6 @@ constructMenu(WMenu *menu, WMenuEntry *entry) i=0; while(path[i] != NULL) { char *tmp; - Bool statted = False; if (strcmp(path[i], "-noext")==0) { i++; @@ -642,40 +678,16 @@ constructMenu(WMenu *menu, WMenuEntry *entry) tmp = wexpandpath(path[i]); free(path[i]); - path[i] = tmp; - - if (Locale) { - lpath = wmalloc(strlen(path[i])+32); - - strcpy(lpath, path[i]); - strcat(lpath, "."); - strcat(lpath, Locale); - if (stat(lpath, &stat_buf)<0) { - int i; - i = strlen(Locale); - if (i>2) { - lpath[strlen(lpath)-(i-2)]=0; - if (stat(lpath, &stat_buf)==0) { - statted = True; - free(path[i]); - path[i] = lpath; - lpath = NULL; - } - } - } else { - statted = True; - free(path[i]); - path[i] = lpath; - lpath = NULL; - } - } - - if (lpath) { - free(lpath); - lpath = NULL; - } + lpath = getLocalizedMenuFile(tmp); + if (lpath) { + free(tmp); + path[i] = lpath; + lpath = NULL; + } else { + path[i] = tmp; + } - if (statted || stat(path[i], &stat_buf)==0) { + if (stat(path[i], &stat_buf)==0) { if (last < stat_buf.st_mtime) last = stat_buf.st_mtime; if (first<0) @@ -1508,38 +1520,10 @@ configureMenu(WScreen *scr, proplist_t definition) Bool menu_is_default = False; /* menu definition is a string. Probably a path, so parse the file */ - + tmp = wexpandpath(PLGetString(definition)); - if (Locale) { - path = wmalloc(strlen(tmp)+32); - - strcpy(path, tmp); - strcat(path, "."); - strcat(path, Locale); - - /* look for menu.xy */ - if (stat(path, &stat_buf)<0) { - int i; - i = strlen(Locale); - if (i>2) { - path[strlen(path)-(i-2)]=0; - /* look for menu.xy_zw */ - if (stat(path, &stat_buf)<0) { - free(path); - /* If did not find any localized menus, try - * only menu. This can also mean that - * the path in WMRootMenu was already the - * path for the localized menu (eg: menu = "menu.ab") - */ - path = NULL; - } - } else { - free(path); - path = NULL; - } - } - } + path = getLocalizedMenuFile(tmp); if (!path) path = wfindfile(DEF_CONFIG_PATHS, tmp); @@ -1555,7 +1539,7 @@ configureMenu(WScreen *scr, proplist_t definition) free(tmp); return NULL; } - + if (stat(path, &stat_buf)<0) { wsyserror(_("could not access menu \"%s\" referenced in WMRootMenu"), path); free(path); diff --git a/src/screen.c b/src/screen.c index 5cc50365..75725e9f 100644 --- a/src/screen.c +++ b/src/screen.c @@ -707,7 +707,6 @@ wScreenInit(int screen_number) break; } } - RFreeStringList(formats); } } diff --git a/src/screen.h b/src/screen.h index 44bdb84d..bd996864 100644 --- a/src/screen.h +++ b/src/screen.h @@ -293,6 +293,7 @@ typedef struct _WScreen { unsigned int backimage_helper_launched:1; /* some client has issued a WM_COLORMAP_NOTIFY */ unsigned int colormap_stuff_blocked:1; + unsigned int doing_alt_tab:1; #ifdef KWM_HINTS unsigned int kwm_syncing_name:1; unsigned int kwm_syncing_count:1; @@ -326,6 +327,7 @@ int wScreenBringInside(WScreen *scr, int *x, int *y, int width, int height); /* in startup.c */ WScreen *wScreenWithNumber(int i); WScreen *wScreenForRootWindow(Window window); /* window must be valid */ +WScreen *wScreenSearchForRootWindow(Window window); WScreen *wScreenForWindow(Window window); /* slower than above functions */ void wScreenFinish(WScreen *scr); diff --git a/src/session.c b/src/session.c index 3a9849f6..ca6021f5 100644 --- a/src/session.c +++ b/src/session.c @@ -872,7 +872,7 @@ smSaveYourselfPhase2Proc(SmcConn smc_conn, SmPointer client_data) if (!statefile) { if (gsPrefix) free(prefix); - wwarning(_("end of memory while saving session state")); + wwarning(_("out of memory while saving session state")); goto fail; } @@ -880,7 +880,7 @@ smSaveYourselfPhase2Proc(SmcConn smc_conn, SmPointer client_data) i = 0; do { if (gsPrefix) - sprintf(statefile, "%s/.AppInfo/WindowMaker/%l%i.state", + sprintf(statefile, "%s/.AppInfo/WindowMaker/wmaker.%l%i.state", prefix, t, i); else sprintf(statefile, "%s/wmaker.%l%i.state", prefix, t, i); diff --git a/src/shutdown.c b/src/shutdown.c index 1ae4a5ce..215d6ead 100644 --- a/src/shutdown.c +++ b/src/shutdown.c @@ -162,7 +162,7 @@ RestoreDesktop(WScreen *scr) { int i; - if (scr->helper_pid) { + if (scr->helper_pid > 0) { kill(scr->helper_pid, SIGTERM); scr->helper_pid = 0; } diff --git a/src/stacking.c b/src/stacking.c index 2c8e72f3..6c6dbcc5 100644 --- a/src/stacking.c +++ b/src/stacking.c @@ -169,7 +169,7 @@ CommitStacking(WScreen *scr) * Changes the stacking order of frame. *---------------------------------------------------------------------- */ -void +static void moveFrameToUnder(WCoreWindow *under, WCoreWindow *frame) { Window wins[2]; diff --git a/src/stacking.h b/src/stacking.h index 2c05a884..9e721544 100644 --- a/src/stacking.h +++ b/src/stacking.h @@ -42,5 +42,4 @@ void RemakeStackList(WScreen *scr); void CommitStacking(WScreen *scr); - #endif diff --git a/src/startup.c b/src/startup.c index 7a797030..2702831c 100644 --- a/src/startup.c +++ b/src/startup.c @@ -206,6 +206,7 @@ catchXError(Display *dpy, XErrorEvent *error) static int handleXIO(Display *dpy) { + dpy = NULL; Exit(0); return 0; } @@ -531,10 +532,11 @@ WScreen* wScreenWithNumber(int i) { assert(i < wScreenCount); - + return wScreen[i]; } + WScreen* wScreenForRootWindow(Window window) { @@ -559,6 +561,30 @@ wScreenForRootWindow(Window window) return NULL; } + +WScreen* +wScreenSearchForRootWindow(Window window) +{ + int i; + + if (wScreenCount==1) + return wScreen[0]; + + /* + * Since the number of heads will probably be small (normally 2), + * it should be faster to use this than a hash table, because + * of the overhead. + */ + for (i=0; iroot_win == window) { + return wScreen[i]; + } + } + + return NULL; +} + + WScreen* wScreenForWindow(Window window) { @@ -899,7 +925,7 @@ manageAllWindows(WScreen *scr) scr->flags.startup = 1; /* first remove all icon windows */ - for (i=0; i=0 || wattribs.map_state!=IsUnmapped)) { - XUnmapWindow(dpy, children[i]); if (state==WithdrawnState) { /* move the window far away so that it doesn't flash */ @@ -941,7 +967,7 @@ manageAllWindows(WScreen *scr) } wwin = wManageWindow(scr, children[i]); if (wwin) { - if (state==WithdrawnState) { + if (state == WithdrawnState) { wwin->flags.mapped = 0; wClientSetState(wwin, WithdrawnState, None); XSelectInput(dpy, wwin->client_win, NoEventMask); @@ -954,40 +980,46 @@ manageAllWindows(WScreen *scr) wwin->flags.shaded = 0; wShadeWindow(wwin); } - if (wwin->flags.hidden) { - WApplication *wapp = wApplicationOf(wwin->main_window); - wwin->flags.hidden = 0; - if (wapp) { - wHideApplication(wapp); - } - wwin->flags.ignore_next_unmap=1; - } else { - if (wwin->wm_hints && - (wwin->wm_hints->flags & StateHint) && state<0) - state=wwin->wm_hints->initial_state; - if (state==IconicState) { - /* iconify if it's not a transient */ - if (wwin->transient_for==None - || wwin->transient_for==wwin->client_win - || !windowInList(wwin->transient_for, - children, nchildren)) { - wwin->flags.miniaturized = 0; - wIconifyWindow(wwin); - wwin->flags.ignore_next_unmap=1; - } - } else { - wClientSetState(wwin, NormalState, None); - } - } - } + if (wwin->wm_hints && + (wwin->wm_hints->flags & StateHint) && state < 0) + state = wwin->wm_hints->initial_state; + + if ((state == IconicState || wwin->flags.miniaturized) + && (wwin->transient_for == None + || wwin->transient_for == wwin->client_win + || !windowInList(wwin->transient_for, + children, nchildren))) { + wwin->flags.miniaturized = 0; + wIconifyWindow(wwin); + } else { + wClientSetState(wwin, NormalState, None); + } + } } - if (state==WithdrawnState) { + if (state == WithdrawnState) { /* move the window back to it's old position */ XMoveWindow(dpy, children[i], wattribs.x, wattribs.y); } } } XUngrabServer(dpy); + + /* hide apps */ + wwin = scr->focused_window; + while (wwin) { + if (wwin->flags.hidden) { + WApplication *wapp = wApplicationOf(wwin->main_window); + + if (wapp) { + wwin->flags.hidden = 0; + wHideApplication(wapp); + } else { + wwin->flags.hidden = 0; + } + } + wwin = wwin->prev; + } + XFree(children); scr->flags.startup = 0; scr->flags.startup2 = 1; diff --git a/src/superfluous.c b/src/superfluous.c index b8cac573..2106e6bf 100644 --- a/src/superfluous.c +++ b/src/superfluous.c @@ -182,8 +182,8 @@ DoKaboom(WScreen *scr, Window win, int x, int y) while (k>0) { XEvent foo; - if (XCheckTypedWindowEvent(dpy, scr->root_win, ButtonPressMask, - &foo)) { + if (XCheckTypedEvent(dpy, ButtonPress, &foo)) { + XPutBackEvent(dpy, &foo); XClearWindow(dpy, scr->root_win); break; } @@ -256,6 +256,7 @@ DoKaboom(WScreen *scr, Window win, int x, int y) # endif #endif } + XFreePixmap(dpy, tmp); } #endif /* !DEMATERIALIZE_ICON */ @@ -510,7 +511,7 @@ InitXThing(WScreen *scr) if ((l->tm_mon!=12||l->tm_mday<24||l->tm_mday>26)) { return False; } - + if (!loadData(scr)) return False; diff --git a/src/switchmenu.c b/src/switchmenu.c index 0574b67a..4488ebbd 100644 --- a/src/switchmenu.c +++ b/src/switchmenu.c @@ -162,10 +162,7 @@ menuIndexForWindow(WMenu *menu, WWindow *wwin, int old_pos) /* - * * Update switch menu - * - * */ void UpdateSwitchMenu(WScreen *scr, WWindow *wwin, int action) @@ -317,7 +314,6 @@ UpdateSwitchMenu(WScreen *scr, WWindow *wwin, int action) entry->flags.indicator_on = wwin->flags.focused; entry->flags.indicator_type = MI_DIAMOND; } - wMenuPaint(switchmenu); break; } break; diff --git a/src/wconfig.h b/src/wconfig.h index f1e0d898..23a371c0 100644 --- a/src/wconfig.h +++ b/src/wconfig.h @@ -37,6 +37,15 @@ *-------------------------------------------------------------------- */ +/* undefine WEENDOZE_CYCLING to remove all Windoze style Alt-Tab cycling + * If define, windoze cycling must still be enabled with the + * WindozeCycling = YES and FinishedCyclingKey = Meta_L options + + not working yet + */ +#undef WEENDOZE_CYCLING + + /* undefine ANIMATIONS if you don't want animations for iconification, * shading, icon arrangement etc. */ #define ANIMATIONS @@ -169,6 +178,10 @@ */ #undef SHADOW_RESIZEBAR +/* + * Titlebar text shadow + */ +#undef TITLE_TEXT_SHADOW /* * Define DEMATERIALIZE_ICON if you want the undocked icon animation @@ -263,12 +276,8 @@ #define DEF_APPMENU_X 10 #define DEF_APPMENU_Y 10 -/* number of window shortcuts */ -#ifdef EXTEND_WINDOWSHORTCUT -# define MAX_WINDOW_SHORTCUTS 10 -#else -# define MAX_WINDOW_SHORTCUTS 4 -#endif +/* calculate window edge resistance from edge resistance */ +#define WIN_RESISTANCE(x) (((x)*20)/30) /* Window level where icons reside */ #define NORMAL_ICON_LEVEL WMNormalLevel @@ -449,6 +458,13 @@ */ +/* number of window shortcuts */ +#ifdef EXTEND_WINDOWSHORTCUT +# define MAX_WINDOW_SHORTCUTS 10 +#else +# define MAX_WINDOW_SHORTCUTS 4 +#endif + #define WM_PI 3.14159265358979323846 diff --git a/src/wconfig.h.in b/src/wconfig.h.in index 9984ec71..62f21cf4 100644 --- a/src/wconfig.h.in +++ b/src/wconfig.h.in @@ -37,6 +37,15 @@ *-------------------------------------------------------------------- */ +/* undefine WEENDOZE_CYCLING to remove all Windoze style Alt-Tab cycling + * If define, windoze cycling must still be enabled with the + * WindozeCycling = YES and FinishedCyclingKey = Meta_L options + + not working yet + */ +#undef WEENDOZE_CYCLING + + /* undefine ANIMATIONS if you don't want animations for iconification, * shading, icon arrangement etc. */ #define ANIMATIONS @@ -169,6 +178,10 @@ */ #undef SHADOW_RESIZEBAR +/* + * Titlebar text shadow + */ +#undef TITLE_TEXT_SHADOW /* * Define DEMATERIALIZE_ICON if you want the undocked icon animation @@ -263,12 +276,8 @@ #define DEF_APPMENU_X 10 #define DEF_APPMENU_Y 10 -/* number of window shortcuts */ -#ifdef EXTEND_WINDOWSHORTCUT -# define MAX_WINDOW_SHORTCUTS 10 -#else -# define MAX_WINDOW_SHORTCUTS 4 -#endif +/* calculate window edge resistance from edge resistance */ +#define WIN_RESISTANCE(x) (((x)*20)/30) /* Window level where icons reside */ #define NORMAL_ICON_LEVEL WMNormalLevel @@ -449,6 +458,13 @@ */ +/* number of window shortcuts */ +#ifdef EXTEND_WINDOWSHORTCUT +# define MAX_WINDOW_SHORTCUTS 10 +#else +# define MAX_WINDOW_SHORTCUTS 4 +#endif + #define WM_PI 3.14159265358979323846 diff --git a/src/window.c b/src/window.c index 1f605236..0b387bf9 100644 --- a/src/window.c +++ b/src/window.c @@ -1,4 +1,4 @@ -/* window.c - client window managing class +/* window.c - client window managing stuffs * * Window Maker window manager * @@ -500,7 +500,7 @@ wManageWindow(WScreen *scr, Window window) /* mutex. */ XGrabServer(dpy); - XSync(dpy, 0); + XSync(dpy, False); /* make sure the window is still there */ if (!XGetWindowAttributes(dpy, window, &wattribs)) { XUngrabServer(dpy); @@ -557,6 +557,7 @@ wManageWindow(WScreen *scr, Window window) wwin->old_border_width = wattribs.border_width; + wwin->event_mask = CLIENT_EVENTS; attribs.event_mask = CLIENT_EVENTS; attribs.do_not_propagate_mask = ButtonPressMask | ButtonReleaseMask; attribs.save_under = False; @@ -566,7 +567,7 @@ wManageWindow(WScreen *scr, Window window) /* get hints from GNUstep app */ if (!PropGetGNUstepWMAttr(window, &wwin->wm_gnustep_attr)) { - wwin->wm_gnustep_attr=NULL; + wwin->wm_gnustep_attr = NULL; } wwin->client_leader = PropGetClientLeader(window); @@ -626,7 +627,6 @@ wManageWindow(WScreen *scr, Window window) /* get colormap windows */ GetColormapWindows(wwin); - /* *-------------------------------------------------- * @@ -640,7 +640,7 @@ wManageWindow(WScreen *scr, Window window) #ifdef OLWM_HINTS if (wwin->client_flags.olwm_transient && wwin->transient_for==None - && wwin->group_id!=None && wwin->group_id != window) { + && wwin->group_id != None && wwin->group_id != window) { transientOwner = wWindowFor(wwin->group_id); @@ -860,9 +860,16 @@ wManageWindow(WScreen *scr, Window window) wwin->frame->on_mousedown_resizebar = resizebarMouseDown; + + XSelectInput(dpy, wwin->client_win, + wwin->event_mask & ~StructureNotifyMask); + XReparentWindow(dpy, wwin->client_win, wwin->frame->core->window, 0, wwin->frame->top_width); + XSelectInput(dpy, wwin->client_win, wwin->event_mask); + + { int gx, gy; @@ -872,7 +879,6 @@ wManageWindow(WScreen *scr, Window window) if (gy > 0) y -= wwin->frame->top_width + wwin->frame->bottom_width; } - /* * wWindowConfigure() will init the client window's size * (wwin->client.{width,height}) and all other geometry @@ -880,13 +886,16 @@ wManageWindow(WScreen *scr, Window window) */ wWindowConfigure(wwin, x, y, width, height); + /* to make sure the window receives it's new position after reparenting */ + wWindowSynthConfigureNotify(wwin); + /* *-------------------------------------------------- * * Setup descriptors and save window to internal * lists * - *-------------------------------------------------- + *-------------------------------------------------- */ if (wwin->main_window!=None) { @@ -932,11 +941,12 @@ wManageWindow(WScreen *scr, Window window) XLowerWindow(dpy, window); /* if window is in this workspace and should be mapped, then map it */ - if (!wwin->flags.miniaturized && (workspace == scr->current_workspace - || IS_OMNIPRESENT(wwin)) + if (!wwin->flags.miniaturized + && (workspace == scr->current_workspace || IS_OMNIPRESENT(wwin)) && !wwin->flags.hidden && !(wwin->wm_hints && (wwin->wm_hints->flags & StateHint) && wwin->wm_hints->initial_state == WithdrawnState)) { + /* The following "if" is to avoid crashing of clients that expect * WM_STATE set before they get mapped. Else WM_STATE is set later, * after the return from this function. @@ -952,11 +962,12 @@ wManageWindow(WScreen *scr, Window window) #define _WIDTH(w) (w)->frame->core->width #define _HEIGHT(w) (w)->frame->core->height if (!wPreferences.auto_focus && scr->focused_window - && !scr->flags.startup - && wWindowObscuresWindow(wwin, scr->focused_window) - && (_WIDTH(wwin) > (_WIDTH(scr->focused_window)*5)/3 - || _HEIGHT(wwin) > (_HEIGHT(scr->focused_window)*5)/3) - && WINDOW_LEVEL(scr->focused_window) == WINDOW_LEVEL(wwin)) { + && !scr->flags.startup && !transientOwner + && ((wWindowObscuresWindow(wwin, scr->focused_window) + && (_WIDTH(wwin) > (_WIDTH(scr->focused_window)*5)/3 + || _HEIGHT(wwin) > (_HEIGHT(scr->focused_window)*5)/3) + && WINDOW_LEVEL(scr->focused_window) == WINDOW_LEVEL(wwin)) + || wwin->flags.maximized)) { MoveInStackListUnder(scr->focused_window->frame->core, wwin->frame->core); } @@ -985,11 +996,8 @@ wManageWindow(WScreen *scr, Window window) || wPreferences.auto_focus)) { DoWindowBirth(wwin); } - XMapSubwindows(dpy, wwin->frame->core->window); wWindowMap(wwin); - } else { - XMapSubwindows(dpy, wwin->frame->core->window); } /* setup stacking descriptor */ @@ -1031,7 +1039,7 @@ wManageWindow(WScreen *scr, Window window) #endif XUngrabServer(dpy); - + /* *-------------------------------------------------- * @@ -1043,12 +1051,11 @@ wManageWindow(WScreen *scr, Window window) wFrameWindowChangeState(wwin->frame, WS_UNFOCUSED); - if (!wwin->flags.miniaturized && workspace == scr->current_workspace) { + if (!wwin->flags.miniaturized && workspace == scr->current_workspace + && !wwin->flags.hidden) { if ((transientOwner && transientOwner->flags.focused) || wPreferences.auto_focus) wSetFocusTo(scr, wwin); - } else { - wwin->flags.ignore_next_unmap = 1; } wWindowResetMouseGrabs(wwin); @@ -1061,13 +1068,6 @@ wManageWindow(WScreen *scr, Window window) #ifdef KWM_HINTS wKWMSendEventMessage(wwin, WKWMAddWindow); #endif - /* - * Prevent window withdrawal when getting the - * unmap notifies generated during reparenting - */ - wwin->flags.mapped = 0; - - XSync(dpy, 0); wColormapInstallForWindow(wwin->screen_ptr, scr->cmap_window); @@ -1325,7 +1325,7 @@ wUnmanageWindow(WWindow *wwin, Bool restore, Bool destroyed) scr->focused_window = wwin->prev; scr->focused_window->next = NULL; } - + /* if in click to focus mode and the window * was a transient, focus the owner window */ @@ -1396,8 +1396,43 @@ wUnmanageWindow(WWindow *wwin, Bool restore, Bool destroyed) void -wWindowFocus(WWindow *wwin) +wWindowMap(WWindow *wwin) +{ + XMapWindow(dpy, wwin->frame->core->window); + if (!wwin->flags.shaded) { + /* window will be remapped when getting MapNotify */ + XSelectInput(dpy, wwin->client_win, + wwin->event_mask & ~StructureNotifyMask); + XMapWindow(dpy, wwin->client_win); + XSelectInput(dpy, wwin->client_win, wwin->event_mask); + + wwin->flags.mapped = 1; + } +} + + +void +wWindowUnmap(WWindow *wwin) +{ + wwin->flags.mapped = 0; + + /* prevent window withdrawal when getting UnmapNotify */ + XSelectInput(dpy, wwin->client_win, + wwin->event_mask & ~StructureNotifyMask); + XUnmapWindow(dpy, wwin->client_win); + XSelectInput(dpy, wwin->client_win, wwin->event_mask); + + XUnmapWindow(dpy, wwin->frame->core->window); +} + + + +void +wWindowFocus(WWindow *wwin, WWindow *owin) { + WWindow *nowner; + WWindow *oowner; + #ifdef KEEP_XKB_LOCK_STATUS if (wPreferences.modelock) { if (!wwin->flags.focused) { @@ -1406,43 +1441,54 @@ wWindowFocus(WWindow *wwin) } #endif /* KEEP_XKB_LOCK_STATUS */ - wFrameWindowChangeState(wwin->frame, WS_FOCUSED); + wwin->flags.semi_focused = 0; - wwin->flags.focused=1; + wFrameWindowChangeState(wwin->frame, WS_FOCUSED); wWindowResetMouseGrabs(wwin); + wwin->flags.focused = 1; + UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE); -} + if (owin == wwin || !owin) + return; + nowner = wWindowFor(wwin->transient_for); -void -wWindowMap(WWindow *wwin) -{ - XMapWindow(dpy, wwin->frame->core->window); - if (!wwin->flags.shaded) { - XMapWindow(dpy, wwin->client_win); - wwin->flags.mapped = 1; + /* new window is a transient for the old window */ + if (nowner == owin) { + owin->flags.semi_focused = 1; + wWindowUnfocus(nowner); + return; } -} + /* new window is owner of old window */ + if (wwin == oowner) { + wWindowUnfocus(owin); + return; + } -void -wWindowUnmap(WWindow *wwin) -{ - XWindowAttributes attribs; + if (!nowner) { + wWindowUnfocus(owin); + return; + } - XGetWindowAttributes(dpy, wwin->client_win, &attribs); - wwin->flags.mapped = 0; + /* new window has same owner of old window */ + oowner = wWindowFor(owin->transient_for); + if (oowner == nowner) { + /* prevent unfocusing of owner */ + oowner->flags.semi_focused = 0; + wWindowUnfocus(owin); + oowner->flags.semi_focused = 1; - /* prevent window withdrawal when getting UnmapNotify */ - XSelectInput(dpy, wwin->client_win, - attribs.your_event_mask & ~StructureNotifyMask); - XUnmapWindow(dpy, wwin->client_win); - XSelectInput(dpy, wwin->client_win, attribs.your_event_mask); + return; + } - XUnmapWindow(dpy, wwin->frame->core->window); + /* nowner != NULL && oowner != nowner */ + nowner->flags.semi_focused = 1; + wWindowUnfocus(nowner); + wWindowUnfocus(owin); } @@ -1477,7 +1523,7 @@ wWindowUnfocus(WWindow *wwin) } } } - wwin->flags.focused=0; + wwin->flags.focused = 0; wWindowResetMouseGrabs(wwin); UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE); @@ -1591,19 +1637,29 @@ wWindowChangeWorkspace(WWindow *wwin, int workspace) if (workspace != scr->current_workspace) { /* Sent to other workspace. Unmap window */ - if ((wwin->flags.mapped||wwin->flags.shaded) + if ((wwin->flags.mapped + || wwin->flags.shaded + || (wwin->flags.miniaturized && !wPreferences.sticky_icons)) && !IS_OMNIPRESENT(wwin) && !wwin->flags.changing_workspace) { - + wapp = wApplicationOf(wwin->main_window); if (wapp) { wapp->last_workspace = workspace; } - unmap = 1; - wSetFocusTo(scr, NULL); + if (wwin->flags.miniaturized) { + XUnmapWindow(dpy, wwin->icon->core->window); + wwin->icon->mapped = 0; + } else { + unmap = 1; + wSetFocusTo(scr, NULL); + } } } else { /* brought to current workspace. Map window */ - if (!wwin->flags.mapped && + if (wwin->flags.miniaturized && !wPreferences.sticky_icons) { + XMapWindow(dpy, wwin->icon->core->window); + wwin->icon->mapped = 1; + } else if (!wwin->flags.mapped && !(wwin->flags.miniaturized || wwin->flags.hidden)) { wWindowMap(wwin); } @@ -1893,23 +1949,25 @@ wWindowConfigureBorders(WWindow *wwin) if (wwin->frame) { int flags; int newy, oldh; - + flags = WFF_LEFT_BUTTON|WFF_RIGHT_BUTTON; if (!WFLAGP(wwin, no_titlebar)) flags |= WFF_TITLEBAR; if (!WFLAGP(wwin, no_resizebar)) flags |= WFF_RESIZEBAR; + if (wwin->flags.shaded) + flags |= WFF_IS_SHADED; oldh = wwin->frame->top_width; wFrameWindowUpdateBorders(wwin->frame, flags); if (oldh != wwin->frame->top_width) { newy = wwin->frame_y + oldh - wwin->frame->top_width; - + XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width); wWindowConfigure(wwin, wwin->frame_x, newy, wwin->client.width, wwin->client.height); } - + flags = 0; if (!WFLAGP(wwin, no_miniaturize_button) && wwin->frame->flags.hide_left_button) diff --git a/src/window.h b/src/window.h index d930a9de..817a5134 100644 --- a/src/window.h +++ b/src/window.h @@ -45,7 +45,7 @@ #define CLIENT_EVENTS (StructureNotifyMask | PropertyChangeMask\ | EnterWindowMask | LeaveWindowMask | ColormapChangeMask \ - | FocusChangeMask) + | FocusChangeMask | VisibilityChangeMask) typedef enum { WFM_PASSIVE, WFM_NO_INPUT, WFM_LOCALLY_ACTIVE, WFM_GLOBALLY_ACTIVE @@ -224,6 +224,8 @@ typedef struct WWindow { struct WOLWindowState ol_window_state; #endif + long event_mask; /* the event mask thats selected */ + #ifdef MONITOR_HEARTBEAT time_t last_beat; #endif @@ -252,19 +254,20 @@ typedef struct WWindow { * window next time it's painted */ unsigned int icon_moved:1; /* icon for this window was moved * by the user */ - unsigned int ignore_next_unmap:1; unsigned int selected:1; /* multiple window selection */ unsigned int skip_next_animation:1; unsigned int internal_window:1; unsigned int changing_workspace:1; unsigned int inspector_open:1; /* attrib inspector is already open */ - + unsigned int destroyed:1; /* window was already destroyed */ unsigned int menu_open_for_me:1; /* window commands menu */ unsigned int waiting_save_ack:1; /* waiting for SAVE_YOURSELF ack */ + + unsigned int obscured:1; /* window is obscured */ #ifdef KWM_HINTS unsigned int kwm_hidden_for_modules:1; #endif @@ -328,7 +331,7 @@ WWindow *wManageWindow(WScreen *scr, Window window); void wUnmanageWindow(WWindow *wwin, Bool restore, Bool destroyed); -void wWindowFocus(WWindow *wwin); +void wWindowFocus(WWindow *wwin, WWindow *owin); void wWindowUnfocus(WWindow *wwin); void wWindowConstrainSize(WWindow *wwin, int *nwidth, int *nheight); void wWindowConfigure(WWindow *wwin, int req_x, int req_y, diff --git a/src/winmenu.c b/src/winmenu.c index 8f2b5ddf..d7625732 100644 --- a/src/winmenu.c +++ b/src/winmenu.c @@ -43,6 +43,7 @@ #include "winspector.h" #include "dialog.h" #include "stacking.h" +#include "icon.h" #define MC_MAXIMIZE 0 #define MC_MINIATURIZE 1 @@ -157,7 +158,10 @@ execMenuCommand(WMenu *menu, WMenuEntry *entry) break; case MC_SELECT: - wSelectWindow(wwin, !wwin->flags.selected); + if (!wwin->flags.miniaturized) + wSelectWindow(wwin, !wwin->flags.selected); + else + wIconSelect(wwin->icon); break; case MC_MOVERESIZE: @@ -308,11 +312,13 @@ updateOptionsMenu(WMenu *menu, WWindow *wwin) smenu->entries[WO_KEEP_ON_TOP]->clientdata = wwin; smenu->entries[WO_KEEP_ON_TOP]->flags.indicator_on = (wwin->frame->core->stacking->window_level == WMFloatingLevel)?1:0; + wMenuSetEnabled(smenu, WO_KEEP_ON_TOP, !wwin->flags.miniaturized); /* keep at bottom check */ smenu->entries[WO_KEEP_AT_BOTTOM]->clientdata = wwin; smenu->entries[WO_KEEP_AT_BOTTOM]->flags.indicator_on = (wwin->frame->core->stacking->window_level == WMSunkenLevel)?1:0; + wMenuSetEnabled(smenu, WO_KEEP_AT_BOTTOM, !wwin->flags.miniaturized); /* omnipresent check */ smenu->entries[WO_OMNIPRESENT]->clientdata = wwin; @@ -552,8 +558,11 @@ updateMenuForWindow(WMenu *menu, WWindow *wwin) menu->entries[MC_MAXIMIZE]->text = text; } + wMenuSetEnabled(menu, MC_MAXIMIZE, !WFLAGP(wwin, no_resizable)); + - wMenuSetEnabled(menu, MC_MOVERESIZE, !WFLAGP(wwin, no_resizable)); + wMenuSetEnabled(menu, MC_MOVERESIZE, !WFLAGP(wwin, no_resizable) + && !wwin->flags.miniaturized); if (wwin->flags.shaded) { static char *text = NULL; @@ -637,7 +646,6 @@ OpenWindowMenu(WWindow *wwin, int x, int y, int keyboard) } -#if 0 void OpenMiniwindowMenu(WWindow *wwin, int x, int y) { @@ -671,4 +679,4 @@ OpenMiniwindowMenu(WWindow *wwin, int x, int y) wMenuMapAt(menu, x, y, False); } -#endif + diff --git a/src/winspector.c b/src/winspector.c index 71f4b557..41b47a25 100644 --- a/src/winspector.c +++ b/src/winspector.c @@ -169,7 +169,7 @@ destroyInspector(WCoreWindow *foo, void *data, XEvent *event) WMRemoveNotificationObserver(panel); - panel->frame->flags.mapped = 0; + wWindowUnmap(panel->frame); wUnmanageWindow(panel->frame, True, False); freeInspector(panel); @@ -987,6 +987,7 @@ createInspectorForWindow(WWindow *wwin) WMPixmap *pixmap; #endif panel = wmalloc(sizeof(InspectorPanel)); + memset(panel, 0, sizeof(InspectorPanel)); panel->destroyed = 0; @@ -1114,27 +1115,27 @@ createInspectorForWindow(WWindow *wwin) switch (i) { case 0: - caption = _("Disable titlebar"); + caption = _("Disable Titlebar"); flag = WFLAGP(wwin, no_titlebar); break; case 1: - caption = _("Disable resizebar"); + caption = _("Disable Resizebar"); flag = WFLAGP(wwin, no_resizebar); break; case 2: - caption = _("Disable close button"); + caption = _("Disable Close Button"); flag = WFLAGP(wwin, no_close_button); break; case 3: - caption = _("Disable miniaturize button"); + caption = _("Disable Miniaturize Button"); flag = WFLAGP(wwin, no_miniaturize_button); break; case 4: - caption = _("Keep on top / floating"); + caption = _("Keep on Top / Floating"); flag = WFLAGP(wwin, floating); break; case 5: - caption = _("Keep at bottom / sunken"); + caption = _("Keep at Bottom / Sunken"); flag = WFLAGP(wwin, sunken); break; case 6: @@ -1150,7 +1151,7 @@ createInspectorForWindow(WWindow *wwin) flag = WFLAGP(wwin, start_maximized!=0); break; case 9: - caption = _("Skip window list"); + caption = _("Skip Window List"); flag = WFLAGP(wwin, skip_window_list); break; } @@ -1178,19 +1179,19 @@ createInspectorForWindow(WWindow *wwin) flag = WFLAGP(wwin, no_hide_others); break; case 1: - caption = _("Don't bind keyboard shortcuts"); + caption = _("Don't Bind Keyboard Shortcuts"); flag = WFLAGP(wwin, no_bind_keys); break; case 2: - caption = _("Don't bind mouse clicks"); + caption = _("Don't Bind Mouse Clicks"); flag = WFLAGP(wwin, no_bind_mouse); break; case 3: - caption = _("Keep inside screen"); + caption = _("Keep Inside Screen"); flag = WFLAGP(wwin, dont_move_off); break; case 4: - caption = _("Don't let it take focus"); + caption = _("Don't Let It Take Focus"); flag = WFLAGP(wwin, no_focusable); break; case 5: @@ -1254,7 +1255,7 @@ createInspectorForWindow(WWindow *wwin) panel->fileLbl = WMCreateLabel(panel->iconFrm); WMMoveWidget(panel->fileLbl, 20, 95); WMResizeWidget(panel->fileLbl, PWIDTH - (2 * 15) - (2 * 20), 14); - WMSetLabelText(panel->fileLbl, _("Icon file name:")); + WMSetLabelText(panel->fileLbl, _("Icon File Name:")); panel->fileText = WMCreateTextField(panel->iconFrm); WMMoveWidget(panel->fileText, 20, 115); @@ -1326,7 +1327,7 @@ createInspectorForWindow(WWindow *wwin) flag = WFLAGP(wapp->main_window_desc, start_hidden); break; case 1: - caption = _("No application icon"); + caption = _("No Application Icon"); flag = WFLAGP(wapp->main_window_desc, no_appicon); break; } diff --git a/src/workspace.c b/src/workspace.c index ecfcc20b..78eb7628 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -252,7 +252,7 @@ wWorkspaceRelativeChange(WScreen *scr, int amount) if (w < scr->workspace_count) wWorkspaceChange(scr, w); else if (wPreferences.ws_advance) - wWorkspaceChange(scr, WMAX(w, MAX_WORKSPACES-1)); + wWorkspaceChange(scr, WMIN(w, MAX_WORKSPACES-1)); else if (wPreferences.ws_cycle) wWorkspaceChange(scr, w % scr->workspace_count); } @@ -283,7 +283,7 @@ wWorkspaceForceChange(WScreen *scr, int workspace) wWorkspaceMenuUpdate(scr, scr->clip_ws_menu); if ((tmp = scr->focused_window)!= NULL) { - if (IS_OMNIPRESENT(tmp)) + if (IS_OMNIPRESENT(tmp) || tmp->flags.changing_workspace) foc = tmp; while (tmp) { @@ -401,7 +401,7 @@ wWorkspaceForceChange(WScreen *scr, int workspace) #ifdef KWM_HINTS wKWMUpdateCurrentWorkspaceHint(scr); #endif - XSync(dpy, False); +/* XSync(dpy, False); */ } diff --git a/test/Makefile.in b/test/Makefile.in index 06c46d50..9c7ebf04 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/util/Makefile.am b/util/Makefile.am index a658606d..97e21d6d 100644 --- a/util/Makefile.am +++ b/util/Makefile.am @@ -5,14 +5,14 @@ pkgdatadir = $(datadir)/@PACKAGE@ bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmsetbg -bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont +bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont -EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c +EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c -INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib @XCFLAGS@ @GFXFLAGS@ +INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib @HEADER_SEARCH_PATH@ -# X_EXTRA_LIBS is for libproplist in systems that need -lsocket -liblist= @XLFLAGS@ @LIBPL@ @X_EXTRA_LIBS@ +# X_EXTRA_LIBS is for libproplist in systems that need -lsocket +liblist= @LIBRARY_SEARCH_PATH@ @LIBPL@ @X_EXTRA_LIBS@ wdwrite_LDADD = $(liblist) @@ -32,8 +32,9 @@ geticonset_LDADD= $(liblist) wmsetbg_LDADD = \ $(top_builddir)/WINGs/libWINGs.a \ $(top_builddir)/wrlib/libwraster.la \ + @LIBRARY_SEARCH_PATH@ \ @LIBPL@ \ - @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ -lm + @GFXLIBS@ @XLIBS@ -lm getstyle_SOURCES = getstyle.c @@ -55,10 +56,11 @@ CLEANFILES = wmaker.inst wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile -rm -f wmaker.inst - sed -e "s:#pkgdatadir#:$(pkgdatadir):" \ - -e "s/#version#/$(VERSION)/" \ - -e "s:#bindir#:$(bindir):" \ - -e "s:#LITE#:@LITE@:" \ + sed -e "s|#pkgdatadir#|$(pkgdatadir)|" \ + -e "s|#sysconfdir#|$(sysconfdir)/WindowMaker|" \ + -e "s|#version#|$(VERSION)|" \ + -e "s|#bindir#|$(bindir)|" \ + -e "s|#LITE#|@LITE@|" \ $(srcdir)/wmaker.inst.in >wmaker.inst chmod 755 wmaker.inst diff --git a/util/Makefile.in b/util/Makefile.in index 0eb259b8..57b1be76 100644 --- a/util/Makefile.in +++ b/util/Makefile.in @@ -60,13 +60,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -91,14 +91,14 @@ pkgdatadir = $(datadir)/@PACKAGE@ bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmsetbg -bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont +bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont -EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c +EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c -INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib @XCFLAGS@ @GFXFLAGS@ +INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib @HEADER_SEARCH_PATH@ -# X_EXTRA_LIBS is for libproplist in systems that need -lsocket -liblist = @XLFLAGS@ @LIBPL@ @X_EXTRA_LIBS@ +# X_EXTRA_LIBS is for libproplist in systems that need -lsocket +liblist = @LIBRARY_SEARCH_PATH@ @LIBPL@ @X_EXTRA_LIBS@ wdwrite_LDADD = $(liblist) @@ -114,7 +114,7 @@ seticons_LDADD = $(liblist) geticonset_LDADD = $(liblist) -wmsetbg_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBPL@ @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ -lm +wmsetbg_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @LIBPL@ @GFXLIBS@ @XLIBS@ -lm getstyle_SOURCES = getstyle.c @@ -437,10 +437,11 @@ mostlyclean distclean maintainer-clean wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile -rm -f wmaker.inst - sed -e "s:#pkgdatadir#:$(pkgdatadir):" \ - -e "s/#version#/$(VERSION)/" \ - -e "s:#bindir#:$(bindir):" \ - -e "s:#LITE#:@LITE@:" \ + sed -e "s|#pkgdatadir#|$(pkgdatadir)|" \ + -e "s|#sysconfdir#|$(sysconfdir)/WindowMaker|" \ + -e "s|#version#|$(VERSION)|" \ + -e "s|#bindir#|$(bindir)|" \ + -e "s|#LITE#|@LITE@|" \ $(srcdir)/wmaker.inst.in >wmaker.inst chmod 755 wmaker.inst diff --git a/util/README b/util/README index 4f872a37..5b764249 100644 --- a/util/README +++ b/util/README @@ -33,3 +33,4 @@ wdwrite- write data into the defaults database (configuration files). wsetfont- set locale the fonts needed for a specific locale for Window Maker +wkdemenu.sh- convert a KDE menu into a wmaker menu (for pipe) diff --git a/util/getstyle.c b/util/getstyle.c index edab127d..87105046 100644 --- a/util/getstyle.c +++ b/util/getstyle.c @@ -33,6 +33,7 @@ #include #include #include +#include #ifndef PATH_MAX #define PATH_MAX 1024 @@ -112,12 +113,13 @@ globalDefaultsPathForDomain(char *domain) char path[1024]; char *tmp; - sprintf(path, "%s/%s/%s", PKGDATADIR, DEFAULTS_DIR, domain); + sprintf(path, "%s/%s", SYSCONFDIR, domain); tmp = malloc(strlen(path)+2); + assert(tmp!=NULL); strcpy(tmp, path); - return tmp; + return tmp; } @@ -534,6 +536,12 @@ main(int argc, char **argv) puts(PROG_VERSION); exit(0); } else { + if (style_file!=NULL) { + printf("%s: invalid argument '%s'\n", argv[0], + style_file[0]=='-' ? style_file : argv[i]); + printf("Try '%s --help' for more information\n", argv[0]); + exit(1); + } style_file = argv[i]; } } diff --git a/util/wmaker.inst.in b/util/wmaker.inst.in index 4d691682..0c0384e9 100644 --- a/util/wmaker.inst.in +++ b/util/wmaker.inst.in @@ -13,6 +13,7 @@ fi # directory where system wide configuration is stored GLOBALDIR="#pkgdatadir#" +GLOBALDEFDIR="#sysconfdir#" USERDIR=$HOME @@ -61,12 +62,10 @@ copy() { else if test "x$GNUSTEP_USER_ROOT" = "x"; then sed -e "s:#wmdatadir#:$GLOBALDIR:g" \ - -e "s://:/:g" \ $source > $target else - sed -e "s|~/GNUstep|$GSDIR|g" \ + sed -e "s|\$HOME/GNUstep|$GSDIR|g" \ -e "s:#wmdatadir#:$GLOBALDIR:g" \ - -e "s://:/:g" \ $source > $target fi fi @@ -78,6 +77,12 @@ echo "Installing WindowMaker $VERSION for current user..." if [ ! -d $GLOBALDIR ]; then + echo "Could not find global data files" + echo "Make sure you have installed Window Maker correctly" + exit 1 +fi + +if [ ! -d $GLOBALDEFDIR ]; then echo "Could not find global configurations files" echo "Make sure you have installed Window Maker correctly" exit 1 @@ -117,7 +122,7 @@ fi echo "Copying defaults database..." -FILES=`(cd $GLOBALDIR/Defaults;ls *)` +FILES=`(cd $GLOBALDEFDIR;ls *)` all="" for i in $FILES; do # xx herbert @@ -132,10 +137,10 @@ for i in $FILES; do fi fi if [ "$foo" = "y" -o "$foo" = "Y" -o "$all" = "a" ]; then - copy $GLOBALDIR/Defaults/$i $GSDIR/Defaults/$i + copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i fi else - copy $GLOBALDIR/Defaults/$i $GSDIR/Defaults/$i + copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i fi done diff --git a/util/wmsetbg.c b/util/wmsetbg.c index 0c5dd080..37e519b9 100644 --- a/util/wmsetbg.c +++ b/util/wmsetbg.c @@ -22,6 +22,10 @@ * USA. */ +/* + * TODO: rewrite, too dirty + */ + #include #include #include @@ -48,7 +52,6 @@ #define WORKSPACE_COUNT (MAX_WORKSPACES+1) - Display *dpy; char *display = ""; Window root; @@ -169,6 +172,7 @@ parseTexture(RContext *rc, char *text) RImage *image; Pixmap pixmap; int gtype; + int iwidth, iheight; GETSTR(val, tmp, 1); @@ -196,17 +200,23 @@ parseTexture(RContext *rc, char *text) case 'h': case 'H': gtype = RHorizontalGradient; + iwidth = scrWidth; + iheight = 32; break; case 'V': case 'v': gtype = RVerticalGradient; + iwidth = 32; + iheight = scrHeight; break; default: gtype = RDiagonalGradient; + iwidth = scrWidth; + iheight = scrHeight; break; } - image = RRenderGradient(scrWidth, scrHeight, &color1, &color2, gtype); + image = RRenderGradient(iwidth, iheight, &color1, &color2, gtype); if (!image) { wwarning("could not render gradient texture:%s", @@ -233,9 +243,9 @@ parseTexture(RContext *rc, char *text) RColor **colors; RImage *image; Pixmap pixmap; - int i; - int j; + int i, j; int gtype; + int iwidth, iheight; colors = malloc(sizeof(RColor*)*(count-1)); if (!colors) { @@ -283,17 +293,23 @@ parseTexture(RContext *rc, char *text) case 'h': case 'H': gtype = RHorizontalGradient; + iwidth = scrWidth; + iheight = 32; break; case 'V': case 'v': gtype = RVerticalGradient; + iwidth = 32; + iheight = scrHeight; break; default: gtype = RDiagonalGradient; + iwidth = scrWidth; + iheight = scrHeight; break; } - image = RRenderMultiGradient(scrWidth, scrHeight, colors, gtype); + image = RRenderMultiGradient(iwidth, iheight, colors, gtype); for (j = 0; colors[j]!=NULL; j++) free(colors[j]); @@ -815,7 +831,7 @@ helperLoop(RContext *rc) #ifdef DEBUG printf("RECEIVED %s\n",buffer); #endif - if (buffer[0]!='P') { + if (buffer[0]!='P' && buffer[0]!='K') { memcpy(buf, &buffer[1], 4); buf[4] = 0; workspace = atoi(buf); @@ -875,87 +891,136 @@ helperLoop(RContext *rc) void -updateDomain(char *domain, char *texture) +updateDomain(char *domain, char *key, char *texture) { char *program = "wdwrite"; - execlp(program, program, domain, "WorkspaceBack", texture, NULL); + execlp(program, program, domain, key, texture, NULL); wwarning("warning could not run \"%s\"", program); } +char* +globalDefaultsPathForDomain(char *domain) +{ + char path[1024]; + + sprintf(path, "%s/%s", SYSCONFDIR, domain); + + return wstrdup(path); +} + + proplist_t -getDomain(char *domain) +getValueForKey(char *domain, char *keyName) { - char *path; - proplist_t prop; + char *path; + proplist_t key; + proplist_t d; + proplist_t val; + key = PLMakeString(keyName); + /* try to find PixmapPath in user defaults */ path = wdefaultspathfordomain(domain); - if (!path) { - wwarning("could not locate file for domain %s", domain); - return NULL; + d = PLGetProplistWithPath(path); + if (!d) { + wwarning("could not open domain file %s", path); } + free(path); - prop = PLGetProplistWithPath(path); + if (d && !PLIsDictionary(d)) { + PLRelease(d); + d = NULL; + } + if (d) { + val = PLGetDictionaryEntry(d, key); + } else { + val = NULL; + } + /* try to find PixmapPath in global defaults */ + if (!val) { + path = globalDefaultsPathForDomain(domain); + if (!path) { + wwarning("could not locate file for domain %s", domain); + d = NULL; + } else { + d = PLGetProplistWithPath(path); + free(path); + } - if (!prop || !PLIsDictionary(prop)) { - wwarning("invalid domain file %s", path); - free(path); - if (prop) - PLRelease(prop); - return NULL; + if (d && !PLIsDictionary(d)) { + PLRelease(d); + d = NULL; + } + if (d) { + val = PLGetDictionaryEntry(d, key); + + } else { + val = NULL; + } } - free(path); - return prop; -} + if (val) + PLRetain(val); + + PLRelease(key); + if (d) + PLRelease(d); + return val; +} char* -getPixmapPath(proplist_t prop) +getPixmapPath(char *domain) { - proplist_t key, val; + proplist_t val; proplist_t d; char *ptr, *data; int len, i, count; - key = PLMakeString("PixmapPath"); - val = PLGetDictionaryEntry(prop, key); - PLRelease(key); + val = getValueForKey(domain, "PixmapPath"); + if (!val || !PLIsArray(val)) { - PLRelease(prop); + if (val) + PLRelease(val); return wstrdup(""); } count = PLGetNumberOfElements(val); len = 0; for (i=0; i0) ptr--; *(ptr--) = 0; + PLRelease(d); + return data; } @@ -997,11 +1062,11 @@ P(" --help show this help and exit"); void -changeTextureForWorkspace(proplist_t dict, char *texture, int workspace) +changeTextureForWorkspace(char *domain, char *texture, int workspace) { - proplist_t key; proplist_t array; proplist_t val; + char *value; int j; workspace++; @@ -1012,11 +1077,10 @@ changeTextureForWorkspace(proplist_t dict, char *texture, int workspace) return; } - key = PLMakeString("WorkspaceSpecificBack"); - array = PLGetDictionaryEntry(dict, key); + array = getValueForKey("WindowMaker", "WorkspaceSpecificBack"); + if (!array) { array = PLMakeArrayFromElements(NULL, NULL); - PLInsertDictionaryEntry(dict, key, array); } j = PLGetNumberOfElements(array); @@ -1025,7 +1089,7 @@ changeTextureForWorkspace(proplist_t dict, char *texture, int workspace) empty = PLMakeArrayFromElements(NULL, NULL); - while (j++ < workspace) { + while (j++ < workspace-1) { PLAppendArrayElement(array, empty); } PLAppendArrayElement(array, val); @@ -1034,7 +1098,8 @@ changeTextureForWorkspace(proplist_t dict, char *texture, int workspace) PLInsertArrayElement(array, val, workspace); } - PLSave(dict, YES); + value = PLGetDescription(array); + updateDomain(domain, "WorkspaceSpecificBack", value); } @@ -1052,8 +1117,6 @@ main(int argc, char **argv) int update=0, cpc=4, render_mode=RM_DITHER, obey_user=0; char *texture = NULL; int workspace = -1; - proplist_t domain_prop; - signal(SIGINT, SIG_DFL); @@ -1166,16 +1229,15 @@ main(int argc, char **argv) exit(1); } } - if (!image_name && !texture) { + if (!image_name && !texture && !helperMode) { printf("%s: you must specify a image file name or a texture\n", argv[0]); printf("Try '%s --help' for more information\n", argv[0]); exit(1); } - domain_prop = getDomain(domain); - PixmapPath = getPixmapPath(domain_prop); + PixmapPath = getPixmapPath(domain); dpy = XOpenDisplay(display); if (!dpy) { @@ -1204,8 +1266,6 @@ main(int argc, char **argv) /* lower priority, so that it wont use all the CPU */ nice(1000); - PLRelease(domain_prop); - helperLoop(rc); } else { BackgroundTexture *tex; @@ -1217,7 +1277,7 @@ main(int argc, char **argv) } if (update && workspace < 0) { - updateDomain(domain, texture); + updateDomain(domain, "WorkspaceBack", texture); } tex = parseTexture(rc, texture); @@ -1228,7 +1288,7 @@ main(int argc, char **argv) changeTexture(tex); else { /* always update domain */ - changeTextureForWorkspace(domain_prop, texture, workspace); + changeTextureForWorkspace(domain, texture, workspace-1); } } diff --git a/wmlib/Makefile.in b/wmlib/Makefile.in index a27b53c0..9673c5e6 100644 --- a/wmlib/Makefile.in +++ b/wmlib/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ diff --git a/wmlib/WMaker.h b/wmlib/WMaker.h index 982e8869..1c2a8b26 100644 --- a/wmlib/WMaker.h +++ b/wmlib/WMaker.h @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + typedef struct { CARD32 flags; CARD32 window_style; @@ -130,5 +134,8 @@ void WMMenuSetEnabled(WMMenu *menu, int index, int enabled); void WMMenuDestroy(WMMenu *menu, int submenus); +#ifdef __cplusplus +} +#endif /* __cplusplus */ #endif diff --git a/wrlib/Makefile.am b/wrlib/Makefile.am index b401b496..1864acc3 100644 --- a/wrlib/Makefile.am +++ b/wrlib/Makefile.am @@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = no-dependencies lib_LTLIBRARIES = libwraster.la -libwraster_la_LDFLAGS = -version-info 1:2:0 +libwraster_la_LDFLAGS = -version-info 1:3:0 bin_SCRIPTS = get-wraster-flags @@ -37,9 +37,9 @@ libwraster_la_SOURCES = \ gif.c -INCLUDES = @DFLAGS@ @XCFLAGS@ @GFXFLAGS@ +INCLUDES = @DFLAGS@ @HEADER_SEARCH_PATH@ -LIBLIST = libwraster.la @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ -lm +LIBLIST = libwraster.la @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ -lm view_SOURCES= view.c diff --git a/wrlib/Makefile.in b/wrlib/Makefile.in index 4d0835c9..625f5d33 100644 --- a/wrlib/Makefile.in +++ b/wrlib/Makefile.in @@ -62,13 +62,13 @@ host_triplet = @host@ CC = @CC@ CPP_PATH = @CPP_PATH@ DFLAGS = @DFLAGS@ -GFXFLAGS = @GFXFLAGS@ -GFXLFLAGS = @GFXLFLAGS@ GFXLIBS = @GFXLIBS@ +HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@ ICONEXT = @ICONEXT@ INTLIBS = @INTLIBS@ LD = @LD@ LIBPL = @LIBPL@ +LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@ LIBTOOL = @LIBTOOL@ LITE = @LITE@ LN_S = @LN_S@ @@ -91,7 +91,7 @@ AUTOMAKE_OPTIONS = no-dependencies lib_LTLIBRARIES = libwraster.la -libwraster_la_LDFLAGS = -version-info 1:2:0 +libwraster_la_LDFLAGS = -version-info 1:3:0 bin_SCRIPTS = get-wraster-flags @@ -104,9 +104,9 @@ include_HEADERS = wraster.h libwraster_la_SOURCES = raster.c draw.c color.c load.c save.c gradient.c xpixmap.c convert.c context.c misc.c scale.c convolve.c nxpm.c xpm.c xutil.c ppm.c png.c jpeg.c tiff.c gif.c -INCLUDES = @DFLAGS@ @XCFLAGS@ @GFXFLAGS@ +INCLUDES = @DFLAGS@ @HEADER_SEARCH_PATH@ -LIBLIST = libwraster.la @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ -lm +LIBLIST = libwraster.la @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ -lm view_SOURCES = view.c diff --git a/wrlib/load.c b/wrlib/load.c index ffb8023a..0e736a25 100644 --- a/wrlib/load.c +++ b/wrlib/load.c @@ -111,72 +111,32 @@ wstrdup(char *s) return strcpy(tmp, s); } + char** RSupportedFileFormats(void) { - char **tmp; + static char *tmp[IM_TYPES+1]; int i = 0; - - tmp = malloc(sizeof(char*)*(IM_TYPES+1)); - if (!tmp) - return NULL; - memset(tmp, 0, sizeof(char*)*(IM_TYPES+1)); - + /* built-in */ - tmp[i++] = wstrdup("XPM"); - if (!tmp[i-1]) { - RFreeStringList(tmp); - return NULL; - } + tmp[i++] = "XPM"; /* built-in */ - tmp[i++] = wstrdup("PPM"); - if (!tmp[i-1]) { - RFreeStringList(tmp); - return NULL; - } + tmp[i++] = "PPM"; #ifdef USE_TIFF - tmp[i++] = wstrdup("TIFF"); - if (!tmp[i-1]) { - RFreeStringList(tmp); - return NULL; - } + tmp[i++] = "TIFF"; #endif #ifdef USE_PNG - tmp[i++] = wstrdup("PNG"); - if (!tmp[i-1]) { - RFreeStringList(tmp); - return NULL; - } + tmp[i++] = "PNG"; #endif #ifdef USE_JPEG - tmp[i++] = wstrdup("JPEG"); - if (!tmp[i-1]) { - RFreeStringList(tmp); - return NULL; - } + tmp[i++] = "JPEG"; #endif #ifdef USE_GIF - tmp[i++] = wstrdup("GIF"); - if (!tmp[i-1]) { - RFreeStringList(tmp); - return NULL; - } + tmp[i++] = "GIF"; #endif tmp[i] = NULL; - - return tmp; -} - -void -RFreeStringList(char **list) -{ - int i; - - for (i = 0; list[i]!=NULL; i++) { - free(list[i]); - } - free(list); + return tmp; } diff --git a/wrlib/nxpm.c b/wrlib/nxpm.c index b2f6ed67..c62c8db7 100644 --- a/wrlib/nxpm.c +++ b/wrlib/nxpm.c @@ -500,8 +500,7 @@ index2str(char *buffer, int index, int colorCount) static void outputcolormap(FILE *file, XPMColor *colormap, int colorCount) { - int j; - int i,index; + int index; char buf[128]; if (!colormap) diff --git a/wrlib/testgrad.c b/wrlib/testgrad.c index 3f0f3be9..cf02fee0 100644 --- a/wrlib/testgrad.c +++ b/wrlib/testgrad.c @@ -200,16 +200,9 @@ int main(int argc, char **argv) RConvertImage(ctx, imgd, &pix); XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 500, 0); - { - GC gc; - - gc = DefaultGC(dpy, DefaultScreen(dpy)); - - XSetTile(dpy, gc, ParentRelative); - } - XFlush(dpy); #endif + getchar(); return 0; } diff --git a/wrlib/wraster.h b/wrlib/wraster.h index 4ece24e5..04c8d9bf 100644 --- a/wrlib/wraster.h +++ b/wrlib/wraster.h @@ -39,8 +39,8 @@ #define RLRASTER_H_ -/* version of the header for the library: 0.11 */ -#define WRASTER_HEADER_VERSION 11 +/* version of the header for the library: 0.12 */ +#define WRASTER_HEADER_VERSION 12 #include @@ -68,6 +68,10 @@ /* use default instead of best visual */ #define RC_DefaultVisual (1<<5) +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + typedef struct RContextAttributes { int flags; int render_mode; @@ -242,11 +246,10 @@ enum { /* * Returns a NULL terminated array of strings containing the * supported formats, such as: TIFF, XPM, PNG, JPEG, PPM, GIF + * Do not free the returned data. */ char **RSupportedFileFormats(void); -void RFreeStringList(char **list); - /* * Xlib contexts */ @@ -390,4 +393,8 @@ int RBlurImage(RImage *image); extern int RErrorCode; +#ifdef __cplusplus +} +#endif /* __cplusplus */ + #endif -- 2.11.4.GIT